Messages in this thread | | | Subject | memory hotplug: hot-remove fails on lowest chunk in ZONE_MOVABLE | From | Gerald Schaefer <> | Date | Tue, 22 Jul 2008 18:55:19 +0200 |
| |
I've been testing memory hotplug on s390, on a system that starts w/o memory in ZONE_MOVABLE at first, and then some memory chunks will be added to ZONE_MOVABLE via memory hot-add. Now I observe the following problem:
Memory hot-remove of the lowest memory chunk in ZONE_MOVABLE will fail because of some reserved pages at the beginning of each zone (MIGRATE_RESERVED).
During memory hot-add, setup_per_zone_pages_min() will be called from online_pages() to redistribute/recalculate the reserved page blocks. This will mark some page blocks at the beginning of each zone as MIGRATE_RESERVE. Now, the memory chunk containing these blocks cannot be set offline again, because only MIGRATE_MOVABLE pages can be isolated (offline_pages -> start_isolate_page_range).
So you cannot remove all the memory chunks that have been added via memory hotplug. I'm not sure if I am missing something here, or if this really is a bug. Any thoughts?
Thanks, Gerald
| |