• Wu Fengguang's avatar
    HWPOISON: limit hwpoison injector to known page types · 31d3d348
    Wu Fengguang authored
    __memory_failure()'s workflow is
    
    	set PG_hwpoison
    	//...
    	unset PG_hwpoison if didn't pass hwpoison filter
    
    That could kill unrelated process if it happens to page fault on the
    page with the (temporary) PG_hwpoison. The race should be big enough to
    appear in stress tests.
    
    Fix it by grabbing the page and checking filter at inject time.  This
    also avoids the very noisy "Injecting memory failure..." messages.
    
    - we don't touch madvise() based injection, because the filters are
      generally not necessary for it.
    - if we want to apply the filters to h/w aided injection, we'd better to
      rearrange the logic in __memory_failure() instead of this patch.
    
    AK: fix documentation, use drain all, cleanups
    
    CC: Haicheng Li <haicheng.li@intel.com>
    Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    31d3d348
hwpoison-inject.c 2.56 KB