Peter Xu <peterx@xxxxxxxxxx> writes: > Use the general page fault accounting by passing regs into handle_mm_fault(). > > CC: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > CC: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> > CC: Paul Mackerras <paulus@xxxxxxxxx> > CC: linuxppc-dev@xxxxxxxxxxxxxxxx > Signed-off-by: Peter Xu <peterx@xxxxxxxxxx> > --- > arch/powerpc/mm/fault.c | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c > index 992b10c3761c..e325d13efaf5 100644 > --- a/arch/powerpc/mm/fault.c > +++ b/arch/powerpc/mm/fault.c > @@ -563,7 +563,7 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address, > * make sure we exit gracefully rather than endlessly redo > * the fault. > */ > - fault = handle_mm_fault(vma, address, flags, NULL); > + fault = handle_mm_fault(vma, address, flags, regs); > > #ifdef CONFIG_PPC_MEM_KEYS > /* > @@ -604,14 +604,9 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address, > /* > * Major/minor page fault accounting. > */ > - if (major) { > - current->maj_flt++; > - perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, address); > + if (major) > cmo_account_page_fault(); > - } else { > - current->min_flt++; > - perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address); > - } > + > return 0; > } > NOKPROBE_SYMBOL(__do_page_fault); You do change the logic a bit if regs is NULL (in mm_account_fault()), but regs can never be NULL in this path, so it looks OK to me. Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> cheers