From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, David Hildenbrand <david@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Baoquan He <bhe@redhat.com>,
Charan Teja Reddy <charante@codeaurora.org>,
Dan Williams <dan.j.williams@intel.com>,
Fenghua Yu <fenghua.yu@intel.com>,
Logan Gunthorpe <logang@deltatee.com>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Mel Gorman <mgorman@suse.de>, Michal Hocko <mhocko@suse.com>,
Michel Lespinasse <walken@google.com>,
Mike Rapoport <rppt@kernel.org>,
Oscar Salvador <osalvador@suse.de>,
Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
Tony Luck <tony.luck@intel.com>,
Wei Yang <richard.weiyang@linux.alibaba.com>
Subject: [PATCH v1 00/11] mm/memory_hotplug: online_pages()/offline_pages() cleanups
Date: Wed, 19 Aug 2020 12:11:46 +0200 [thread overview]
Message-ID: <20200819101157.12723-1-david@redhat.com> (raw)
These are a bunch of cleanups for online_pages()/offline_pages() and
related code, mostly getting rid of memory hole handling that is no longer
necessary. There is only a single walk_system_ram_range() call left in
offline_pages(), to make sure we don't have any memory holes. I had some
of these patches lying around for a longer time but didn't have time to
polish them.
In addition, the last patch marks all pageblocks of memory to get onlined
MIGRATE_ISOLATE, so pages that have just been exposed to the buddy cannot
get allocated before onlining is complete. Once heavy lifting is done,
the pageblocks are set to MIGRATE_MOVABLE, such that allocations are
possible.
I played with DIMMs and virtio-mem on x86-64 and didn't spot any surprises.
I verified that the numer of isolated pageblocks is correctly handled when
onlining/offlining.
David Hildenbrand (11):
mm/memory_hotplug: inline __offline_pages() into offline_pages()
mm/memory_hotplug: enforce section granularity when onlining/offlining
mm/memory_hotplug: simplify checking if all pages are isolated in
offline_pages()
mm/memory_hotplug: simplify offlining of pages in offline_pages()
mm/page_alloc: simplify __offline_isolated_pages()
mm/memory_hotplug: drop nr_isolate_pageblock in offline_pages()
mm/page_isolation: simplify return value of start_isolate_page_range()
mm/memory_hotplug: simplify page onlining
mm/page_alloc: drop stale pageblock comment in memmap_init_zone*()
mm: pass migratetype into memmap_init_zone() and
move_pfn_range_to_zone()
mm/memory_hotplug: mark pageblocks MIGRATE_ISOLATE while onlining
memory
arch/ia64/mm/init.c | 4 +-
include/linux/memory_hotplug.h | 7 +-
include/linux/mm.h | 3 +-
mm/Kconfig | 2 +-
mm/memory_hotplug.c | 156 ++++++++++++++-------------------
mm/memremap.c | 3 +-
mm/page_alloc.c | 64 ++++----------
mm/page_isolation.c | 7 +-
8 files changed, 98 insertions(+), 148 deletions(-)
--
2.26.2
next reply other threads:[~2020-08-19 10:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-19 10:11 David Hildenbrand [this message]
2020-08-19 10:11 ` [PATCH v1 01/11] mm/memory_hotplug: inline __offline_pages() into offline_pages() David Hildenbrand
2020-08-19 12:23 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 02/11] mm/memory_hotplug: enforce section granularity when onlining/offlining David Hildenbrand
2020-08-19 12:37 ` Michal Hocko
2020-08-19 12:43 ` David Hildenbrand
2020-08-19 12:54 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 03/11] mm/memory_hotplug: simplify checking if all pages are isolated in offline_pages() David Hildenbrand
2020-08-19 12:39 ` Michal Hocko
2020-08-31 10:10 ` Pankaj Gupta
2020-08-19 10:11 ` [PATCH v1 04/11] mm/memory_hotplug: simplify offlining of pages " David Hildenbrand
2020-08-19 12:40 ` Michal Hocko
2020-08-19 12:44 ` David Hildenbrand
2020-08-19 10:11 ` [PATCH v1 05/11] mm/page_alloc: simplify __offline_isolated_pages() David Hildenbrand
2020-08-19 12:48 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 06/11] mm/memory_hotplug: drop nr_isolate_pageblock in offline_pages() David Hildenbrand
2020-08-19 12:58 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 07/11] mm/page_isolation: simplify return value of start_isolate_page_range() David Hildenbrand
2020-08-19 13:00 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 08/11] mm/memory_hotplug: simplify page onlining David Hildenbrand
2020-08-19 13:02 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 09/11] mm/page_alloc: drop stale pageblock comment in memmap_init_zone*() David Hildenbrand
2020-08-19 13:05 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 10/11] mm: pass migratetype into memmap_init_zone() and move_pfn_range_to_zone() David Hildenbrand
2020-08-19 13:08 ` Michal Hocko
2020-08-19 10:11 ` [PATCH v1 11/11] mm/memory_hotplug: mark pageblocks MIGRATE_ISOLATE while onlining memory David Hildenbrand
2020-08-19 13:16 ` Michal Hocko
2020-08-19 13:19 ` 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=20200819101157.12723-1-david@redhat.com \
--to=david@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=charante@codeaurora.org \
--cc=dan.j.williams@intel.com \
--cc=fenghua.yu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=logang@deltatee.com \
--cc=mgorman@suse.de \
--cc=mhocko@suse.com \
--cc=osalvador@suse.de \
--cc=pankaj.gupta.linux@gmail.com \
--cc=richard.weiyang@linux.alibaba.com \
--cc=rppt@kernel.org \
--cc=tony.luck@intel.com \
--cc=walken@google.com \
--cc=willy@infradead.org \
/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