Re: [PATCH] Simplify node/zone field in page->flags

From: Matthew Dobson
Date: Mon Jan 05 2004 - 16:31:05 EST


Andrew Morton wrote:
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.

Jesse had acked the patch in an earlier itteration. The only thing that's changed is some line offsets whilst porting the patch forward.

Jesse (or anyone else?), any objections to this patch as a superset of yours?

Cheers!

-Matt

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/