Re: [PATCH -next v4] mm/hotplug: silence a lockdep splat with printk()

From: David Hildenbrand
Date: Fri Jan 17 2020 - 04:25:17 EST


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