[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e1ead2e8-046a-31d9-8df9-27cdd7b7ff83@collabora.com>
Date: Tue, 25 Jul 2023 12:23:54 +0500
From: Muhammad Usama Anjum <usama.anjum@...labora.com>
To: Michał Mirosław <emmir@...gle.com>
Cc: Muhammad Usama Anjum <usama.anjum@...labora.com>,
Michał Mirosław <mirq-linux@...e.qmqm.pl>,
Andrei Vagin <avagin@...il.com>,
Danylo Mocherniuk <mdanylo@...gle.com>,
Alex Sierra <alex.sierra@....com>,
Alexander Viro <viro@...iv.linux.org.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
Axel Rasmussen <axelrasmussen@...gle.com>,
Christian Brauner <brauner@...nel.org>,
Cyrill Gorcunov <gorcunov@...il.com>,
Dan Williams <dan.j.williams@...el.com>,
David Hildenbrand <david@...hat.com>,
Greg KH <gregkh@...uxfoundation.org>,
"Gustavo A . R . Silva" <gustavoars@...nel.org>,
"Liam R . Howlett" <Liam.Howlett@...cle.com>,
Matthew Wilcox <willy@...radead.org>,
Mike Rapoport <rppt@...nel.org>, Nadav Amit <namit@...are.com>,
Pasha Tatashin <pasha.tatashin@...een.com>,
Paul Gofman <pgofman@...eweavers.com>,
Peter Xu <peterx@...hat.com>, Shuah Khan <shuah@...nel.org>,
Suren Baghdasaryan <surenb@...gle.com>,
Vlastimil Babka <vbabka@...e.cz>,
Yang Shi <shy828301@...il.com>,
Yun Zhou <yun.zhou@...driver.com>,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
linux-mm@...ck.org, linux-kselftest@...r.kernel.org,
kernel@...labora.com
Subject: Re: [v2] fs/proc/task_mmu: Implement IOCTL for efficient page table
scanning
On 7/24/23 9:10 PM, Michał Mirosław wrote:
[...]>>>> @@ -2219,22 +2225,24 @@ static int pagemap_scan_get_args(struct
pm_scan_arg
>>>> *arg,
>>>> arg->category_anyof_mask | arg->return_mask) & ~PM_SCAN_CATEGORIES)
>>>> return -EINVAL;
>>>>
>>>> - start = untagged_addr((unsigned long)arg->start);
>>>> - end = untagged_addr((unsigned long)arg->end);
>>>> - vec = untagged_addr((unsigned long)arg->vec);
>>>> + arg->start = untagged_addr((unsigned long)arg->start);
>>>> + arg->end = untagged_addr((unsigned long)arg->end);
>>>> + arg->vec = untagged_addr((unsigned long)arg->vec);
>>>
>>> BTW, We should we keep the tag in args writeback().
>> Sorry what?
>> After this function, the start, end and vec would be used. We need to make
>> sure that the address are untagged before that.
>
> We do write back the address the walk ended at to arg->start in
> userspace. This pointer I think needs the tag reconstructed so that
> retrying the ioctl() will be possible.
Even if we reconstruct the tag for end and vec, We need to update the start
address. Can we just put same tag as original start in it? I'm not sure.
--
BR,
Muhammad Usama Anjum
Powered by blists - more mailing lists