[PATCH v3 0/7] DAX poison recovery

From: Jane Chu
Date: Tue Jan 11 2022 - 14:00:54 EST


In v3, dax recovery code path is independent of that of
normal write. Competing dax recovery threads are serialized,
racing read threads are guaranteed not overlapping with the
recovery process.

In this phase, the recovery granularity is page, future patch
will explore recovery in finer granularity.

Please refer to below discussions for more information:
v2:
https://lore.kernel.org/all/20211106011638.2613039-1-jane.chu@xxxxxxxxxx/
Disussions about marking poisoned page as 'np':
https://lore.kernel.org/all/CAPcyv4hrXPb1tASBZUg-GgdVs0OOFKXMXLiHmktg_kFi7YBMyQ@xxxxxxxxxxxxxx/

Jane Chu (7):
mce: fix set_mce_nospec to always unmap the whole page
dax: introduce dax device flag DAXDEV_RECOVERY
dm: make dm aware of target's DAXDEV_RECOVERY capability
dax: add dax_recovery_write to dax_op and dm target type
pmem: add pmem_recovery_write() dax op
dax: add recovery_write to dax_iomap_iter in failure path
pmem: fix pmem_do_write() avoid writing to 'np' page

arch/x86/include/asm/set_memory.h | 17 ++---
arch/x86/kernel/cpu/mce/core.c | 6 +-
arch/x86/mm/pat/set_memory.c | 8 ++-
drivers/dax/super.c | 53 ++++++++++++++++
drivers/md/dm-linear.c | 13 ++++
drivers/md/dm-log-writes.c | 14 +++++
drivers/md/dm-stripe.c | 13 ++++
drivers/md/dm-table.c | 33 ++++++++++
drivers/md/dm.c | 27 ++++++++
drivers/nvdimm/pmem.c | 101 +++++++++++++++++++++++++++---
drivers/nvdimm/pmem.h | 1 +
fs/dax.c | 25 +++++++-
include/linux/dax.h | 9 +++
include/linux/device-mapper.h | 3 +
include/linux/set_memory.h | 2 +-
15 files changed, 298 insertions(+), 27 deletions(-)

--
2.18.4