From: Oscar Salvador <osalvador@techadventures.net>
To: Jerome Glisse <jglisse@redhat.com>
Cc: David Hildenbrand <david@redhat.com>,
akpm@linux-foundation.org, mhocko@suse.com,
dan.j.williams@intel.com, pasha.tatashin@oracle.com,
yasu.isimatu@gmail.com, logang@deltatee.com,
dave.jiang@intel.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, Oscar Salvador <osalvador@suse.de>
Subject: Re: [RFC PATCH 2/3] mm/memory_hotplug: Create __shrink_pages and move it to offline_pages
Date: Wed, 8 Aug 2018 09:38:35 +0200 [thread overview]
Message-ID: <20180808073835.GA9568@techadventures.net> (raw)
In-Reply-To: <20180807221345.GD3301@redhat.com>
On Tue, Aug 07, 2018 at 06:13:45PM -0400, Jerome Glisse wrote:
> > And since we know for sure that memhotplug-code cannot call it with ZONE_DEVICE,
> > I think this can be done easily.
>
> This might change down road but for now this is correct. They are
> talks to enumerate device memory through standard platform mechanisms
> and thus the kernel might see new types of resources down the road and
> maybe we will want to hotplug them directly from regular hotplug path
> as ZONE_DEVICE (lot of hypothetical at this point ;)).
Well, I think that if that happens this whole thing will become
much easier, since we will not have several paths for doing the same thing.
Another thing that I realized is that while we want to move all operation-pages
from remove_memory() path to offline_pages(), this can get tricky.
Unless I am missing something, the devices from HMM and devm are not being registered
against "memory_subsys" struct, and so, they never get to call memory_subsys_offline()
and so offline_pages().
Which means that we would have to call __remove_zone() from those paths.
But this alone will not work.
find_smallest/biggest_section_pfn are two functions that are being called from
shrink_pgdat_span
and
shrink_zone_span
to adjust zone_first_pfn/node_first_pfn and the spanned pages.
Currently, find_smallest/biggest_section_pfn checks for the secion to be valid,
and this is fine since we are removing those sections from the remove_memory path.
But if we want to move __remove_zone() to offline_pages(), we have to use
online_section() instead of valid_section().
This is all fine from offline_pages because the sections get offlined in:
__offline_pages
offline_isolated_pages
offline_isolated_pages_cb
__offline_isolated_pages
offline_mem_sections
But this does not happen in HMM/devm path.
I am pretty sure this is a dumb question, but why HMM/devm path
do not call online_pages/offline_pages?
Thanks
--
Oscar Salvador
SUSE L3
next prev parent reply other threads:[~2018-08-08 7:38 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-07 13:37 [RFC PATCH 0/3] Do not touch pages in remove_memory path osalvador
2018-08-07 13:37 ` [RFC PATCH 1/3] mm/memory_hotplug: Add nid parameter to arch_remove_memory osalvador
2018-08-07 13:37 ` [RFC PATCH 2/3] mm/memory_hotplug: Create __shrink_pages and move it to offline_pages osalvador
2018-08-07 13:52 ` Jerome Glisse
2018-08-07 13:52 ` Jerome Glisse
2018-08-07 14:54 ` David Hildenbrand
2018-08-07 14:54 ` David Hildenbrand
2018-08-07 15:19 ` Jerome Glisse
2018-08-07 15:19 ` Jerome Glisse
2018-08-07 15:28 ` David Hildenbrand
2018-08-07 15:28 ` David Hildenbrand
2018-08-07 20:48 ` Oscar Salvador
2018-08-07 22:13 ` Jerome Glisse
2018-08-07 22:13 ` Jerome Glisse
2018-08-08 7:38 ` Oscar Salvador [this message]
2018-08-08 7:45 ` David Hildenbrand
2018-08-08 7:56 ` Oscar Salvador
2018-08-08 8:08 ` David Hildenbrand
2018-08-08 13:42 ` Oscar Salvador
2018-08-08 17:55 ` Jerome Glisse
2018-08-08 17:55 ` Jerome Glisse
2018-08-08 21:29 ` Oscar Salvador
2018-08-09 7:50 ` Oscar Salvador
2018-08-09 7:52 ` Oscar Salvador
2018-08-08 7:51 ` David Hildenbrand
2018-08-08 8:00 ` Oscar Salvador
2018-08-07 14:59 ` Michal Hocko
2018-08-07 15:18 ` Jerome Glisse
2018-08-07 15:18 ` Jerome Glisse
2018-08-08 6:47 ` Michal Hocko
2018-08-08 16:58 ` Jerome Glisse
2018-08-08 16:58 ` Jerome Glisse
2018-08-08 21:28 ` Oscar Salvador
2018-08-09 8:24 ` Michal Hocko
2018-08-09 14:27 ` Jerome Glisse
2018-08-09 14:27 ` Jerome Glisse
2018-08-09 15:09 ` Michal Hocko
2018-08-09 16:58 ` Jerome Glisse
2018-08-09 16:58 ` Jerome Glisse
2018-08-09 20:50 ` Oscar Salvador
2018-08-16 14:58 ` Oscar Salvador
2018-08-16 17:32 ` Jerome Glisse
2018-08-16 17:32 ` Jerome Glisse
2018-08-08 9:45 ` Oscar Salvador
2018-08-08 9:45 ` Oscar Salvador
2018-08-08 17:33 ` Jerome Glisse
2018-08-08 17:33 ` Jerome Glisse
2018-08-07 13:37 ` [RFC PATCH 3/3] mm/memory_hotplug: Refactor shrink_zone/pgdat_span osalvador
2018-08-07 14:16 ` [RFC PATCH 0/3] Do not touch pages in remove_memory path David Hildenbrand
2018-08-07 14:19 ` Oscar Salvador
2018-08-07 14:20 ` David Hildenbrand
2018-08-07 14:28 ` Oscar Salvador
2018-08-07 14:41 ` David Hildenbrand
2018-08-07 14:52 ` Oscar Salvador
2018-08-15 14:05 ` Pavel Tatashin
2018-08-15 14:32 ` Oscar Salvador
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=20180808073835.GA9568@techadventures.net \
--to=osalvador@techadventures.net \
--cc=akpm@linux-foundation.org \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=david@redhat.com \
--cc=jglisse@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=logang@deltatee.com \
--cc=mhocko@suse.com \
--cc=osalvador@suse.de \
--cc=pasha.tatashin@oracle.com \
--cc=yasu.isimatu@gmail.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.