[Chuck Lever 2020-12-01 15:00:21 UTC]
To handle increasing amounts of physical memory efficiently, hardware platforms are adopting alternate page sizes that are larger than the historical 4096-byte page. On x86, these are referred to as huge or gigantic pages, for 2MB pages and 1GB pages, respectively.
NFSD can generate workloads that allocate and release pages at a high rate. In some circumstances, allocating a raft of pages in a single allocator call might make this process more efficient. On the other hand, allocating a huge page only to break it into 4KB pieces increases fragmentation and can be harmful in the long run.
After checking in with Matthew Wilcox, huge pages seem like a poor match for NFSD's needs. Instead, we probably want to support folios, as that will be the lingua franca of the page cache.
This was bugzilla.linux-nfs.org 353
[Chuck Lever 2020-12-01 15:00:21 UTC] To handle increasing amounts of physical memory efficiently, hardware platforms are adopting alternate page sizes that are larger than the historical 4096-byte page. On x86, these are referred to as huge or gigantic pages, for 2MB pages and 1GB pages, respectively.
NFSD can generate workloads that allocate and release pages at a high rate. In some circumstances, allocating a raft of pages in a single allocator call might make this process more efficient. On the other hand, allocating a huge page only to break it into 4KB pieces increases fragmentation and can be harmful in the long run.