From: Jane Chu <firstname.lastname@example.org> To: Dan Williams <email@example.com> Cc: Vishal L Verma <firstname.lastname@example.org>, Dave Jiang <email@example.com>, "Weiny, Ira" <firstname.lastname@example.org>, Al Viro <email@example.com>, Matthew Wilcox <firstname.lastname@example.org>, Jan Kara <email@example.com>, Linux NVDIMM <firstname.lastname@example.org>, Linux Kernel Mailing List <email@example.com>, linux-fsdevel <firstname.lastname@example.org> Subject: Re: [PATCH 0/3] dax: clear poison on the fly along pwrite Date: Wed, 15 Sep 2021 00:22:05 -0700 [thread overview] Message-ID: <email@example.com> (raw) In-Reply-To: <CAPcyv4h3KpOKgy_Cwi5fNBZmR=n1hB33mVzA3fqOY7c3G+GrMA@mail.gmail.com> Hi, Dan, On 9/14/2021 9:44 PM, Dan Williams wrote: > On Tue, Sep 14, 2021 at 4:32 PM Jane Chu <firstname.lastname@example.org> wrote: >> >> If pwrite(2) encounters poison in a pmem range, it fails with EIO. >> This is unecessary if hardware is capable of clearing the poison. >> >> Though not all dax backend hardware has the capability of clearing >> poison on the fly, but dax backed by Intel DCPMEM has such capability, >> and it's desirable to, first, speed up repairing by means of it; >> second, maintain backend continuity instead of fragmenting it in >> search for clean blocks. >> >> Jane Chu (3): >> dax: introduce dax_operation dax_clear_poison > > The problem with new dax operations is that they need to be plumbed > not only through fsdax and pmem, but also through device-mapper. > > In this case I think we're already covered by dax_zero_page_range(). > That will ultimately trigger pmem_clear_poison() and it is routed > through device-mapper properly. > > Can you clarify why the existing dax_zero_page_range() is not sufficient? fallocate ZERO_RANGE is in itself a functionality that applied to dax should lead to zero out the media range. So one may argue it is part of a block operations, and not something explicitly aimed at clearing poison. I'm also thinking about the MOVEDIR64B instruction and how it might be used to clear poison on the fly with a single 'store'. Of course, that means we need to figure out how to narrow down the error blast radius first. With respect to plumbing through device-mapper, I thought about that, and wasn't sure. I mean the clear-poison work will eventually fall on the pmem driver, and thru the DM layers, how does that play out thru DM? BTW, our customer doesn't care about creating dax volume thru DM, so. thanks! -jane > >> dax: introduce dax_clear_poison to dax pwrite operation >> libnvdimm/pmem: Provide pmem_dax_clear_poison for dax operation >> >> drivers/dax/super.c | 13 +++++++++++++ >> drivers/nvdimm/pmem.c | 17 +++++++++++++++++ >> fs/dax.c | 9 +++++++++ >> include/linux/dax.h | 6 ++++++ >> 4 files changed, 45 insertions(+) >> >> -- >> 2.18.4 >>
next prev parent reply other threads:[~2021-09-15 7:22 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-14 23:31 Jane Chu 2021-09-14 23:31 ` [PATCH 1/3] dax: introduce dax_operation dax_clear_poison Jane Chu 2021-11-04 17:53 ` Christoph Hellwig 2021-09-14 23:31 ` [PATCH 2/3] dax: introduce dax_clear_poison to dax pwrite operation Jane Chu 2021-11-04 17:53 ` Christoph Hellwig 2021-09-14 23:31 ` [PATCH 2/3] dax: introduce dax clear poison to page aligned " Jane Chu 2021-09-14 23:31 ` [PATCH 3/3] libnvdimm/pmem: Provide pmem_dax_clear_poison for dax operation Jane Chu 2021-11-04 17:55 ` Christoph Hellwig 2021-11-04 20:27 ` Jane Chu 2021-09-15 4:44 ` [PATCH 0/3] dax: clear poison on the fly along pwrite Dan Williams 2021-09-15 7:22 ` Jane Chu [this message] 2021-09-15 16:15 ` Darrick J. Wong 2021-09-15 20:27 ` Dan Williams 2021-09-16 0:05 ` Darrick J. Wong 2021-09-16 7:11 ` Christoph Hellwig 2021-09-16 18:40 ` Dan Williams 2021-09-17 12:53 ` Christoph Hellwig 2021-09-17 15:27 ` Darrick J. Wong 2021-09-17 20:21 ` Dan Williams 2021-09-18 0:07 ` Darrick J. Wong 2021-09-17 19:37 ` Dan Williams 2021-09-23 20:48 ` Jane Chu 2021-09-23 20:55 ` Jane Chu 2021-09-23 21:42 ` Dan Williams
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --subject='Re: [PATCH 0/3] dax: clear poison on the fly along pwrite' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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).