Matthew Dobson <colpatch@xxxxxxxxxx> wrote:
Currently we keep track of a pages node & zone in the top 8 bits (on 32-bit arches, 10 bits on 64-bit arches) of page->flags. We typically compute the field as follows:
node_num * MAX_NR_ZONES + zone_num = 'nodezone'
It's non-trivial to break this 'nodezone' back into node and zone numbers. This patch modifies the way we compute the index to be:
(node_num << ZONE_SHIFT) | zone_num
This makes it trivial to recover either the node or zone number with a simple bitshift. There are many places in the kernel where we do things like: page_zone(page)->zone_pgdat->node_id to determine the node a page belongs to. With this patch we save several pointer dereferences, and it all boils down to shifting some bits.
This conflicts with (is a superset of)
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test9/2.6.0-test9-mm5/broken-out/ZONE_SHIFT-from-NODES_SHIFT.patch
I suspect you've sent a replacement patch, yes? If Jesse is OK with the
new patch I'll do the swap, thanks.