Re: [patch 0/7] [RFC] SLUB: Improve allocpercpu to reduce per cpu access overhead

Christoph Lameter
2007-11-01T22:48:21Z

On Thu, 1 Nov 2007, David Miller wrote:

> From: Christoph Lameter <clameter@sgi.com>
> Date: Thu, 1 Nov 2007 15:15:39 -0700 (PDT)
>
> > After boot is complete we allow the reduction of the size of the per cpu
> > areas . Lets say we only need 128k per cpu. Then the remaining pages will
> > be returned to the page allocator.
>
> You don't know how much you will need. I exhausted the limit on
> sparc64 very late in the boot process when the last few userland
> services were starting up.

Well you would be able to specify how much will remain. If not it will
just keep the 2M reserve around.

> And if I subsequently bring up 100,000 IP tunnels, it will exhaust the
> per-cpu allocation area.

Each tunnel needs 4 bytes per cpu?

> You have to make it fully dynamic, there is no way around it.

Na. Some reasonable upper limit needs to be set. If we set that to say
32Megabytes and do the virtual mapping then we can just populate the first
2M and only allocate the remainder if we need it. Then we need to rely on
Mel's defrag stuff though defrag memory if we need it.