]> git.baikalelectronics.ru Git - kernel.git/commit
HWPOISON: limit hwpoison injector to known page types
authorWu Fengguang <fengguang.wu@intel.com>
Wed, 16 Dec 2009 11:19:59 +0000 (12:19 +0100)
committerAndi Kleen <ak@linux.intel.com>
Wed, 16 Dec 2009 11:19:59 +0000 (12:19 +0100)
commit623397bd9a7d947785191006ed71fd32e6712dcd
tree38f331f27f3b4bc537303fc90490b88d53e43710
parent66f1d3bf5aa2193e408a69e38e949eb21d2c4fe8
HWPOISON: limit hwpoison injector to known page types

__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: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Documentation/vm/hwpoison.txt
mm/hwpoison-inject.c
mm/internal.h