Commit 12bf4a56 authored by Andy Whitcroft's avatar Andy Whitcroft Committed by Linus Torvalds

[PATCH] 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.

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().
Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent b1480d3f
...@@ -21,7 +21,7 @@ static spinlock_t hugetlb_lock = SPIN_LOCK_UNLOCKED; ...@@ -21,7 +21,7 @@ static spinlock_t hugetlb_lock = SPIN_LOCK_UNLOCKED;
static void enqueue_huge_page(struct page *page) 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]); list_add(&page->lru, &hugepage_freelists[nid]);
free_huge_pages++; free_huge_pages++;
free_huge_pages_node[nid]++; free_huge_pages_node[nid]++;
......
...@@ -437,7 +437,7 @@ static int lookup_node(struct mm_struct *mm, unsigned long addr) ...@@ -437,7 +437,7 @@ static int lookup_node(struct mm_struct *mm, unsigned long addr)
err = get_user_pages(current, mm, addr & PAGE_MASK, 1, 0, 0, &p, NULL); err = get_user_pages(current, mm, addr & PAGE_MASK, 1, 0, 0, &p, NULL);
if (err >= 0) { if (err >= 0) {
err = page_zone(p)->zone_pgdat->node_id; err = page_to_nid(p);
put_page(p); put_page(p);
} }
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment