Re: [PATCH] mm/memory_hotplug: Fix remove_memory() lockdep splat

From: David Hildenbrand
Date: Fri Jan 24 2020 - 13:13:22 EST


On 24.01.20 19:04, Dan Williams wrote:
> On Fri, Jan 24, 2020 at 4:56 AM Michal Hocko <mhocko@xxxxxxxxxx> wrote:
>>
>> On Fri 10-01-20 13:27:24, Dan Williams wrote:
>>> On Fri, Jan 10, 2020 at 9:42 AM David Hildenbrand <david@xxxxxxxxxx> wrote:
>> [...]
>>>> For your reference (roughly 5 months ago, so not that old)
>>>>
>>>> https://lkml.kernel.org/r/20190724143017.12841-1-david@xxxxxxxxxx
>>>
>>> Oh, now I see the problem. You need to add that lock so far away from
>>> the __add_memory() to avoid lock inversion problems with the
>>> acpi_scan_lock. The organization I was envisioning would not work
>>> without deeper refactoring.
>>
>> Sorry to come back to this late. Has this been resolved?
>
> The mem_hotplug_lock lockdep splat fix in this patch has not landed.
> David and I have not quite come to consensus on how to resolve online
> racing removal. IIUC David wants that invalidation to be
> pages_correctly_probed(), I would prefer it to be directly tied to the
> object, struct memory_block, that remove_memory_block_devices() has
> modified, mem->section_count = 0.

FWIW, there is no such race possible - esp. zombie devices (see
https://lore.kernel.org/lkml/1580c2bb-5e94-121d-8153-c8a7230b764b@xxxxxxxxxx/).

(I'm planning to send a patch to remove mem->section_count soon)


--
Thanks,

David / dhildenb