All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/6] DAX poison recovery
@ 2022-03-19  6:28 ` Jane Chu
  0 siblings, 0 replies; 52+ messages in thread
From: Jane Chu @ 2022-03-19  6:28 UTC (permalink / raw)
  To: david, djwong, dan.j.williams, hch, vishal.l.verma, dave.jiang,
	agk, snitzer, dm-devel, ira.weiny, willy, vgoyal, linux-fsdevel,
	nvdimm, linux-kernel, linux-xfs

In this series, 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.

Changelog:
v5->v6:
  . per Christoph, move set{clear}_mce_nospec() inline functions out
    of include/linux/set_memory.h and into arch/x86/mm/pat/set_memory.c
    file, so that no need to export _set_memory_present().
  . per Christoph, ratelimit warning message in pmem_do_write()
  . per both Christoph and Dan, switch back to adding a flag to
    dax_direct_access() instead of embedding the flag in kvaddr
  . suggestions from Christoph for improving code structure and
    readability
  . per Dan, add .recovery_write to dev_pagemap.ops instead of adding
    it to dax_operations, such that, the DM layer doesn't need to be
    involved explicitly in dax recoovery write
  . per Dan, is_bad_pmem() takes a seqlock, so no need to place it
    under recovery_lock. 
  Many thanks for both reviewers!
  
v4->v5:
  Fixed build errors reported by kernel test robot

v3->v4:
  Rebased to v5.17-rc1-81-g0280e3c58f92

References:
v4 https://lore.kernel.org/lkml/20220126211116.860012-1-jane.chu@oracle.com/T/
v3 https://lkml.org/lkml/2022/1/11/900
v2 https://lore.kernel.org/all/20211106011638.2613039-1-jane.chu@oracle.com/
Disussions about marking poisoned page as 'np'
https://lore.kernel.org/all/CAPcyv4hrXPb1tASBZUg-GgdVs0OOFKXMXLiHmktg_kFi7YBMyQ@mail.gmail.com/

Jane Chu (6):
  x86/mm: fix comment
  x86/mce: relocate set{clear}_mce_nospec() functions
  mce: fix set_mce_nospec to always unmap the whole page
  dax: add DAX_RECOVERY flag and .recovery_write dev_pgmap_ops
  pmem: refactor pmem_clear_poison()
  pmem: implement pmem_recovery_write()

 arch/x86/include/asm/set_memory.h |  52 ---------
 arch/x86/kernel/cpu/mce/core.c    |   6 +-
 arch/x86/mm/pat/set_memory.c      |  47 +++++++-
 drivers/dax/super.c               |  23 +++-
 drivers/md/dm-linear.c            |   4 +-
 drivers/md/dm-log-writes.c        |   5 +-
 drivers/md/dm-stripe.c            |   4 +-
 drivers/md/dm-target.c            |   2 +-
 drivers/md/dm-writecache.c        |   5 +-
 drivers/md/dm.c                   |   5 +-
 drivers/nvdimm/pmem.c             | 182 +++++++++++++++++++++---------
 drivers/nvdimm/pmem.h             |   3 +-
 drivers/s390/block/dcssblk.c      |   4 +-
 fs/dax.c                          |  32 +++++-
 fs/fuse/dax.c                     |   4 +-
 include/linux/dax.h               |  12 +-
 include/linux/device-mapper.h     |   2 +-
 include/linux/memremap.h          |   7 ++
 include/linux/set_memory.h        |  11 +-
 tools/testing/nvdimm/pmem-dax.c   |   2 +-
 20 files changed, 269 insertions(+), 143 deletions(-)

-- 
2.18.4


^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2022-03-26  6:32 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-19  6:28 [PATCH v6 0/6] DAX poison recovery Jane Chu
2022-03-19  6:28 ` [dm-devel] " Jane Chu
2022-03-19  6:28 ` [PATCH v6 1/6] x86/mm: fix comment Jane Chu
2022-03-19  6:28   ` [dm-devel] " Jane Chu
2022-03-22  8:40   ` Christoph Hellwig
2022-03-22  8:40     ` [dm-devel] " Christoph Hellwig
2022-03-19  6:28 ` [PATCH v6 2/6] x86/mce: relocate set{clear}_mce_nospec() functions Jane Chu
2022-03-19  6:28   ` [dm-devel] " Jane Chu
2022-03-19  8:13   ` kernel test robot
2022-03-19  8:13     ` [dm-devel] " kernel test robot
2022-03-19  8:24   ` kernel test robot
2022-03-19  8:24     ` [dm-devel] " kernel test robot
2022-03-22  8:42   ` Christoph Hellwig
2022-03-22  8:42     ` [dm-devel] " Christoph Hellwig
2022-03-22 22:19     ` Jane Chu
2022-03-22 22:19       ` [dm-devel] " Jane Chu
2022-03-22 22:41   ` Borislav Petkov
2022-03-22 22:41     ` [dm-devel] " Borislav Petkov
2022-03-22 23:48     ` Jane Chu
2022-03-22 23:48       ` [dm-devel] " Jane Chu
2022-03-19  6:28 ` [PATCH v6 3/6] mce: fix set_mce_nospec to always unmap the whole page Jane Chu
2022-03-19  6:28   ` [dm-devel] " Jane Chu
2022-03-22  8:44   ` Christoph Hellwig
2022-03-22  8:44     ` [dm-devel] " Christoph Hellwig
2022-03-22 22:45     ` Jane Chu
2022-03-22 22:45       ` [dm-devel] " Jane Chu
2022-03-19  6:28 ` [PATCH v6 4/6] dax: add DAX_RECOVERY flag and .recovery_write dev_pgmap_ops Jane Chu
2022-03-19  6:28   ` [dm-devel] " Jane Chu
2022-03-19  8:24   ` kernel test robot
2022-03-19  8:24     ` [dm-devel] " kernel test robot
2022-03-19  8:44   ` kernel test robot
2022-03-19  8:44     ` [dm-devel] " kernel test robot
2022-03-22  9:01   ` Christoph Hellwig
2022-03-22  9:01     ` [dm-devel] " Christoph Hellwig
2022-03-22 23:05     ` Jane Chu
2022-03-22 23:05       ` [dm-devel] " Jane Chu
2022-03-23  5:45       ` Christoph Hellwig
2022-03-23  5:45         ` [dm-devel] " Christoph Hellwig
2022-03-23 18:43         ` Jane Chu
2022-03-23 18:43           ` [dm-devel] " Jane Chu
2022-03-24  6:37           ` Christoph Hellwig
2022-03-24  6:37             ` [dm-devel] " Christoph Hellwig
2022-03-26  6:31         ` Jane Chu
2022-03-26  6:31           ` [dm-devel] " Jane Chu
2022-03-19  6:28 ` [PATCH v6 5/6] pmem: refactor pmem_clear_poison() Jane Chu
2022-03-19  6:28   ` [dm-devel] " Jane Chu
2022-03-22  8:53   ` Christoph Hellwig
2022-03-22  8:53     ` [dm-devel] " Christoph Hellwig
2022-03-22 23:45     ` Jane Chu
2022-03-22 23:45       ` [dm-devel] " Jane Chu
2022-03-19  6:28 ` [PATCH v6 6/6] pmem: implement pmem_recovery_write() Jane Chu
2022-03-19  6:28   ` [dm-devel] " Jane Chu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.