Message ID | 1523975611-15978-24-git-send-email-ldufour@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Speculative page faults | expand |
2018-04-17 22:33 GMT+08:00 Laurent Dufour <ldufour@linux.vnet.ibm.com>: > Add speculative_pgfault vmstat counter to count successful speculative page > fault handling. > > Also fixing a minor typo in include/linux/vm_event_item.h. > > Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> > --- > include/linux/vm_event_item.h | 3 +++ > mm/memory.c | 1 + > mm/vmstat.c | 5 ++++- > 3 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h > index 5c7f010676a7..a240acc09684 100644 > --- a/include/linux/vm_event_item.h > +++ b/include/linux/vm_event_item.h > @@ -111,6 +111,9 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, > SWAP_RA, > SWAP_RA_HIT, > #endif > +#ifdef CONFIG_SPECULATIVE_PAGE_FAULT > + SPECULATIVE_PGFAULT, > +#endif > NR_VM_EVENT_ITEMS > }; > > diff --git a/mm/memory.c b/mm/memory.c > index 425f07e0bf38..1cd5bc000643 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4508,6 +4508,7 @@ int __handle_speculative_fault(struct mm_struct *mm, unsigned long address, > * If there is no need to retry, don't return the vma to the caller. > */ > if (ret != VM_FAULT_RETRY) { > + count_vm_event(SPECULATIVE_PGFAULT); > put_vma(vmf.vma); > *vma = NULL; > } > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 536332e988b8..c6b49bfa8139 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -1289,7 +1289,10 @@ const char * const vmstat_text[] = { > "swap_ra", > "swap_ra_hit", > #endif > -#endif /* CONFIG_VM_EVENTS_COUNTERS */ > +#ifdef CONFIG_SPECULATIVE_PAGE_FAULT > + "speculative_pgfault" "speculative_pgfault", will be better. :) > +#endif > +#endif /* CONFIG_VM_EVENT_COUNTERS */ > }; > #endif /* CONFIG_PROC_FS || CONFIG_SYSFS || CONFIG_NUMA */ > > -- > 2.7.4 >
On 16/05/2018 04:50, Ganesh Mahendran wrote: > 2018-04-17 22:33 GMT+08:00 Laurent Dufour <ldufour@linux.vnet.ibm.com>: >> Add speculative_pgfault vmstat counter to count successful speculative page >> fault handling. >> >> Also fixing a minor typo in include/linux/vm_event_item.h. >> >> Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> >> --- >> include/linux/vm_event_item.h | 3 +++ >> mm/memory.c | 1 + >> mm/vmstat.c | 5 ++++- >> 3 files changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h >> index 5c7f010676a7..a240acc09684 100644 >> --- a/include/linux/vm_event_item.h >> +++ b/include/linux/vm_event_item.h >> @@ -111,6 +111,9 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, >> SWAP_RA, >> SWAP_RA_HIT, >> #endif >> +#ifdef CONFIG_SPECULATIVE_PAGE_FAULT >> + SPECULATIVE_PGFAULT, >> +#endif >> NR_VM_EVENT_ITEMS >> }; >> >> diff --git a/mm/memory.c b/mm/memory.c >> index 425f07e0bf38..1cd5bc000643 100644 >> --- a/mm/memory.c >> +++ b/mm/memory.c >> @@ -4508,6 +4508,7 @@ int __handle_speculative_fault(struct mm_struct *mm, unsigned long address, >> * If there is no need to retry, don't return the vma to the caller. >> */ >> if (ret != VM_FAULT_RETRY) { >> + count_vm_event(SPECULATIVE_PGFAULT); >> put_vma(vmf.vma); >> *vma = NULL; >> } >> diff --git a/mm/vmstat.c b/mm/vmstat.c >> index 536332e988b8..c6b49bfa8139 100644 >> --- a/mm/vmstat.c >> +++ b/mm/vmstat.c >> @@ -1289,7 +1289,10 @@ const char * const vmstat_text[] = { >> "swap_ra", >> "swap_ra_hit", >> #endif >> -#endif /* CONFIG_VM_EVENTS_COUNTERS */ >> +#ifdef CONFIG_SPECULATIVE_PAGE_FAULT >> + "speculative_pgfault" > > "speculative_pgfault", > will be better. :) Sure ! Thanks. > >> +#endif >> +#endif /* CONFIG_VM_EVENT_COUNTERS */ >> }; >> #endif /* CONFIG_PROC_FS || CONFIG_SYSFS || CONFIG_NUMA */ >> >> -- >> 2.7.4 >> >
diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 5c7f010676a7..a240acc09684 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -111,6 +111,9 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, SWAP_RA, SWAP_RA_HIT, #endif +#ifdef CONFIG_SPECULATIVE_PAGE_FAULT + SPECULATIVE_PGFAULT, +#endif NR_VM_EVENT_ITEMS }; diff --git a/mm/memory.c b/mm/memory.c index 425f07e0bf38..1cd5bc000643 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4508,6 +4508,7 @@ int __handle_speculative_fault(struct mm_struct *mm, unsigned long address, * If there is no need to retry, don't return the vma to the caller. */ if (ret != VM_FAULT_RETRY) { + count_vm_event(SPECULATIVE_PGFAULT); put_vma(vmf.vma); *vma = NULL; } diff --git a/mm/vmstat.c b/mm/vmstat.c index 536332e988b8..c6b49bfa8139 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1289,7 +1289,10 @@ const char * const vmstat_text[] = { "swap_ra", "swap_ra_hit", #endif -#endif /* CONFIG_VM_EVENTS_COUNTERS */ +#ifdef CONFIG_SPECULATIVE_PAGE_FAULT + "speculative_pgfault" +#endif +#endif /* CONFIG_VM_EVENT_COUNTERS */ }; #endif /* CONFIG_PROC_FS || CONFIG_SYSFS || CONFIG_NUMA */
Add speculative_pgfault vmstat counter to count successful speculative page fault handling. Also fixing a minor typo in include/linux/vm_event_item.h. Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> --- include/linux/vm_event_item.h | 3 +++ mm/memory.c | 1 + mm/vmstat.c | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-)