On 17.01.20 09:59, Michal Hocko wrote: > On Fri 17-01-20 09:51:05, David Hildenbrand wrote: >> On 17.01.20 03:21, Qian Cai wrote: > [...] >>> Even though has_unmovable_pages doesn't hold any reference to the >>> returned page this should be reasonably safe for the purpose of >>> reporting the page (dump_page) because it cannot be hotremoved. The >> >> This is only true in the context of memory unplug, but not in the >> context of is_mem_section_removable()-> is_pageblock_removable_nolock(). > > Well, the above should hold for that path as well AFAICS. If the page is > unmovable then a racing hotplug cannot remove it, right? Or do you > consider a temporary unmovability to be a problem? Somebody could test /sys/devices/system/memory/memoryX/removable. While returning the unmovable page, it could become movable and offlining+removing could succeed. Just a matter of where you put a longer sleep after is_mem_section_removable(). Very unlikely, and it's racy as hell already (e.g., offlining concurrently while testing for removability etc.). -- Thanks, David / dhildenb