Re: [PATCH 10/17] jbd2: replace __get_free_pages() with kmalloc()
"Theodore Tso" <[email protected]> Thu, 4 Jun 2026 10:05:52 -0400
| Newsgroups | org.kernel.vger.linux-nilfs,dev.linux.lists.ocfs2-devel,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kvack.linux-mm |
|---|---|
| Message-ID | <ximvn6jwgtam665a4droqkp73o55kwvd5uukyidwjesmysobth@oe7rigpsjfkz> |
On Thu, Jun 04, 2026 at 09:14:57AM +0300, Mike Rapoport wrote: > There's no memory overhead when order == 1. > As for the CPU overhead, the difference for the fast path allocations is > not measurable and for the slow path it is anyway determined by the amount > of reclaim involved rather than by what allocator is used. Thanks for confirming! > Larger allocations (> PAGE_SIZE * 2) go straight to the page allocator. Another question: Today, we can either use kmalloc() (or __get_free_pages, previously) or vmalloc(). Is there a way a file system can say, "give me physically contiguous pages if possible, but if it's too hard --- with some TBD to specify what 'too hard' means or can be specified --- fall back to a vmalloc-style approach, with the page table / TLB overhead that this might imply"? I suppose we could do it with kmalloc() with some flags which to prevent forced reclaim / compaction, and if that fails, then fall back to vmalloc(). Is there a better way? Thanks, - Ted