Re: [PATCH] Allow per-cpu variables to be page-aligned

From: Rusty Russell
Date: Wed Mar 21 2007 - 07:44:53 EST


On Wed, 2007-03-21 at 03:21 -0600, Eric W. Biederman wrote:
> Do we really want to allow modules to be able to allocate page sized
> per cpu memory.

Hi Eric!

They always could, of course, they just wouldn't get correct alignment.
I think the principle of least surprise says that if we support this, it
will also work in modules...

> If my memory servers on how this code works we will wind
> up allocating 1 page of per cpu memory for every module that allocates a
> per cpu variable. 128 bytes sucks 4k is an order of magnitude worse.

Not quite. We allocate a total amount of per-cpu memory at boot, then
anything left over gets used for per-cpu vars in modules.

Looking at the module per-cpu code again, the rounding up of the memory
used by the kernel seems unnecessary though. I'll try ripping that
out...

> On x86_64 we are only reserving 8K for modules...

Really? I can't see that.

It did look like the x86-64 setup_per_cpu_areas should be moved into
common code though (it's numa-aware). Maybe that breaks some platforms.

It means the x86 cpu_pda initialization would have to be done in
smp_prepare_boot_cpu tho...

Cheers!
Rusty.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/