mm/riscv: use general page fault accounting
Use the general page fault accounting by passing regs into handle_mm_fault(). It naturally solve the issue of multiple page fault accounting when page fault retry happened. Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Pekka Enberg <penberg@kernel.org> Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Link: http://lkml.kernel.org/r/20200707225021.200906-18-peterx@redhat.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
428fdc0944
commit
5ac365a458
@ -109,7 +109,7 @@ good_area:
|
|||||||
* make sure we exit gracefully rather than endlessly redo
|
* make sure we exit gracefully rather than endlessly redo
|
||||||
* the fault.
|
* the fault.
|
||||||
*/
|
*/
|
||||||
fault = handle_mm_fault(vma, addr, flags, NULL);
|
fault = handle_mm_fault(vma, addr, flags, regs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we need to retry but a fatal signal is pending, handle the
|
* If we need to retry but a fatal signal is pending, handle the
|
||||||
@ -127,21 +127,7 @@ good_area:
|
|||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Major/minor page fault accounting is only done on the
|
|
||||||
* initial attempt. If we go through a retry, it is extremely
|
|
||||||
* likely that the page will be found in page cache at that point.
|
|
||||||
*/
|
|
||||||
if (flags & FAULT_FLAG_ALLOW_RETRY) {
|
if (flags & FAULT_FLAG_ALLOW_RETRY) {
|
||||||
if (fault & VM_FAULT_MAJOR) {
|
|
||||||
tsk->maj_flt++;
|
|
||||||
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ,
|
|
||||||
1, regs, addr);
|
|
||||||
} else {
|
|
||||||
tsk->min_flt++;
|
|
||||||
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN,
|
|
||||||
1, regs, addr);
|
|
||||||
}
|
|
||||||
if (fault & VM_FAULT_RETRY) {
|
if (fault & VM_FAULT_RETRY) {
|
||||||
flags |= FAULT_FLAG_TRIED;
|
flags |= FAULT_FLAG_TRIED;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user