Martin, Andrew, many thanks for the comments! I am working on some on them
now. I will give an update about it pretty soon.
I am trying to get the node_id out of the page struct. Please let me know
if somebody has good ideas.
if the node_id of the slab matches with local node_id, the
__kmem_cache_free function is not really using the node structures. It is
useful only in the case, the node is remote or if the cpu cache is full. We
can optimize further by not finding out the nodep, by changing the
free_block function. Is that what you are looking for ?
From: Manfred Spraul [mailto:manfred@...]
Sent: Saturday, September 28, 2002 2:05 PM
To: Martin J. Bligh
Cc: Kamble, Nitin A; lse-tech@...; anton@...;
Jack Steiner (E-mail); Mallick, Asit K; Saxena, Sunil; Luck, Tony;
colpatch@...; tomlins@...; akpm@...
Subject: Re: node aware slab allocator for cc-numa systems
Martin J. Bligh wrote:
> Please don't do that, struct page is bloated enough already, and
> is a real KVA consumption problem. Suggest you use a standard
> macros like pfn_to_node to derive this instead?
Getting the node id will be time critical for slab - it's needed in
But slab can cheat, and reuse fields in the page structure - a page that
is part of slab is never mmaped, etc.
It's already done to find the slabp or cachep pointers from a virtual
Nitin, something is wrong in __kmem_cache_free: why does it need to look
up the node structure, even for node local free operations?
It should go directly into the per-cpu arrays, without ever touching or
looking up node related structs.