linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Muhammad Usama Anjum <usama.anjum@collabora.com>
To: "Michał Mirosław" <emmir@google.com>
Cc: "Muhammad Usama Anjum" <usama.anjum@collabora.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	"Michał Mirosław" <mirq-linux@rere.qmqm.pl>,
	"Andrei Vagin" <avagin@gmail.com>,
	"Danylo Mocherniuk" <mdanylo@google.com>,
	"Alex Sierra" <alex.sierra@amd.com>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Axel Rasmussen" <axelrasmussen@google.com>,
	"Christian Brauner" <brauner@kernel.org>,
	"Cyrill Gorcunov" <gorcunov@gmail.com>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Greg KH" <gregkh@linuxfoundation.org>,
	"Gustavo A . R . Silva" <gustavoars@kernel.org>,
	"Liam R . Howlett" <Liam.Howlett@oracle.com>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Nadav Amit" <namit@vmware.com>,
	"Pasha Tatashin" <pasha.tatashin@soleen.com>,
	"Paul Gofman" <pgofman@codeweavers.com>,
	"Peter Xu" <peterx@redhat.com>, "Shuah Khan" <shuah@kernel.org>,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Vlastimil Babka" <vbabka@suse.cz>,
	"Yang Shi" <shy828301@gmail.com>,
	"Yun Zhou" <yun.zhou@windriver.com>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-mm@kvack.org, linux-kselftest@vger.kernel.org,
	kernel@collabora.com
Subject: Re: [v3] fs/proc/task_mmu: Implement IOCTL for efficient page table scanning
Date: Thu, 27 Jul 2023 13:03:11 +0500	[thread overview]
Message-ID: <89c09085-19ab-462b-e3be-b4e492a85899@collabora.com> (raw)
In-Reply-To: <CABb0KFGQ_HbD+MNwKCcE+6D50XhJxpx0M0dRiC-EVwEXPv+4XA@mail.gmail.com>

On 7/27/23 2:10 AM, Michał Mirosław wrote:
> On Wed, 26 Jul 2023 at 10:34, Muhammad Usama Anjum
> <usama.anjum@collabora.com> wrote:
>> On 7/25/23 11:05 PM, Michał Mirosław wrote:
>>> On Tue, 25 Jul 2023 at 11:11, Muhammad Usama Anjum
>>> <usama.anjum@collabora.com> wrote:
>>>>
>>>> ----
>>>> Michal please post your thoughts before I post this as v26.
>>>> ----
>>> [...]
>>>
>>> Looks ok - minor things below.
>>>
>>> 1. I'd change the _WPASYNC things to something better, if this can
>>> also work with "normal" UFFD WP.
>> Yeah, but we don't have any use case where UFFD WP is required. It can be
>> easily added later when user case arrives. Also UFFD WP sends messages to
>> userspace. User can easily do the bookkeeping in userspace as performance
>> isn't a concern there.
> 
> We shouldn't name the flags based on the use case but based on what
> they actually do. So if this checks UFFD registration for WP, then
> maybe PAGE_IS_WPALLOWED or something better describing the trait it
> matches?
PAGE_IS_WPALLOWED seems appropriate.

> 
>>> 2. For the address tagging part I'd prefer someone who knows how this
>>> is used take a look. We're ignoring the tag (but clear it on return in
>>> ->start) - so it doesn't matter for the ioctl() itself.
>> I've added Kirill if he can give his thoughts about tagged memory.
>>
>> Right now we are removing the tags from all 3 pointers (start, end, vec)
>> before using the pointers on kernel side. But we are overwriting and
>> writing the walk ending address in start which user can read/use.
>>
>> I think we shouldn't over-write the start (and its tag) and instead return
>> the ending walk address in new variable, walk_end.
> 
> The overwrite of `start` is making the ioctl restart (continuation)
> easier to handle. I prefer the current way, but it's not a strong
> opinion.
We shouldn't overwrite the start if we aren't gonna put the correct tag. So
I've resorted to adding another variable `walk_end` to return the walk
ending address.

> 
>>> 3. BTW, One of the uses is the GetWriteWatch and I wonder how it
>>> behaves on HugeTLB (MEM_LARGE_PAGES allocation)? Shouldn't it return a
>>> list of huge pages and write *lpdwGranularity = HPAGE_SIZE?
>> Wine/Proton doesn't used hugetlb by default. Hugetlb isn't enabled by
>> default on Debian as well. For GetWriteWatch() we don't care about the
>> hugetlb at all. We have added hugetlb's implementation to complete the
>> feature and leave out something.
> 
> How is GetWriteWatch() working when passed a VirtualAlloc(...,
> MEM_LARGE_PAGES|MEM_WRITE_WATCH...)-allocated range? Does it still
> report 4K pages?
> This is only a problem when using max_pages: a hugetlb range might
> need counting and reporting huge pages and not 4K parts.
> 
> Best Regards
> Michał Mirosław

