Loading arch/arc/kernel/unaligned.c +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ */ #include <linux/types.h> #include <linux/perf_event.h> #include <linux/ptrace.h> #include <linux/uaccess.h> #include <asm/disasm.h> Loading Loading @@ -253,6 +254,7 @@ int misaligned_fixup(unsigned long address, struct pt_regs *regs, } } perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, address); return 0; fault: Loading arch/arc/mm/fault.c +10 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ #include <linux/ptrace.h> #include <linux/uaccess.h> #include <linux/kdebug.h> #include <linux/perf_event.h> #include <asm/pgalloc.h> #include <asm/mmu.h> Loading Loading @@ -139,13 +140,20 @@ void do_page_fault(unsigned long address, struct pt_regs *regs) return; } perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); if (likely(!(fault & VM_FAULT_ERROR))) { if (flags & FAULT_FLAG_ALLOW_RETRY) { /* To avoid updating stats twice for retry case */ if (fault & VM_FAULT_MAJOR) if (fault & VM_FAULT_MAJOR) { tsk->maj_flt++; else 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); } if (fault & VM_FAULT_RETRY) { flags &= ~FAULT_FLAG_ALLOW_RETRY; Loading Loading
arch/arc/kernel/unaligned.c +2 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ */ #include <linux/types.h> #include <linux/perf_event.h> #include <linux/ptrace.h> #include <linux/uaccess.h> #include <asm/disasm.h> Loading Loading @@ -253,6 +254,7 @@ int misaligned_fixup(unsigned long address, struct pt_regs *regs, } } perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, address); return 0; fault: Loading
arch/arc/mm/fault.c +10 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ #include <linux/ptrace.h> #include <linux/uaccess.h> #include <linux/kdebug.h> #include <linux/perf_event.h> #include <asm/pgalloc.h> #include <asm/mmu.h> Loading Loading @@ -139,13 +140,20 @@ void do_page_fault(unsigned long address, struct pt_regs *regs) return; } perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); if (likely(!(fault & VM_FAULT_ERROR))) { if (flags & FAULT_FLAG_ALLOW_RETRY) { /* To avoid updating stats twice for retry case */ if (fault & VM_FAULT_MAJOR) if (fault & VM_FAULT_MAJOR) { tsk->maj_flt++; else 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); } if (fault & VM_FAULT_RETRY) { flags &= ~FAULT_FLAG_ALLOW_RETRY; Loading