From: Michal Hocko <mhocko@kernel.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: David Hildenbrand <david@redhat.com>,
linux-mm@kvack.org, akpm@linux-foundation.org,
linux-kernel@vger.kernel.org, Oscar Salvador <osalvador@suse.de>,
Pavel Tatashin <pasha.tatashin@soleen.com>,
Dan Williams <dan.j.williams@intel.com>
Subject: Re: [PATCH] mm/hotplug: Reorder memblock_[free|remove]() calls in try_remove_memory()
Date: Tue, 24 Sep 2019 13:47:25 +0200 [thread overview]
Message-ID: <20190924114725.GL23050@dhcp22.suse.cz> (raw)
In-Reply-To: <ef55498f-a410-bb51-389c-7ac09641c51a@arm.com>
On Tue 24-09-19 09:42:31, Anshuman Khandual wrote:
>
>
> On 09/23/2019 04:24 PM, David Hildenbrand wrote:
> > On 23.09.19 12:52, Michal Hocko wrote:
> >> On Mon 16-09-19 11:17:37, Anshuman Khandual wrote:
> >>> In add_memory_resource() the memory range to be hot added first gets into
> >>> the memblock via memblock_add() before arch_add_memory() is called on it.
> >>> Reverse sequence should be followed during memory hot removal which already
> >>> is being followed in add_memory_resource() error path. This now ensures
> >>> required re-order between memblock_[free|remove]() and arch_remove_memory()
> >>> during memory hot-remove.
> >>
> >> This changelog is not really easy to follow. First of all please make
> >> sure to explain whether there is any actual problem to solve or this is
> >> an aesthetic matter. Please think of people reading this changelog in
> >> few years and scratching their heads what you were thinking back then...
> >>
> >
> > I think it would make sense to just draft the current call sequence in
> > the add and the removal path (instead of describing it) - then it
> > becomes obvious why this is a cosmetic change.
>
> Does this look okay ?
>
> mm/hotplug: Reorder memblock_[free|remove]() calls in try_remove_memory()
>
> Currently during memory hot add procedure, memory gets into memblock before
> calling arch_add_memory() which creates it's linear mapping.
>
> add_memory_resource() {
> ..................
> memblock_add_node()
> ..................
> arch_add_memory()
> ..................
> }
>
> But during memory hot remove procedure, removal from memblock happens first
> before it's linear mapping gets teared down with arch_remove_memory() which
> is not coherent. Resource removal should happen in reverse order as they
> were added.
>
> try_remove_memory() {
> ..................
> memblock_free()
> memblock_remove()
> ..................
> arch_remove_memory()
> ..................
> }
>
> This changes the sequence of resource removal including memblock and linear
> mapping tear down during memory hot remove which will now be the reverse
> order in which they were added during memory hot add. The changed removal
> order looks like the following.
>
> try_remove_memory() {
> ..................
> arch_remove_memory()
> ..................
> memblock_free()
> memblock_remove()
> ..................
> }
OK, this is better. I would just a note that the inconsistency doesn't
pose any problem now but if somebody makes any assumptions about linear
mappings then it could get subtly broken like your example for arm64
which has found a different solution in the meantime.
--
Michal Hocko
SUSE Labs
prev parent reply other threads:[~2019-09-24 11:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-16 5:47 Anshuman Khandual
2019-09-16 6:36 ` Mike Rapoport
2019-09-16 8:50 ` Anshuman Khandual
2019-09-17 3:10 ` Anshuman Khandual
2019-09-23 5:46 ` Anshuman Khandual
2019-09-25 3:13 ` Andrew Morton
2019-09-25 3:50 ` Anshuman Khandual
2019-09-23 10:52 ` Michal Hocko
2019-09-23 10:54 ` David Hildenbrand
2019-09-24 4:12 ` Anshuman Khandual
2019-09-24 11:47 ` Michal Hocko [this message]
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=20190924114725.GL23050@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=dan.j.williams@intel.com \
--cc=david@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=osalvador@suse.de \
--cc=pasha.tatashin@soleen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox