From: Jason Gunthorpe <jgg@nvidia.com>
To: Lorenzo Stoakes <lstoakes@gmail.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Matthew Wilcox <willy@infradead.org>,
David Hildenbrand <david@redhat.com>,
Jens Axboe <axboe@kernel.dk>,
Pavel Begunkov <asml.silence@gmail.com>,
io-uring@vger.kernel.org
Subject: Re: [PATCH 5/7] io_uring: rsrc: use FOLL_SAME_FILE on pin_user_pages()
Date: Mon, 17 Apr 2023 16:24:04 -0300 [thread overview]
Message-ID: <ZD2c1CB4FmUVuMln@nvidia.com> (raw)
In-Reply-To: <b661ca21-b436-44cf-b70d-0b126989ab33@lucifer.local>
On Mon, Apr 17, 2023 at 08:00:48PM +0100, Lorenzo Stoakes wrote:
> So I don't think this route is plausible unless you were thinking of
> somehow offloading to a thread?
ah, fair enough
> In any case, if we institute the FOLL_ALLOW_BROKEN_FILE_MAPPINGS flag we
> can just drop FOLL_ANON altogether right, as this will be implied and
> hugetlb should work here too?
Well.. no, as I said read-only access to the pages works fine, so GUP
should not block that. It is only write that has issues
> Separately, I find the semantics of access_remote_vm() kind of weird, and
> with a possible mmap_lock-free future it does make me wonder whether
> something better could be done there.
Yes, it is very weird, kthread_use_mm is much nicer.
> (Section where I sound like I might be going mad) Perhaps having some means
> of context switching into the kernel portion of the remote process as if
> were a system call or soft interrupt handler and having that actually do
> the uaccess operation could be useful here?
This is the kthread_use_mm() approach, that is basically what it
does. You are suggesting to extend it to kthreads that already have a
process attached...
access_remote_vm is basically copy_to/from_user built using kmap and
GUP.
even a simple step of localizing FOLL_ANON to __access_remote_vm,
since it must have the VMA nyhow, would be an improvement.
Jason
next prev parent reply other threads:[~2023-04-17 19:24 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-14 23:25 [PATCH 0/7] remove the vmas parameter from GUP APIs Lorenzo Stoakes
2023-04-14 23:27 ` [PATCH 1/7] mm/gup: remove unused vmas parameter from get_user_pages() Lorenzo Stoakes
2023-04-14 23:27 ` Lorenzo Stoakes
2023-04-14 23:27 ` Lorenzo Stoakes
2023-04-15 5:27 ` Greg Kroah-Hartman
2023-04-15 5:27 ` Greg Kroah-Hartman
2023-04-15 5:27 ` Greg Kroah-Hartman
2023-04-17 13:01 ` Jason Gunthorpe
2023-04-17 13:01 ` Jason Gunthorpe
2023-04-17 13:01 ` Jason Gunthorpe
2023-04-14 23:27 ` [PATCH 2/7] mm/gup: remove unused vmas parameter from pin_user_pages_remote() Lorenzo Stoakes
2023-04-17 13:02 ` Jason Gunthorpe
2023-04-14 23:27 ` [PATCH 3/7] mm/gup: remove vmas parameter from get_user_pages_remote() Lorenzo Stoakes
2023-04-14 23:27 ` Lorenzo Stoakes
2023-04-15 0:25 ` Tetsuo Handa
2023-04-15 8:11 ` Lorenzo Stoakes
2023-04-17 13:09 ` Jason Gunthorpe
2023-04-17 13:09 ` Jason Gunthorpe
2023-04-17 13:13 ` Lorenzo Stoakes
2023-04-17 13:13 ` Lorenzo Stoakes
2023-04-17 13:16 ` Jason Gunthorpe
2023-04-17 13:16 ` Jason Gunthorpe
2023-04-17 13:23 ` Lorenzo Stoakes
2023-04-17 13:23 ` Lorenzo Stoakes
2023-04-17 15:07 ` Eric W. Biederman
2023-04-17 15:07 ` Eric W. Biederman
2023-04-17 15:14 ` Lorenzo Stoakes
2023-04-17 15:14 ` Lorenzo Stoakes
2023-04-14 23:27 ` [PATCH 4/7] mm/gup: introduce the FOLL_SAME_FILE GUP flag Lorenzo Stoakes
2023-04-17 13:14 ` Jason Gunthorpe
2023-04-17 13:25 ` Lorenzo Stoakes
2023-04-17 13:27 ` Jason Gunthorpe
2023-04-14 23:27 ` [PATCH 5/7] io_uring: rsrc: use FOLL_SAME_FILE on pin_user_pages() Lorenzo Stoakes
2023-04-17 12:56 ` Jason Gunthorpe
2023-04-17 13:19 ` Lorenzo Stoakes
2023-04-17 13:26 ` Jason Gunthorpe
2023-04-17 14:00 ` Lorenzo Stoakes
2023-04-17 14:15 ` Jason Gunthorpe
2023-04-17 15:20 ` Lorenzo Stoakes
2023-04-17 19:00 ` Lorenzo Stoakes
2023-04-17 19:24 ` Jason Gunthorpe [this message]
2023-04-17 19:45 ` Lorenzo Stoakes
2023-04-18 16:25 ` Pavel Begunkov
2023-04-18 16:35 ` Pavel Begunkov
2023-04-18 16:36 ` Jason Gunthorpe
2023-04-18 17:25 ` Pavel Begunkov
2023-04-18 18:19 ` Jason Gunthorpe
2023-04-14 23:27 ` [PATCH 6/7] mm/gup: remove vmas parameter from pin_user_pages() Lorenzo Stoakes
2023-04-14 23:27 ` Lorenzo Stoakes
2023-04-14 23:27 ` [PATCH 7/7] mm/gup: remove vmas array from internal GUP functions Lorenzo Stoakes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZD2c1CB4FmUVuMln@nvidia.com \
--to=jgg@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=david@redhat.com \
--cc=io-uring@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lstoakes@gmail.com \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.