Skip to contentSkip to conversation

use page_to_nid

PATCH New Andy Whitcroft 1 participant 1 message Aug 26, 2004

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 use page_to_nid

There are a couple of places where we seem to go round the houses to get the numa node id from a page. We have a macro for this so it seems sensible to use that.

-apw

=== 8< ===
Both lookup_node and enqueue_huge_page use page_zone() to locate the zone, that to locate node pgdat_t and that to get the node_id. Its more efficient to use page_to_nid() which gets the nid from the page flags, especially if we are not using the zone for anything else it. Change these to use page_to_nid().

Revision: $Rev: 494 $

diffstat 100-use_page_to_nid

---
 hugetlb.c   |    2 +-
 mempolicy.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
mm/hugetlb.c +1 -1
diff -X /home/apw/brief/lib/vdiff.excl -rupN reference/mm/hugetlb.c current/mm/hugetlb.c
@@ -21,7 +21,7 @@ static spinlock_t hugetlb_lock = SPIN_LO
 
 static void enqueue_huge_page(struct page *page)
 {
-	int nid = page_zone(page)->zone_pgdat->node_id;
+	int nid = page_to_nid(page);
 	list_add(&page->lru, &hugepage_freelists[nid]);
 	free_huge_pages++;
 	free_huge_pages_node[nid]++;
mm/mempolicy.c +1 -1
diff -X /home/apw/brief/lib/vdiff.excl -rupN reference/mm/mempolicy.c current/mm/mempolicy.c
@@ -438,7 +438,7 @@ static int lookup_node(struct mm_struct 
 
 	err = get_user_pages(current, mm, addr & PAGE_MASK, 1, 0, 0, &p, NULL);
 	if (err >= 0) {
-		err = page_zone(p)->zone_pgdat->node_id;
+		err = page_to_nid(p);
 		put_page(p);
 	}
 	return err;