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: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
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]++;
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;