From: Nadav Amit <namit@vmware.com>
To: Muhammad Usama Anjum <usama.anjum@collabora.com>
Cc: "Mike Rapoport" <rppt@kernel.org>,
"Michał Mirosław" <emmir@google.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Cyrill Gorcunov" <gorcunov@gmail.com>,
"Paul Gofman" <pgofman@codeweavers.com>,
"Danylo Mocherniuk" <mdanylo@google.com>,
"Shuah Khan" <shuah@kernel.org>,
"Christian Brauner" <brauner@kernel.org>,
"Peter Xu" <peterx@redhat.com>, "Yang Shi" <shy828301@gmail.com>,
"Vlastimil Babka" <vbabka@suse.cz>,
"Liam R . Howlett" <Liam.Howlett@Oracle.com>,
"Yun Zhou" <yun.zhou@windriver.com>,
"Suren Baghdasaryan" <surenb@google.com>,
"Alex Sierra" <alex.sierra@amd.com>,
"Matthew Wilcox" <willy@infradead.org>,
"Pasha Tatashin" <pasha.tatashin@soleen.com>,
"Axel Rasmussen" <axelrasmussen@google.com>,
"Gustavo A . R . Silva" <gustavoars@kernel.org>,
"Dan Williams" <dan.j.williams@intel.com>,
"kernel list" <linux-kernel@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>,
linux-kselftest <linux-kselftest@vger.kernel.org>,
"Greg KH" <gregkh@linuxfoundation.org>,
"kernel@collabora.com" <kernel@collabora.com>,
"David Hildenbrand" <david@redhat.com>,
"Andrei Vagin" <avagin@gmail.com>
Subject: Re: [PATCH v10 3/6] fs/proc/task_mmu: Implement IOCTL to get and/or the clear info about PTEs
Date: Thu, 23 Feb 2023 17:11:11 +0000 [thread overview]
Message-ID: <F73885A1-14AE-4820-876B-A8E6DC6D19CC@vmware.com> (raw)
In-Reply-To: <c15446c5-eedd-690f-9dae-2bc12ee9eb78@collabora.com>
> On Feb 22, 2023, at 11:10 PM, Muhammad Usama Anjum <usama.anjum@collabora.com> wrote:
>
> Hi Nadav, Mike, Michał,
>
> Can you please share your thoughts at [A] below?
I promised I won't talk about the API, but was persuaded to reconsider. I have a
general question regarding the suitablity of currently proposed high-level API.
To explore some alternatives, I'd like to suggest an alternative that may have
some advantages. If these have already been considered and dismissed, feel free
to ignore.
I believe we have two distinct usage scenarios: (1) vectored reads from pagemap,
and (2) atomic UFFD WP-read/protect. It's possible that these require separate
interfaces
Regarding vectored reads, I believe the simplest solution is to maintain the
current pagemap entry format for output and extend it if necessary. The input
can be a vector of ranges. I'm uncertain about the purpose of fields such
as 'anyof_mask' in 'pagemap_scan_arg', so I can't confirm their necessity and
whether the input need to be made. more complicated. There is a possibility
that fields such as 'anyof_mask' might expose internal APIs, so I hope they’re
not required.
For the atomic operation of 'PAGE_IS_WRITTEN' + 'PAGEMAP_WP_ENGAGE', a different
mechanism might be necessary. This function appears to be UFFD-specific.
Instead of the proposed IOCTL, an alternative option is to
use 'UFFD_FEATURE_WP_ASYNC' to log the pages that were written, similar to
page-modification logging on Intel. Since this feature appears to be specific
to UFFD, I believe it would be more appropriate to include the log as part of
the UFFD mechanism rather than the pagemap.
From my experience with UFFD, proper ordering of events is crucial, although it
is not always done well. Therefore, we should aim for improvement, not
regression. I believe that utilizing the pagemap-based mechanism for WP'ing
might be a step in the wrong direction. I think that it would have been better
to emit a 'UFFD_FEATURE_WP_ASYNC' WP-log (and ordered) with UFFD #PF and
events. The 'UFFD_FEATURE_WP_ASYNC'-log may not need to wake waiters on the
file descriptor unless the log is full.
I am sorry that I chime in that late, but I think the complications that the
proposed mechanism might raise are not negligible. And anyhow this patch-set
still requires quite a bit of work before it can be merged.
next prev parent reply other threads:[~2023-02-23 17:11 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-02 11:29 [PATCH v10 0/6] " Muhammad Usama Anjum
2023-02-02 11:29 ` [PATCH v10 1/6] userfaultfd: Add UFFD WP Async support Muhammad Usama Anjum
2023-02-08 21:12 ` Peter Xu
2023-02-09 15:27 ` Muhammad Usama Anjum
2023-02-17 9:37 ` Mike Rapoport
2023-02-20 8:36 ` Muhammad Usama Anjum
2023-02-02 11:29 ` [PATCH v10 2/6] userfaultfd: update documentation to describe UFFD_FEATURE_WP_ASYNC Muhammad Usama Anjum
2023-02-08 21:31 ` Peter Xu
2023-02-09 15:47 ` Muhammad Usama Anjum
2023-02-02 11:29 ` [PATCH v10 3/6] fs/proc/task_mmu: Implement IOCTL to get and/or the clear info about PTEs Muhammad Usama Anjum
2023-02-08 22:15 ` Peter Xu
2023-02-13 12:55 ` Muhammad Usama Anjum
2023-02-13 21:42 ` Peter Xu
2023-02-14 7:57 ` Muhammad Usama Anjum
2023-02-14 20:59 ` Peter Xu
2023-02-15 10:03 ` Muhammad Usama Anjum
2023-02-15 21:12 ` Peter Xu
2023-02-17 10:39 ` Muhammad Usama Anjum
[not found] ` <Y+QgtVSEl4w2NgtJ@grain>
2023-02-13 8:19 ` Muhammad Usama Anjum
2023-02-17 10:10 ` Mike Rapoport
2023-02-20 10:38 ` Muhammad Usama Anjum
2023-02-20 11:38 ` Muhammad Usama Anjum
2023-02-20 13:17 ` Mike Rapoport
2023-02-17 15:18 ` Michał Mirosław
2023-02-21 10:28 ` Muhammad Usama Anjum
2023-02-21 12:42 ` Michał Mirosław
2023-02-22 10:11 ` Muhammad Usama Anjum
2023-02-22 10:44 ` Michał Mirosław
2023-02-22 11:06 ` Muhammad Usama Anjum
2023-02-22 11:48 ` Michał Mirosław
2023-02-23 6:44 ` Muhammad Usama Anjum
2023-02-23 8:41 ` Michał Mirosław
2023-02-23 9:23 ` Muhammad Usama Anjum
2023-02-23 9:42 ` Michał Mirosław
2023-02-24 2:20 ` Andrei Vagin
2023-02-25 9:38 ` Michał Mirosław
2023-02-19 13:52 ` Nadav Amit
2023-02-20 13:24 ` Muhammad Usama Anjum
2023-02-22 19:10 ` Nadav Amit
2023-02-23 7:10 ` Muhammad Usama Anjum
2023-02-23 17:11 ` Nadav Amit [this message]
2023-02-27 21:18 ` Peter Xu
2023-02-27 23:09 ` Nadav Amit
2023-02-28 15:55 ` Peter Xu
2023-02-28 17:21 ` Nadav Amit
2023-02-28 19:31 ` Peter Xu
2023-03-01 1:59 ` Nadav Amit
2023-02-20 13:26 ` Mike Rapoport
2023-02-21 7:02 ` Muhammad Usama Anjum
2023-02-02 11:29 ` [PATCH v10 4/6] tools headers UAPI: Update linux/fs.h with the kernel sources Muhammad Usama Anjum
2023-02-02 11:29 ` [PATCH v10 5/6] mm/pagemap: add documentation of PAGEMAP_SCAN IOCTL Muhammad Usama Anjum
2023-02-09 19:26 ` Peter Xu
2023-02-13 10:44 ` Muhammad Usama Anjum
2023-02-02 11:29 ` [PATCH v10 6/6] selftests: vm: add pagemap ioctl tests Muhammad Usama Anjum
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=F73885A1-14AE-4820-876B-A8E6DC6D19CC@vmware.com \
--to=namit@vmware.com \
--cc=Liam.Howlett@Oracle.com \
--cc=akpm@linux-foundation.org \
--cc=alex.sierra@amd.com \
--cc=avagin@gmail.com \
--cc=axelrasmussen@google.com \
--cc=brauner@kernel.org \
--cc=dan.j.williams@intel.com \
--cc=david@redhat.com \
--cc=emmir@google.com \
--cc=gorcunov@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=gustavoars@kernel.org \
--cc=kernel@collabora.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mdanylo@google.com \
--cc=pasha.tatashin@soleen.com \
--cc=peterx@redhat.com \
--cc=pgofman@codeweavers.com \
--cc=rppt@kernel.org \
--cc=shuah@kernel.org \
--cc=shy828301@gmail.com \
--cc=surenb@google.com \
--cc=usama.anjum@collabora.com \
--cc=vbabka@suse.cz \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.org \
--cc=yun.zhou@windriver.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox