[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180618081258.GB16991@lst.de>
Date: Mon, 18 Jun 2018 10:12:58 +0200
From: Christoph Hellwig <hch@....de>
To: John Hubbard <jhubbard@...dia.com>
Cc: Dan Williams <dan.j.williams@...el.com>,
Jason Gunthorpe <jgg@...pe.ca>, john.hubbard@...il.com,
Matthew Wilcox <willy@...radead.org>,
Michal Hocko <mhocko@...nel.org>,
Christopher Lameter <cl@...ux.com>, Jan Kara <jack@...e.cz>,
Linux MM <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>,
linux-rdma <linux-rdma@...r.kernel.org>,
Christoph Hellwig <hch@....de>
Subject: Re: [PATCH 2/2] mm: set PG_dma_pinned on get_user_pages*()
On Sun, Jun 17, 2018 at 01:28:18PM -0700, John Hubbard wrote:
> Yes. However, my thinking was: get_user_pages() can become a way to indicate that
> these pages are going to be treated specially. In particular, the caller
> does not really want or need to support certain file operations, while the
> page is flagged this way.
>
> If necessary, we could add a new API call.
That API call is called get_user_pages_longterm.
> But either way, I think we could
> reasonably document that "if you pin these pages (either via get_user_pages,
> or some new, similar-looking API call), you can DMA to/from them, and safely
> mark them as dirty when you're done, and the right things will happen.
> And in the interim, you can expect that the follow file system API calls
> will not behave predictably: fallocate, truncate, ..."
That is not how get_user_pages(_fast) is used. We use it all over the
kernel, including for direct I/O. You'd break a lot of existing use
cases very badly.
Powered by blists - more mailing lists