Re: [PATCH v14 000/138] Memory folios

From: Matthew Wilcox
Date: Tue Jul 20 2021 - 08:42:04 EST


On Tue, Jul 20, 2021 at 01:54:38PM +0300, Mike Rapoport wrote:
> 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.

> Also, what is the difference on !x86 builds?

I don't generally do non-x86 builds ... feel free to compare for
yourself! 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.