Re: [PATCH] only irq-safe atomic ops

Andi Kleen
2002-02-23T20:56:46Z

Andrew Morton <akpm@zip.com.au> writes:
> > >
> > I can tell you that Irix has just such a global counter for the amount of
> > delayed allocate pages - and it gets to be a major point of cache contention
> > once you get to larger cpu counts. So avoiding that from the start would
> > be good.
>
> Ah, good info. Thanks. I'll fix it with a big "FIXME" comment for now,
> fix it for real when Rusty's per-CPU infrastructure appears.

Just curious -- how do you want to fix it for real?
As far as I can see a delalloc counter needs to be exact to avoid OOM
deadlocks, but making it per CPU would require doing the accounting inexact.

The only way I can imagine is to use the 'cookie jar' trick by grabbing
some amount per CPU and only going back to the global counter when the
local jar is used up, but that seems to have some drawbacks too, like
keeping a lot of pages free with higher CPU counts.

-Andi