Re: [PATCH v21 2/5] fs/proc/task_mmu: Implement IOCTL to get and optionally clear info about PTEs

From: Michał Mirosław
Date: Tue Jun 27 2023 - 14:52:54 EST


On Tue, 27 Jun 2023 at 11:00, Muhammad Usama Anjum
<usama.anjum@xxxxxxxxxxxxx> wrote:
>
> Hi Andrei and Michal,
>
> Lets resolve last two points. Please reply below.
>
> On 6/27/23 6:46 AM, Andrei Vagin wrote:
[...]
> > And we need to report an address where it stopped scanning.
> > We can do that by adding zero length vector.
> I don't want to do multiplexing the ending address in vec. Can we add
> end_addr variable in struct pm_scan_arg to always return the ending address?
>
> struct pm_scan_arg {
> ...
> _u64 end_addr;
> };

The idea to emit a zero-length entry for the end looks nice. This has
the disadvantage that we'd need to either reserve one entry for the
ending marker or stop the walk after the last entry is no longer
matching.

Another solution would be to rewrite 'start' and 'len'. The caller
would be forced to use non-const `pm_scan_arg`, but I expect the `vec`
pointer would normally be written anyway (unless using only a
statically-allocated buffer).
Also, if the 'len' is replaced with 'end' that would make the ioctl
easily restartable (just call again if start != end).

Best Regards
Michał Mirosław