linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] dax: handling of media errors
@ 2016-03-30  1:59 Vishal Verma
  2016-03-30  1:59 ` [PATCH v2 1/5] block, dax: pass blk_dax_ctl through to drivers Vishal Verma
                   ` (4 more replies)
  0 siblings, 5 replies; 64+ messages in thread
From: Vishal Verma @ 2016-03-30  1:59 UTC (permalink / raw)
  To: linux-nvdimm
  Cc: Vishal Verma, linux-fsdevel, linux-block, xfs, linux-ext4,
	linux-mm, Matthew Wilcox, Ross Zwisler, Dan Williams,
	Dave Chinner, Jan Kara, Jens Axboe, Al Viro, Andrew Morton,
	linux-kernel, Christoph Hellwig

Until now, dax has been disabled if media errors were found on
any device. This series attempts to address that.

The first three patches from Dan re-enable dax even when media
errors are present.

The fourth patch from Matthew removes the
zeroout path from dax entirely, making zeroout operations always
go through the driver (The motivation is that if a backing device
has media errors, and we create a sparse file on it, we don't
want the initial zeroing to happen via dax, we want to give the
block driver a chance to clear the errors).

One pending item is addressing clear_pmem usages in dax.c. clear_pmem is
'unsafe' as it attempts to simply memcpy, and does not go through the driver.
We have a few options of solving this:
 1. Remove all usages of clear_pmem that are not sector-aligned. For the
    ones that are aligned, replace them with a bio submission that goes
    through the driver to clear errors.
 2. Export from the block layer, either an API to zero sub-sector ranges,
    or in general, clear errors in a range. The dax attempts to clear_pmem
    can then use either of these and not be hit be media errors.

I'll send out a v3 with a crack at option 1, but I wanted to get these
changes (especially the ones in xfs) out for review.

The fifth patch changes all the callers of dax_do_io to check for
EIO, and fallback to direct_IO as needed. This forces the IO to
go through the block driver, and can attempt to clear the error.


v2:
 - Use blockdev_issue_zeroout in xfs instead of sb_issue_zeroout (Christoph)
 - Un-wrapper-ize dax_do_io and leave the fallback to direct_IO to callers
   (Christoph)
 - Rebase to v4.6-rc1 (fixup a couple of conflicts in ext4 and xfs)


Dan Williams (3):
  block, dax: pass blk_dax_ctl through to drivers
  dax: fallback from pmd to pte on error
  dax: enable dax in the presence of known media errors (badblocks)

Vishal Verma (2):
  dax: use sb_issue_zerout instead of calling dax_clear_sectors
  dax: handle media errors in dax_do_io

 arch/powerpc/sysdev/axonram.c | 10 +++++-----
 block/ioctl.c                 |  9 ---------
 drivers/block/brd.c           |  9 +++++----
 drivers/nvdimm/pmem.c         | 17 +++++++++++++----
 drivers/s390/block/dcssblk.c  | 12 ++++++------
 fs/block_dev.c                | 19 +++++++++++++++----
 fs/dax.c                      | 36 ++----------------------------------
 fs/ext2/inode.c               | 29 ++++++++++++++++++-----------
 fs/ext4/indirect.c            | 18 +++++++++++++-----
 fs/ext4/inode.c               | 21 ++++++++++++++-------
 fs/xfs/xfs_aops.c             | 14 ++++++++++++--
 fs/xfs/xfs_bmap_util.c        | 15 ++++-----------
 include/linux/blkdev.h        |  3 +--
 include/linux/dax.h           |  1 -
 14 files changed, 108 insertions(+), 105 deletions(-)

-- 
2.5.5

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

end of thread, other threads:[~2016-05-04  5:05 UTC | newest]

Thread overview: 64+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-30  1:59 [PATCH v2 0/5] dax: handling of media errors Vishal Verma
2016-03-30  1:59 ` [PATCH v2 1/5] block, dax: pass blk_dax_ctl through to drivers Vishal Verma
2016-03-30  4:19   ` kbuild test robot
2016-04-15 14:55   ` Jeff Moyer
2016-03-30  1:59 ` [PATCH v2 2/5] dax: fallback from pmd to pte on error Vishal Verma
2016-04-15 14:55   ` Jeff Moyer
2016-03-30  1:59 ` [PATCH v2 3/5] dax: enable dax in the presence of known media errors (badblocks) Vishal Verma
2016-04-15 14:56   ` Jeff Moyer
2016-03-30  1:59 ` [PATCH v2 4/5] dax: use sb_issue_zerout instead of calling dax_clear_sectors Vishal Verma
2016-04-15 15:18   ` Jeff Moyer
2016-03-30  1:59 ` [PATCH v2 5/5] dax: handle media errors in dax_do_io Vishal Verma
2016-03-30  3:00   ` kbuild test robot
2016-03-30  6:34   ` Christoph Hellwig
2016-03-30  6:54     ` Vishal Verma
2016-03-30  6:56       ` Christoph Hellwig
2016-04-15 16:11   ` Jeff Moyer
2016-04-15 16:54     ` Verma, Vishal L
2016-04-15 17:11       ` Jeff Moyer
2016-04-15 17:37         ` Verma, Vishal L
2016-04-15 17:57           ` Dan Williams
2016-04-15 18:06             ` Jeff Moyer
2016-04-15 18:17               ` Dan Williams
2016-04-15 18:24                 ` Jeff Moyer
2016-04-15 18:56                   ` Dan Williams
2016-04-15 19:13                     ` Jeff Moyer
2016-04-15 19:01                 ` Toshi Kani
2016-04-15 19:08                   ` Toshi Kani
2016-04-20 20:59     ` Christoph Hellwig
2016-04-23 18:08       ` Verma, Vishal L
2016-04-25  8:31         ` hch
2016-04-25 15:32           ` Jeff Moyer
2016-04-26  8:32             ` hch
2016-04-25 17:14           ` Verma, Vishal L
2016-04-25 17:21             ` Dan Williams
2016-04-25 23:25             ` Dave Chinner
2016-04-25 23:34               ` Darrick J. Wong
2016-04-25 23:43               ` Dan Williams
2016-04-26  0:11                 ` Dave Chinner
2016-04-26  1:45                   ` Dan Williams
2016-04-26  2:56                     ` Dave Chinner
2016-04-26  4:18                       ` Dan Williams
2016-04-26  8:27                         ` Dave Chinner
2016-04-26 14:59                           ` Dan Williams
2016-04-26 15:31                             ` Jan Kara
2016-04-26 17:16                               ` Dan Williams
2016-04-25 23:53               ` Verma, Vishal L
2016-04-26  0:41                 ` Dave Chinner
2016-04-26 14:58                   ` Vishal Verma
2016-05-02 15:18                   ` Jeff Moyer
2016-05-02 17:53                     ` Dan Williams
2016-05-03  0:42                       ` Dave Chinner
2016-05-03  1:26                         ` Rudoff, Andy
2016-05-03  2:49                           ` Dave Chinner
2016-05-03 18:30                             ` Rudoff, Andy
2016-05-04  1:36                               ` Dave Chinner
2016-05-02 23:04                     ` Dave Chinner
2016-05-02 23:17                       ` Verma, Vishal L
2016-05-02 23:25                       ` Dan Williams
2016-05-03  1:51                         ` Dave Chinner
2016-05-03 17:28                           ` Dan Williams
2016-05-04  3:18                             ` Dave Chinner
2016-05-04  5:05                               ` Dan Williams
2016-04-26  8:33             ` hch
2016-04-26 15:01               ` Vishal Verma

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).