diff mbox series

[04/11] mm/vmstat: Inline NUMA event counter updates

Message ID 20210414133931.4555-5-mgorman@techsingularity.net
State New
Headers show
Series Use local_lock for pcp protection and reduce stat overhead | expand

Commit Message

Mel Gorman April 14, 2021, 1:39 p.m. UTC
__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(-)

Comments

Vlastimil Babka April 14, 2021, 4:20 p.m. UTC | #1
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
>
Mel Gorman April 15, 2021, 9:34 a.m. UTC | #2
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 mbox series

Patch

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