Messages in this thread | | | Date | Thu, 03 Apr 2008 22:34:22 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: [PATCH 1 of 6] hotplug-memory: refactor online_pages to separate zone growth from page onlining |
| |
Yasunori Goto wrote: >> +/* Mark a set of pages as online */ >> +unsigned long mark_pages_onlined(unsigned long pfn, unsigned long nr_pages) >> +{ >> + struct zone *zone = page_zone(pfn_to_page(pfn)); >> + unsigned long onlined_pages = 0; >> + int need_zonelists_rebuild = 0; >> >> /* >> * If this zone is not populated, then it is not in zonelist. >> @@ -240,10 +246,38 @@ >> vm_total_pages = nr_free_pagecache_pages(); >> writeback_set_ratelimit(); >> >> - if (onlined_pages) >> + if (onlined_pages) { >> + struct memory_notify arg; >> + >> + arg.start_pfn = pfn; /* ? */ >> + arg.nr_pages = onlined_pages; >> + arg.status_change_nid = -1; /* ? */ >> > > status_change_nid is to prepare data structures which are allocated on > each NUMA node. >
OK. I didn't really understand the intent this logic in the GOING_ONLINE notifier path:
arg.status_change_nid = -1;
nid = page_to_nid(pfn_to_page(pfn)); if (node_present_pages(nid) == 0) arg.status_change_nid = nid;
and how that should relate to the ONLINE notifier.
> When memory less node gets new memory, and it changes status > to normal memory, then status_change_nid must be set. > > SLUB uses it now. >
Only for GOING_ONLINE.
J
| |