Message ID | 20210414133931.4555-5-mgorman@techsingularity.net |
---|---|
State | New |
Headers | show |
Series | Use local_lock for pcp protection and reduce stat overhead | expand |
On 4/14/21 3:39 PM, Mel Gorman wrote: > __count_numa_event is small enough to be treated similarly to > __count_vm_event so inline it. > > Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > include/linux/vmstat.h | 9 +++++++++ > mm/vmstat.c | 9 --------- > 2 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h > index fc14415223c5..dde4dec4e7dd 100644 > --- a/include/linux/vmstat.h > +++ b/include/linux/vmstat.h > @@ -237,6 +237,15 @@ static inline unsigned long zone_page_state_snapshot(struct zone *zone, > } > > #ifdef CONFIG_NUMA > +/* See __count_vm_event comment on why raw_cpu_inc is used. */ > +static inline void > +__count_numa_event(struct zone *zone, enum numa_stat_item item) > +{ > + struct per_cpu_zonestat __percpu *pzstats = zone->per_cpu_zonestats; > + > + raw_cpu_inc(pzstats->vm_numa_event[item]); > +} > + > extern void __count_numa_event(struct zone *zone, enum numa_stat_item item); > extern unsigned long sum_zone_node_page_state(int node, > enum zone_stat_item item); > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 63bd84d122c0..b853df95ed0c 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -902,15 +902,6 @@ void drain_zonestat(struct zone *zone, struct per_cpu_zonestat *pzstats) > #endif > > #ifdef CONFIG_NUMA > -/* See __count_vm_event comment on why raw_cpu_inc is used. */ > -void __count_numa_event(struct zone *zone, > - enum numa_stat_item item) > -{ > - struct per_cpu_zonestat __percpu *pzstats = zone->per_cpu_zonestats; > - > - raw_cpu_inc(pzstats->vm_numa_event[item]); > -} > - > /* > * Determine the per node value of a stat item. This function > * is called frequently in a NUMA machine, so try to be as >
On Wed, Apr 14, 2021 at 06:26:25PM +0200, Vlastimil Babka wrote: > On 4/14/21 6:20 PM, Vlastimil Babka wrote: > > On 4/14/21 3:39 PM, Mel Gorman wrote: > >> __count_numa_event is small enough to be treated similarly to > >> __count_vm_event so inline it. > >> > >> Signed-off-by: Mel Gorman <mgorman@techsingularity.net> > > > > Acked-by: Vlastimil Babka <vbabka@suse.cz> > > > >> --- > >> include/linux/vmstat.h | 9 +++++++++ > >> mm/vmstat.c | 9 --------- > >> 2 files changed, 9 insertions(+), 9 deletions(-) > >> > >> diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h > >> index fc14415223c5..dde4dec4e7dd 100644 > >> --- a/include/linux/vmstat.h > >> +++ b/include/linux/vmstat.h > >> @@ -237,6 +237,15 @@ static inline unsigned long zone_page_state_snapshot(struct zone *zone, > >> } > >> > >> #ifdef CONFIG_NUMA > >> +/* See __count_vm_event comment on why raw_cpu_inc is used. */ > >> +static inline void > >> +__count_numa_event(struct zone *zone, enum numa_stat_item item) > >> +{ > >> + struct per_cpu_zonestat __percpu *pzstats = zone->per_cpu_zonestats; > >> + > >> + raw_cpu_inc(pzstats->vm_numa_event[item]); > >> +} > >> + > >> extern void __count_numa_event(struct zone *zone, enum numa_stat_item item); > > Ah, but the line above should be removed. > Yes it should! -- Mel Gorman SUSE Labs
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index fc14415223c5..dde4dec4e7dd 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -237,6 +237,15 @@ static inline unsigned long zone_page_state_snapshot(struct zone *zone, } #ifdef CONFIG_NUMA +/* See __count_vm_event comment on why raw_cpu_inc is used. */ +static inline void +__count_numa_event(struct zone *zone, enum numa_stat_item item) +{ + struct per_cpu_zonestat __percpu *pzstats = zone->per_cpu_zonestats; + + raw_cpu_inc(pzstats->vm_numa_event[item]); +} + extern void __count_numa_event(struct zone *zone, enum numa_stat_item item); extern unsigned long sum_zone_node_page_state(int node, enum zone_stat_item item); diff --git a/mm/vmstat.c b/mm/vmstat.c index 63bd84d122c0..b853df95ed0c 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -902,15 +902,6 @@ void drain_zonestat(struct zone *zone, struct per_cpu_zonestat *pzstats) #endif #ifdef CONFIG_NUMA -/* See __count_vm_event comment on why raw_cpu_inc is used. */ -void __count_numa_event(struct zone *zone, - enum numa_stat_item item) -{ - struct per_cpu_zonestat __percpu *pzstats = zone->per_cpu_zonestats; - - raw_cpu_inc(pzstats->vm_numa_event[item]); -} - /* * Determine the per node value of a stat item. This function * is called frequently in a NUMA machine, so try to be as
__count_numa_event is small enough to be treated similarly to __count_vm_event so inline it. Signed-off-by: Mel Gorman <mgorman@techsingularity.net> --- include/linux/vmstat.h | 9 +++++++++ mm/vmstat.c | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-)