Re: [RFC 0/3] Recursive reclaim (on __PF_MEMALLOC)

Christoph Lameter
2007-09-10T20:22:28Z

On Mon, 10 Sep 2007, Peter Zijlstra wrote:

> On Mon, 2007-09-10 at 12:25 -0700, Christoph Lameter wrote:
>
> > Of course boundless allocations from interrupt / reclaim context will
> > ultimately crash the system. To fix that you need to stop the networking
> > layer from performing these.
>
> Trouble is, I don't only need a network layer to not endlessly consume
> memory, I need it to 'fully' function so that we can receive the
> writeout completion.

You need to drop packets after having inspected them right? Why wont
dropping packets after a certain amount of memory has been allocated work?
What is so difficult about that?

> or
>
> - have a global reserve and selectively serves sockets
> (what I've been doing)

That is a scalability problem on large systems! Global means global
serialization, cacheline bouncing and possibly livelocks. If we get into
this global shortage then all cpus may end up taking the same locks
cycling thought the same allocation paths.

> So, if you will, you can view my approach as a reserve per socket, where
> most sockets get a reserve of 0 and a few (those serving the VM) !0.

Well it looks like you know how to do it. Why not implement it?