2021-04-14 16:07:28

by Mel Gorman

[permalink] [raw]
Subject: [PATCH 04/11] mm/vmstat: Inline NUMA event counter updates

__count_numa_event is small enough to be treated similarly to
__count_vm_event so inline it.

Signed-off-by: Mel Gorman <[email protected]>
---
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
--
2.26.2


2021-04-15 00:35:45

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH 04/11] mm/vmstat: Inline NUMA event counter updates

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 <[email protected]>

Acked-by: Vlastimil Babka <[email protected]>

> ---
> 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
>

2021-04-15 00:35:48

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH 04/11] mm/vmstat: Inline NUMA event counter updates

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 <[email protected]>
>
> Acked-by: Vlastimil Babka <[email protected]>
>
>> ---
>> 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.

>> 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
>>
>

2021-04-15 09:36:30

by Mel Gorman

[permalink] [raw]
Subject: Re: [PATCH 04/11] mm/vmstat: Inline NUMA event counter updates

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 <[email protected]>
> >
> > Acked-by: Vlastimil Babka <[email protected]>
> >
> >> ---
> >> 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