[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPcyv4jr5BQTSinNechQr5Zt93NwXh9R5F2ppM=yPG2rHdWwEA@mail.gmail.com>
Date: Wed, 8 Mar 2017 22:26:46 -0800
From: Dan Williams <dan.j.williams@...el.com>
To: Heiko Carstens <heiko.carstens@...ibm.com>
Cc: Michal Hocko <mhocko@...nel.org>,
Sebastian Ott <sebott@...ux.vnet.ibm.com>,
Linux MM <linux-mm@...ck.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Vladimir Davydov <vdavydov.dev@...il.com>,
Ben Hutchings <ben@...adent.org.uk>
Subject: Re: [PATCH] mm, add_memory_resource: hold device_hotplug lock over
mem_hotplug_{begin, done}
On Mon, Mar 6, 2017 at 12:22 AM, Heiko Carstens
<heiko.carstens@...ibm.com> wrote:
> Hello Dan,
>
>> > If you look at commit 5e33bc4165f3 ("driver core / ACPI: Avoid device hot
>> > remove locking issues") then lock_device_hotplug_sysfs() was introduced to
>> > avoid a different subtle deadlock, but it also sleeps uninterruptible, but
>> > not for more than 5ms ;)
>> >
>> > However I'm not sure if the device hotplug lock should also be used to fix
>> > an unrelated bug that was introduced with the get_online_mems() /
>> > put_online_mems() interface. Should it?
>>
>> No, I don't think it should.
>>
>> I like your proposed direction of creating a new lock internal to
>> mem_hotplug_begin() to protect active_writer, and stop relying on
>> lock_device_hotplug to serve this purpose.
>>
>> > If so, we need to sprinkle around a couple of lock_device_hotplug() calls
>> > near mem_hotplug_begin() calls, like Sebastian already started, and give it
>> > additional semantics (protecting mem_hotplug.active_writer), and hope it
>> > doesn't lead to deadlocks anywhere.
>>
>> I'll put your proposed patch through some testing.
>
> On s390 it _seems_ to work. Did it pass your testing too?
> If so I would send a patch with proper patch description for inclusion.
Looks ok here. No lockdep warnings running it through it paces with
the persistent memory use case.
Powered by blists - more mailing lists