On 6/5/25 15:51, Lorenzo Stoakes wrote: > The walk_page_range_novma() function is rather confusing - it supports two > modes, one used often, the other used only for debugging. > > The first mode is the common case of traversal of kernel page tables, which > is what nearly all callers use this for. > > Secondly it provides an unusual debugging interface that allows for the > traversal of page tables in a userland range of memory even for that memory > which is not described by a VMA. > > It is far from certain that such page tables should even exist, but perhaps > this is precisely why it is useful as a debugging mechanism. > > As a result, this is utilised by ptdump only. Historically, things were > reversed - ptdump was the only user, and other parts of the kernel evolved > to use the kernel page table walking here. > > Since we have some complicated and confusing locking rules for the novma > case, it makes sense to separate the two usages into their own functions. > > Doing this also provide self-documentation as to the intent of the caller - > are they doing something rather unusual or are they simply doing a standard > kernel page table walk? > > We therefore establish two separate functions - walk_page_range_debug() for > this single usage, and walk_kernel_page_table_range() for general kernel > page table walking. > > The walk_page_range_debug() function is currently used to traverse both > userland and kernel mappings, so we maintain this and in the case of kernel > mappings being traversed, we have walk_page_range_debug() invoke > walk_kernel_page_table_range() internally. > > We additionally make walk_page_range_debug() internal to mm. > > Signed-off-by: Lorenzo Stoakes <lorenzo.stoa...@oracle.com> > Acked-by: Mike Rapoport (Microsoft) <r...@kernel.org> > Acked-by: Qi Zheng <zhengqi.a...@bytedance.com> > Reviewed-by: Oscar Salvador <osalva...@suse.de> > Reviewed-by: Suren Baghdasaryan <sur...@google.com>
Reviewed-by: Vlastimil Babka <vba...@suse.cz> Thanks!