[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171020074750.GA13568@lst.de>
Date: Fri, 20 Oct 2017 09:47:50 +0200
From: Christoph Hellwig <hch@....de>
To: Dan Williams <dan.j.williams@...el.com>
Cc: akpm@...ux-foundation.org, Michal Hocko <mhocko@...e.com>,
Jan Kara <jack@...e.cz>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Dave Chinner <david@...morbit.com>,
"J. Bruce Fields" <bfields@...ldses.org>, linux-mm@...ck.org,
Paul Mackerras <paulus@...ba.org>,
Sean Hefty <sean.hefty@...el.com>,
Jeff Layton <jlayton@...chiereds.net>,
Matthew Wilcox <mawilcox@...rosoft.com>,
linux-rdma@...r.kernel.org, Michael Ellerman <mpe@...erman.id.au>,
Jeff Moyer <jmoyer@...hat.com>, hch@....de,
Jason Gunthorpe <jgunthorpe@...idianresearch.com>,
Doug Ledford <dledford@...hat.com>,
Ross Zwisler <ross.zwisler@...ux.intel.com>,
Hal Rosenstock <hal.rosenstock@...il.com>,
Heiko Carstens <heiko.carstens@...ibm.com>,
linux-nvdimm@...ts.01.org,
Alexander Viro <viro@...iv.linux.org.uk>,
Gerald Schaefer <gerald.schaefer@...ibm.com>,
"Darrick J. Wong" <darrick.wong@...cle.com>,
linux-kernel@...r.kernel.org, linux-xfs@...r.kernel.org,
Martin Schwidefsky <schwidefsky@...ibm.com>,
linux-fsdevel@...r.kernel.org,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>
Subject: Re: [PATCH v3 00/13] dax: fix dma vs truncate and remove
'page-less' support
> The solution presented is not pretty. It creates a stream of leases, one
> for each get_user_pages() invocation, and polls page reference counts
> until DMA stops. We're missing a reliable way to not only trap the
> DMA-idle event, but also block new references being taken on pages while
> truncate is allowed to progress. "[PATCH v3 12/13] dax: handle truncate of
> dma-busy pages" presents other options considered, and notes that this
> solution can only be viewed as a stop-gap.
I'd like to brainstorm how we can do something better.
How about:
If we hit a page with an elevated refcount in truncate / hole puch
etc for a DAX file system we do not free the blocks in the file system,
but add it to the extent busy list. We mark the page as delayed
free (e.g. page flag?) so that when it finally hits refcount zero we
call back into the file system to remove it from the busy list.
Powered by blists - more mailing lists