• N
    mm/hwpoison: introduce per-memory_block hwpoison counter · 5033091d
    Naoya Horiguchi 提交于
    Currently PageHWPoison flag does not behave well when experiencing memory
    hotremove/hotplug.  Any data field in struct page is unreliable when the
    associated memory is offlined, and the current mechanism can't tell
    whether a memory block is onlined because a new memory devices is
    installed or because previous failed offline operations are undone. 
    Especially if there's a hwpoisoned memory, it's unclear what the best
    option is.
    
    So introduce a new mechanism to make struct memory_block remember that a
    memory block has hwpoisoned memory inside it.  And make any online event
    fail if the onlining memory block contains hwpoison.  struct memory_block
    is freed and reallocated over ACPI-based hotremove/hotplug, but not over
    sysfs-based hotremove/hotplug.  So the new counter can distinguish these
    cases.
    
    Link: https://lkml.kernel.org/r/20221024062012.1520887-5-naoya.horiguchi@linux.devSigned-off-by: NNaoya Horiguchi <naoya.horiguchi@nec.com>
    Reported-by: Nkernel test robot <lkp@intel.com>
    Reviewed-by: NMiaohe Lin <linmiaohe@huawei.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Jane Chu <jane.chu@oracle.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Muchun Song <songmuchun@bytedance.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Yang Shi <shy828301@gmail.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    5033091d
memory.h 6.2 KB