Messages in this thread | | | Date | Tue, 24 Jan 2023 12:30:32 -0500 | From | Peter Xu <> | Subject | Re: [PATCH v7 3/4] fs/proc/task_mmu: Implement IOCTL to get and/or the clear info about PTEs |
| |
On Mon, Jan 23, 2023 at 05:18:13PM +0500, Muhammad Usama Anjum wrote: > >> + if (IS_GET_OP(p) && p->max_pages && (p->found_pages == p->max_pages)) > >> + return -ENOSPC; > > > > This is the function to test "whether the walker should walk the vma > > specified". This check should IIUC be meaningless because found_pages > > doesn't boost during vma switching, while OTOH your pmd walker fn should do > > proper check when increasing found_pages and return -ENOSPC properly when > > the same condition met. That should be enough, IMHO. > This check is needed in case we want to abort the walk at once. We return > negative value from here which aborts the walk. Returning negative value > from pmd_entry doesn't abort the walk. So this check is needed in the > test_walk.
Why? What I see locally is (walk_pmd_range):
if (ops->pmd_entry) err = ops->pmd_entry(pmd, addr, next, walk); if (err) break;
Thanks,
-- Peter Xu
| |