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

David Miller
2007-11-01T22:58:19Z

From: Christoph Lameter <clameter@sgi.com>
Date: Thu, 1 Nov 2007 15:48:00 -0700 (PDT)

> 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?

Each IP compression tunnel instance does an alloc_percpu().

Since you're the one who wants to change the semantics and guarentees
of this interface, perhaps it might help if you did some greps around
the tree to see how alloc_percpu() is actually used. That's what
I did when I started running into trouble with your patches.

You cannot put limits of the amount of alloc_percpu() memory available
to clients, please let's proceed with that basic understanding in
mind. We're wasting a ton of time discussing this fundamental issue.