From: Wei Yang <richard.weiyang@gmail.com>
To: David Hildenbrand <david@redhat.com>
Cc: Wei Yang <richard.weiyang@gmail.com>,
mhocko@suse.com, osalvador@suse.de, akpm@linux-foundation.org,
linux-doc@vger.kernel.org, linux-mm@kvack.org,
Jonathan Corbet <corbet@lwn.net>,
Mike Rapoport <rppt@linux.vnet.ibm.com>
Subject: Re: [PATCH 1/2] admin-guide/memory-hotplug.rst: remove locking internal part from admin-guide
Date: Wed, 5 Dec 2018 09:20:09 +0000 [thread overview]
Message-ID: <20181205092009.n5vb67bd6nuxwkcd@master> (raw)
In-Reply-To: <c4f2a712-391b-60b9-64fa-bc8b6bde9994@redhat.com>
On Wed, Dec 05, 2018 at 09:03:24AM +0100, David Hildenbrand wrote:
>On 05.12.18 03:34, Wei Yang wrote:
>> Locking Internal section exists in core-api documentation, which is more
>> suitable for this.
>>
>> This patch removes the duplication part here.
>>
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>> ---
>> Documentation/admin-guide/mm/memory-hotplug.rst | 40 -------------------------
>> 1 file changed, 40 deletions(-)
>>
>> diff --git a/Documentation/admin-guide/mm/memory-hotplug.rst b/Documentation/admin-guide/mm/memory-hotplug.rst
>> index 5c4432c96c4b..241f4ce1e387 100644
>> --- a/Documentation/admin-guide/mm/memory-hotplug.rst
>> +++ b/Documentation/admin-guide/mm/memory-hotplug.rst
>> @@ -392,46 +392,6 @@ Need more implementation yet....
>> - Notification completion of remove works by OS to firmware.
>> - Guard from remove if not yet.
>>
>> -
>> -Locking Internals
>> -=================
>> -
>> -When adding/removing memory that uses memory block devices (i.e. ordinary RAM),
>> -the device_hotplug_lock should be held to:
>> -
>> -- synchronize against online/offline requests (e.g. via sysfs). This way, memory
>> - block devices can only be accessed (.online/.state attributes) by user
>> - space once memory has been fully added. And when removing memory, we
>> - know nobody is in critical sections.
>> -- synchronize against CPU hotplug and similar (e.g. relevant for ACPI and PPC)
>> -
>> -Especially, there is a possible lock inversion that is avoided using
>> -device_hotplug_lock when adding memory and user space tries to online that
>> -memory faster than expected:
>> -
>> -- device_online() will first take the device_lock(), followed by
>> - mem_hotplug_lock
>> -- add_memory_resource() will first take the mem_hotplug_lock, followed by
>> - the device_lock() (while creating the devices, during bus_add_device()).
>> -
>> -As the device is visible to user space before taking the device_lock(), this
>> -can result in a lock inversion.
>> -
>> -onlining/offlining of memory should be done via device_online()/
>> -device_offline() - to make sure it is properly synchronized to actions
>> -via sysfs. Holding device_hotplug_lock is advised (to e.g. protect online_type)
>> -
>> -When adding/removing/onlining/offlining memory or adding/removing
>> -heterogeneous/device memory, we should always hold the mem_hotplug_lock in
>> -write mode to serialise memory hotplug (e.g. access to global/zone
>> -variables).
>> -
>> -In addition, mem_hotplug_lock (in contrast to device_hotplug_lock) in read
>> -mode allows for a quite efficient get_online_mems/put_online_mems
>> -implementation, so code accessing memory can protect from that memory
>> -vanishing.
>> -
>> -
>> Future Work
>> ===========
>>
>>
>
>I reported this yesterday to Jonathan and Mike
>
>https://lkml.org/lkml/2018/12/3/340
>
Ah, Thanks :-)
>
>Anyhow
>
>Reviewed-by: David Hildenbrand <david@redhat.com>
>
>--
>
>Thanks,
>
>David / dhildenb
--
Wei Yang
Help you, Help me
next prev parent reply other threads:[~2018-12-05 9:20 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-05 2:34 [PATCH 1/2] admin-guide/memory-hotplug.rst: remove locking internal part from admin-guide Wei Yang
2018-12-05 2:34 ` [PATCH 2/2] core-api/memory-hotplug.rst: divide Locking Internal section by different locks Wei Yang
2018-12-05 8:08 ` David Hildenbrand
2018-12-05 9:23 ` Wei Yang
2018-12-05 8:40 ` Mike Rapoport
2018-12-05 9:24 ` Wei Yang
2018-12-05 12:13 ` Michal Hocko
2018-12-05 12:20 ` Wei Yang
2018-12-05 8:03 ` [PATCH 1/2] admin-guide/memory-hotplug.rst: remove locking internal part from admin-guide David Hildenbrand
2018-12-05 8:30 ` Mike Rapoport
2018-12-05 9:20 ` Wei Yang
2018-12-05 9:20 ` Wei Yang [this message]
2018-12-05 12:11 ` Michal Hocko
2018-12-06 0:26 ` [PATCH v2 " Wei Yang
2018-12-06 0:26 ` [PATCH v2 2/2] core-api/memory-hotplug.rst: divide Locking Internal section by different locks Wei Yang
2018-12-06 7:32 ` Mike Rapoport
2018-12-06 8:22 ` David Hildenbrand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181205092009.n5vb67bd6nuxwkcd@master \
--to=richard.weiyang@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=david@redhat.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=osalvador@suse.de \
--cc=rppt@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.