On Tue, Apr 2, 2024 at 1:13 AM Rohan McLure <rmclure@xxxxxxxxxxxxx> wrote: > > In the new set_ptes() API, set_pte_at() (a special case of set_ptes()) > is intended to be instrumented by the page table check facility. There > are however several other routines that constitute the API for setting > page table entries, including set_pmd_at() among others. Such routines > are themselves implemented in terms of set_ptes_at(). > > A future patch providing support for page table checking on powerpc > must take care to avoid duplicate calls to > page_table_check_p{te,md,ud}_set(). Allow for assignment of pte entries > without instrumentation through the set_pte_at_unchecked() routine > introduced in this patch. > > Cause API-facing routines that call set_pte_at() to instead call > set_pte_at_unchecked(), which will remain uninstrumented by page > table check. set_ptes() is itself implemented by calls to > __set_pte_at(), so this eliminates redundant code. > > Also prefer set_pte_at_unchecked() in early-boot usages which should not be > instrumented. Would not the early-boot usage be all kernel mappings that are ignored by page table check anways? Sounds like it is better to only use the set_pte_at_unchecked() version where it is really needed, which is to avoid double counting. This will keep the usage of this function only for one purpose that is easy to follow. Pasha