On 6/30/20 1:46 PM, Peter Xu wrote: > Use the general page fault accounting by passing regs into handle_mm_fault(). ... > - /* > - * Major/minor page fault accounting. If any of the events > - * returned VM_FAULT_MAJOR, we account it as a major fault. > - */ > - if (major) { > - tsk->maj_flt++; > - perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, address); > - } else { > - tsk->min_flt++; > - perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address); > - } > - > check_v8086_mode(regs, address, tsk); > } I did a quick grep and it wasn't obvious to me how PERF_COUNT_SW_PAGE_FAULTS_MIN/MAJ get bumped in the handle_mm_fault() path. Are you sure they get set?