On Wed, 2007-09-12 at 15:47 -0700, Christoph Lameter wrote:
rking=20
Exactly, and because it services every other subsystem and userspace,
its the most important one, if it doesn't work, nothing else will.
y
Dude, listen, how often do I have to say this: I cannot use mempools for
the network subsystem because its build on kmalloc! What I've done is
build a replacement for mempools - a reserve system - that does work
similar to mempools but also provides the flexibility of kmalloc.
That is all, no more, no less.
=20
=20
I'm confused by this, I've never claimed part of, or such a thing. All
I'm saying is that because of the circular dependency between the VM and
the IO subsystem used for swap (not file backed paging [*], just swap)
you have to do something special to avoid deadlocks.
[*] the dirty limit along with 'atomic' swap ensures that file backed
paging does not get into this tight spot.
I do no such thing! My reserve system works much like mempools, you
reserve a certain amount of pages and use no more.
=20
m=20
The reserves are spread over all kernel mapped zones, the slab allocator
is still per cpu, the page allocator tries to get pages from the nearest
node.
=20
The network system reserves A pages, the block layer reserves B pages,
once they start getting pages from the reserves they go bean counting,
once they reach their respective limit they stop.
The serialisation impact of the bean counting depends on how
fine-grained you place them, currently I only have a machine wide
network bean counter because the network subsystem is machine wide -
initially I tried to do something per net-device but that doesn't work
out. If someone more skilled in this area comes along and sees a better
way to place the bean counters they are free to do so.
But do notice that the bean counting is only done once we hit the
reserves, the normal mode of operation is not penalised by the extra
overhead thereof.
Also note that mempools also serialise their access once the backing
allocator fails, so I don't differ from them in that respect either.