I'll send v26 in next hour.

-- 
BR,
Muhammad Usama Anjum

  parent reply	other threads:[~2023-07-27  8:07 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-13 10:14 [PATCH v25 0/5] Implement IOCTL to get and optionally clear info about PTEs Muhammad Usama Anjum
2023-07-13 10:14 ` [PATCH v25 1/5] userfaultfd: UFFD_FEATURE_WP_ASYNC Muhammad Usama Anjum
2023-07-13 10:14 ` [PATCH v25 2/5] fs/proc/task_mmu: Implement IOCTL to get and optionally clear info about PTEs Muhammad Usama Anjum
2023-07-17 17:26   ` Andrei Vagin
2023-07-18  8:18     ` Muhammad Usama Anjum
2023-07-18 16:08       ` Andrei Vagin
2023-07-18 16:27         ` Muhammad Usama Anjum
2023-07-13 10:14 ` [PATCH v25 3/5] tools headers UAPI: Update linux/fs.h with the kernel sources Muhammad Usama Anjum
2023-07-13 10:14 ` [PATCH v25 4/5] mm/pagemap: add documentation of PAGEMAP_SCAN IOCTL Muhammad Usama Anjum
2023-07-13 10:14 ` [PATCH v25 5/5] selftests: mm: add pagemap ioctl tests Muhammad Usama Anjum
     [not found]   ` <a0b5c6776b2ed91f78a7575649f8b100e58bd3a9.1689881078.git.mirq-linux@rere.qmqm.pl>
2023-07-20 19:50     ` fs/proc/task_mmu: Implement IOCTL for efficient page table scanning Michał Mirosław
2023-07-20 21:12     ` kernel test robot
2023-07-21  2:56     ` kernel test robot
2023-07-21  4:27     ` Muhammad Usama Anjum
2023-07-21 14:49       ` Andrei Vagin
2023-07-21  5:43     ` kernel test robot
2023-07-21  7:18     ` kernel test robot
2023-07-21 10:48     ` Muhammad Usama Anjum
2023-07-21 11:23       ` Michał Mirosław
2023-07-21 17:50         ` Muhammad Usama Anjum
2023-07-22  0:22           ` Michał Mirosław
2023-07-22  0:24           ` [v2] " Michał Mirosław
2023-07-22 13:55             ` kernel test robot
2023-07-22 14:05             ` kernel test robot
2023-07-24 14:04             ` Muhammad Usama Anjum
2023-07-24 14:38               ` Michał Mirosław
2023-07-24 15:21                 ` Muhammad Usama Anjum
2023-07-24 16:10                   ` Michał Mirosław
2023-07-25  7:23                     ` Muhammad Usama Anjum
2023-07-25  9:09                       ` Muhammad Usama Anjum
2023-07-25  9:11                         ` [v3] " Muhammad Usama Anjum
2023-07-25 18:05                           ` Michał Mirosław
2023-07-26  8:34                             ` Muhammad Usama Anjum
2023-07-26 21:10                               ` Michał Mirosław
2023-07-26 23:06                                 ` Paul Gofman
2023-07-27 11:18                                   ` Michał Mirosław
2023-07-27 11:21                                     ` Michał Mirosław
2023-07-27 17:15                                     ` Paul Gofman
2023-07-27  8:03                                 ` Muhammad Usama Anjum [this message]
2023-07-27 11:26                                   ` Michał Mirosław
2023-07-27 11:31                                     ` Muhammad Usama Anjum
2023-07-21 11:29       ` Michał Mirosław
2023-07-21 17:51         ` Muhammad Usama Anjum
2023-08-26 13:07     ` kernel test robot
2023-07-18 16:05 ` [PATCH v25 0/5] Implement IOCTL to get and optionally clear info about PTEs Rogerio Alves

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=89c09085-19ab-462b-e3be-b4e492a85899@collabora.com \
    --to=usama.anjum@collabora.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=kirill.shutemov@linux.intel.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=mirq-linux@rere.qmqm.pl \
    --cc=namit@vmware.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=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;
as well as URLs for NNTP newsgroup(s).