[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPcyv4h3KpOKgy_Cwi5fNBZmR=n1hB33mVzA3fqOY7c3G+GrMA@mail.gmail.com>
Date: Tue, 14 Sep 2021 21:44:10 -0700
From: Dan Williams <dan.j.williams@...el.com>
To: Jane Chu <jane.chu@...cle.com>
Cc: Vishal L Verma <vishal.l.verma@...el.com>,
Dave Jiang <dave.jiang@...el.com>,
"Weiny, Ira" <ira.weiny@...el.com>,
Al Viro <viro@...iv.linux.org.uk>,
Matthew Wilcox <willy@...radead.org>, Jan Kara <jack@...e.cz>,
Linux NVDIMM <nvdimm@...ts.linux.dev>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>
Subject: Re: [PATCH 0/3] dax: clear poison on the fly along pwrite
On Tue, Sep 14, 2021 at 4:32 PM Jane Chu <jane.chu@...cle.com> 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?
> 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
>
Powered by blists - more mailing lists