lkml.org 
[lkml]   [2021]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Subject[PATCH v2 0/5] mm: Fix pfn_to_online_page() with respect to ZONE_DEVICE
    From
    Date
    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(-)

    \
     
     \ /
      Last update: 2021-01-12 10:38    [W:7.869 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site