Re: [PATCH v14 000/138] Memory folios
From: Mike Rapoport <rppt@kernel.org>
Date: 2021-07-20 15:57:56
Also in:
linux-fsdevel, lkml
On Tue, Jul 20, 2021 at 01:41:15PM +0100, Matthew Wilcox wrote:
On Tue, Jul 20, 2021 at 01:54:38PM +0300, Mike Rapoport wrote:quoted
Most of the changelogs (at least at the first patches) mention reduction of the kernel size for your configuration on x86. I wonder, what happens if you build the kernel with "non-distro" configuration, e.g. defconfig or tiny.config?I did an allnoconfig build and that reduced in size by ~2KiB.quoted
Also, what is the difference on !x86 builds?I don't generally do non-x86 builds ... feel free to compare for yourself!
I did allnoconfig and defconfig for arm64 and powerpc.
All execpt arm64::defconfig show decrease by ~1KiB, while arm64::defconfig
was actually increased by ~500 bytes.
I didn't dig into objdumps yet.
I also tried to build arm but it failed with:
CC fs/remap_range.o
fs/remap_range.c: In function 'vfs_dedupe_file_range_compare':
fs/remap_range.c:250:3: error: implicit declaration of function 'flush_dcache_folio'; did you mean 'flush_cache_louis'? [-Werror=implicit-function-declaration]
250 | flush_dcache_folio(src_folio);
| ^~~~~~~~~~~~~~~~~~
| flush_cache_louis
cc1: some warnings being treated as errors
I imagine it'll be 2-4 instructions per call to compound_head(). ie something like: load page into reg S load reg S + 8 into reg T test bottom bit of reg T cond-move reg T - 1 to reg S becomes load folio into reg S the exact spelling of those instructions will vary from architecture to architecture; some will take more instructions than others. Possibly it means we end up using one fewer register and so reducing the number of registers spilled to the stack. Probably not, though.
-- Sincerely yours, Mike.