[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <af0e448a-9559-32c0-cc59-10b159459495@redhat.com>
Date: Thu, 26 Jan 2023 10:25:28 +0100
From: David Hildenbrand <david@...hat.com>
To: David Howells <dhowells@...hat.com>,
Al Viro <viro@...iv.linux.org.uk>,
Christoph Hellwig <hch@...radead.org>
Cc: Matthew Wilcox <willy@...radead.org>, Jens Axboe <axboe@...nel.dk>,
Jan Kara <jack@...e.cz>, Jeff Layton <jlayton@...nel.org>,
Jason Gunthorpe <jgg@...dia.com>,
Logan Gunthorpe <logang@...tatee.com>,
linux-fsdevel@...r.kernel.org, linux-block@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
Christoph Hellwig <hch@....de>,
John Hubbard <jhubbard@...dia.com>
Subject: Re: [PATCH v10 1/8] iov_iter: Define flags to qualify page
extraction.
On 25.01.23 22:06, David Howells wrote:
> Define flags to qualify page extraction to pass into iov_iter_*_pages*()
> rather than passing in FOLL_* flags.
>
> For now only a flag to allow peer-to-peer DMA is supported.
>
> Signed-off-by: David Howells <dhowells@...hat.com>
> Reviewed-by: Christoph Hellwig <hch@....de>
> Reviewed-by: John Hubbard <jhubbard@...dia.com>
> cc: Al Viro <viro@...iv.linux.org.uk>
> cc: Jens Axboe <axboe@...nel.dk>
> cc: Logan Gunthorpe <logang@...tatee.com>
> cc: linux-fsdevel@...r.kernel.org
> cc: linux-block@...r.kernel.org
> ---
>
[...]
> +++ b/include/linux/uio.h
> @@ -252,12 +252,12 @@ void iov_iter_xarray(struct iov_iter *i, unsigned int direction, struct xarray *
> loff_t start, size_t count);
> ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
> size_t maxsize, unsigned maxpages, size_t *start,
> - unsigned gup_flags);
> + unsigned extraction_flags);
> ssize_t iov_iter_get_pages2(struct iov_iter *i, struct page **pages,
> size_t maxsize, unsigned maxpages, size_t *start);
> ssize_t iov_iter_get_pages_alloc(struct iov_iter *i,
> struct page ***pages, size_t maxsize, size_t *start,
> - unsigned gup_flags);
> + unsigned extraction_flags);
> ssize_t iov_iter_get_pages_alloc2(struct iov_iter *i, struct page ***pages,
> size_t maxsize, size_t *start);
> int iov_iter_npages(const struct iov_iter *i, int maxpages);
> @@ -360,4 +360,7 @@ static inline void iov_iter_ubuf(struct iov_iter *i, unsigned int direction,
> };
> }
>
> +/* Flags for iov_iter_get/extract_pages*() */
> +#define ITER_ALLOW_P2PDMA 0x01 /* Allow P2PDMA on the extracted pages */
Just a note that the usage of new __bitwise types instead of "unsigned"
is encouraged for flags.
See rmap_t in include/linux/rmap.h as an example.
Apart from that LGTM.
--
Thanks,
David / dhildenb
Powered by blists - more mailing lists