On Wed 14-08-19 17:41:06, David Hildenbrand wrote: > move_pfn_range_to_zone() will set all pages to PG_reserved via > memmap_init_zone(). The only way a page could no longer be reserved > would be if a MEM_GOING_ONLINE notifier would clear PG_reserved - which > is not done (the online_page callback is used for that purpose by > e.g., Hyper-V instead). walk_system_ram_range() will never call > online_pages_range() with duplicate PFNs, so drop the PageReserved() check. > > This seems to be a leftover from ancient times where the memmap was > initialized when adding memory and we wanted to check for already > onlined memory. > > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Oscar Salvador <osalvador@xxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxxx> > Cc: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx> > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> Thanks for spliting that up. Acked-by: Michal Hocko <mhocko@xxxxxxxx> > --- > mm/memory_hotplug.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 3706a137d880..10ad970f3f14 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -653,9 +653,7 @@ static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages, > { > unsigned long onlined_pages = *(unsigned long *)arg; > > - if (PageReserved(pfn_to_page(start_pfn))) > - onlined_pages += online_pages_blocks(start_pfn, nr_pages); > - > + onlined_pages += online_pages_blocks(start_pfn, nr_pages); > online_mem_sections(start_pfn, start_pfn + nr_pages); > > *(unsigned long *)arg = onlined_pages; > -- > 2.21.0 > -- Michal Hocko SUSE Labs