Messages in this thread | | | Date | Mon, 28 Feb 2022 13:16:34 -0800 | Subject | Re: [PATCH 6/6] fuse: convert direct IO paths to use FOLL_PIN | From | John Hubbard <> |
| |
On 2/28/22 07:59, Miklos Szeredi wrote: > On Sun, 27 Feb 2022 at 10:34, <jhubbard.send.patches@gmail.com> wrote: >> >> From: John Hubbard <jhubbard@nvidia.com> >> >> Convert the fuse filesystem to support the new iov_iter_get_pages() >> behavior. That routine now invokes pin_user_pages_fast(), which means >> that such pages must be released via unpin_user_page(), rather than via >> put_page(). >> >> This commit also removes any possibility of kernel pages being handled, >> in the fuse_get_user_pages() call. Although this may seem like a steep >> price to pay, Christoph Hellwig actually recommended it a few years ago >> for nearly the same situation [1]. > > This might work for O_DIRECT, but fuse has this mode of operation > which turns normal "buffered" I/O into direct I/O. And that in turn > will break execve of such files. > > So AFAICS we need to keep kvec handing in some way. >
Thanks for bringing that up! Do you have any hints for me, to jump start a deeper look? And especially, sample programs that exercise this?
thanks, -- John Hubbard NVIDIA
| |