From: Dan Williams <dan.j.williams@intel.com> To: linux-mm@kvack.org Cc: David Hildenbrand <david@redhat.com>, stable@vger.kernel.org, Naoya Horiguchi <nao.horiguchi@gmail.com>, Qian Cai <cai@lca.pw>, Michal Hocko <mhocko@kernel.org>, Oscar Salvador <osalvador@suse.de>, Michal Hocko <mhocko@suse.com>, Andrew Morton <akpm@linux-foundation.org>, linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 0/5] mm: Fix pfn_to_online_page() with respect to ZONE_DEVICE Date: Tue, 12 Jan 2021 01:34:36 -0800 [thread overview] Message-ID: <161044407603.1482714.16630477578392768273.stgit@dwillia2-desk3.amr.corp.intel.com> (raw) Changes since v1 [1]: - Clarify the failing condition in patch 3 (Michal) - Clarify how subsection collisions manifest in shipping systems (Michal) - Use zone_idx() (Michal) - Move section_taint_zone_device() conditions to move_pfn_range_to_zone() (Michal) - Fix pfn_to_online_page() to account for pfn_valid() vs pfn_section_valid() confusion (David) [1]: http://lore.kernel.org/r/160990599013.2430134.11556277600719835946.stgit@dwillia2-desk3.amr.corp.intel.com --- Michal reminds that the discussion about how to ensure pfn-walkers do not get confused by ZONE_DEVICE pages never resolved. A pfn-walker that uses pfn_to_online_page() may inadvertently translate a pfn as online and in the page allocator, when it is offline managed by a ZONE_DEVICE mapping (details in Patch 3: ("mm: Teach pfn_to_online_page() about ZONE_DEVICE section collisions")). The 2 proposals under consideration are teach pfn_to_online_page() to be precise in the presence of mixed-zone sections, or teach the memory-add code to drop the System RAM associated with ZONE_DEVICE collisions. In order to not regress memory capacity by a few 10s to 100s of MiB the approach taken in this set is to add precision to pfn_to_online_page(). In the course of validating pfn_to_online_page() a couple other fixes fell out: 1/ soft_offline_page() fails to drop the reference taken in the madvise(..., MADV_SOFT_OFFLINE) case. 2/ The libnvdimm sysfs attribute visibility code was failing to publish the resource base for memmap=ss!nn defined namespaces. This is needed for the regression test for soft_offline_page(). --- Dan Williams (5): mm: Move pfn_to_online_page() out of line mm: Teach pfn_to_online_page() to consider subsection validity mm: Teach pfn_to_online_page() about ZONE_DEVICE section collisions mm: Fix page reference leak in soft_offline_page() libnvdimm/namespace: Fix visibility of namespace resource attribute drivers/nvdimm/namespace_devs.c | 10 +++--- include/linux/memory_hotplug.h | 17 +---------- include/linux/mmzone.h | 22 +++++++++----- mm/memory-failure.c | 20 ++++++++++--- mm/memory_hotplug.c | 62 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 99 insertions(+), 32 deletions(-) _______________________________________________ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com> To: linux-mm@kvack.org Cc: David Hildenbrand <david@redhat.com>, Dave Jiang <dave.jiang@intel.com>, Ira Weiny <ira.weiny@intel.com>, stable@vger.kernel.org, Naoya Horiguchi <nao.horiguchi@gmail.com>, Qian Cai <cai@lca.pw>, Michal Hocko <mhocko@kernel.org>, Oscar Salvador <osalvador@suse.de>, Michal Hocko <mhocko@suse.com>, Vishal Verma <vishal.l.verma@intel.com>, Andrew Morton <akpm@linux-foundation.org>, linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 0/5] mm: Fix pfn_to_online_page() with respect to ZONE_DEVICE Date: Tue, 12 Jan 2021 01:34:36 -0800 [thread overview] Message-ID: <161044407603.1482714.16630477578392768273.stgit@dwillia2-desk3.amr.corp.intel.com> (raw) Changes since v1 [1]: - Clarify the failing condition in patch 3 (Michal) - Clarify how subsection collisions manifest in shipping systems (Michal) - Use zone_idx() (Michal) - Move section_taint_zone_device() conditions to move_pfn_range_to_zone() (Michal) - Fix pfn_to_online_page() to account for pfn_valid() vs pfn_section_valid() confusion (David) [1]: http://lore.kernel.org/r/160990599013.2430134.11556277600719835946.stgit@dwillia2-desk3.amr.corp.intel.com --- Michal reminds that the discussion about how to ensure pfn-walkers do not get confused by ZONE_DEVICE pages never resolved. A pfn-walker that uses pfn_to_online_page() may inadvertently translate a pfn as online and in the page allocator, when it is offline managed by a ZONE_DEVICE mapping (details in Patch 3: ("mm: Teach pfn_to_online_page() about ZONE_DEVICE section collisions")). The 2 proposals under consideration are teach pfn_to_online_page() to be precise in the presence of mixed-zone sections, or teach the memory-add code to drop the System RAM associated with ZONE_DEVICE collisions. In order to not regress memory capacity by a few 10s to 100s of MiB the approach taken in this set is to add precision to pfn_to_online_page(). In the course of validating pfn_to_online_page() a couple other fixes fell out: 1/ soft_offline_page() fails to drop the reference taken in the madvise(..., MADV_SOFT_OFFLINE) case. 2/ The libnvdimm sysfs attribute visibility code was failing to publish the resource base for memmap=ss!nn defined namespaces. This is needed for the regression test for soft_offline_page(). --- Dan Williams (5): mm: Move pfn_to_online_page() out of line mm: Teach pfn_to_online_page() to consider subsection validity mm: Teach pfn_to_online_page() about ZONE_DEVICE section collisions mm: Fix page reference leak in soft_offline_page() libnvdimm/namespace: Fix visibility of namespace resource attribute drivers/nvdimm/namespace_devs.c | 10 +++--- include/linux/memory_hotplug.h | 17 +---------- include/linux/mmzone.h | 22 +++++++++----- mm/memory-failure.c | 20 ++++++++++--- mm/memory_hotplug.c | 62 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 99 insertions(+), 32 deletions(-)
next reply other threads:[~2021-01-12 9:34 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-12 9:34 Dan Williams [this message] 2021-01-12 9:34 ` [PATCH v2 0/5] mm: Fix pfn_to_online_page() with respect to ZONE_DEVICE Dan Williams 2021-01-12 9:34 ` [PATCH v2 1/5] mm: Move pfn_to_online_page() out of line Dan Williams 2021-01-12 9:34 ` Dan Williams 2021-01-12 9:46 ` David Hildenbrand 2021-01-12 9:46 ` David Hildenbrand 2021-01-12 10:19 ` Oscar Salvador 2021-01-12 10:19 ` Oscar Salvador 2021-01-12 9:34 ` [PATCH v2 2/5] mm: Teach pfn_to_online_page() to consider subsection validity Dan Williams 2021-01-12 9:34 ` Dan Williams 2021-01-12 9:53 ` David Hildenbrand 2021-01-12 9:53 ` David Hildenbrand 2021-01-12 10:48 ` Oscar Salvador 2021-01-12 10:48 ` Oscar Salvador 2021-01-12 22:20 ` Dan Williams 2021-01-12 22:20 ` Dan Williams 2021-01-12 22:20 ` Dan Williams 2021-01-12 9:34 ` [PATCH v2 3/5] mm: Teach pfn_to_online_page() about ZONE_DEVICE section collisions Dan Williams 2021-01-12 9:34 ` Dan Williams 2021-01-12 10:01 ` David Hildenbrand 2021-01-12 10:01 ` David Hildenbrand 2021-01-12 11:00 ` Oscar Salvador 2021-01-12 11:00 ` Oscar Salvador 2021-01-12 9:34 ` [PATCH v2 4/5] mm: Fix page reference leak in soft_offline_page() Dan Williams 2021-01-12 9:34 ` Dan Williams 2021-01-12 9:53 ` Oscar Salvador 2021-01-12 9:53 ` Oscar Salvador 2021-01-12 20:03 ` Dan Williams 2021-01-12 20:03 ` Dan Williams 2021-01-12 20:03 ` Dan Williams 2021-01-12 10:16 ` David Hildenbrand 2021-01-12 10:16 ` David Hildenbrand 2021-01-12 9:35 ` [PATCH v2 5/5] libnvdimm/namespace: Fix visibility of namespace resource attribute Dan Williams 2021-01-12 9:35 ` Dan Williams
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=161044407603.1482714.16630477578392768273.stgit@dwillia2-desk3.amr.corp.intel.com \ --to=dan.j.williams@intel.com \ --cc=akpm@linux-foundation.org \ --cc=cai@lca.pw \ --cc=david@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-nvdimm@lists.01.org \ --cc=mhocko@kernel.org \ --cc=mhocko@suse.com \ --cc=nao.horiguchi@gmail.com \ --cc=osalvador@suse.de \ --cc=stable@vger.kernel.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: linkBe 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.