2015-11-12 07:55:09

by yalin wang

[permalink] [raw]
Subject: [PATCH] mm: change mm_vmscan_lru_shrink_inactive() proto types

Move node_id zone_idx shrink flags into trace function,
so thay we don't need caculate these args if the trace is disabled,
and will make this function have less arguments.

Signed-off-by: yalin wang <[email protected]>
---
include/trace/events/vmscan.h | 14 +++++++-------
mm/vmscan.c | 7 ++-----
2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h
index dae7836..f8d6b34 100644
--- a/include/trace/events/vmscan.h
+++ b/include/trace/events/vmscan.h
@@ -352,11 +352,11 @@ TRACE_EVENT(mm_vmscan_writepage,

TRACE_EVENT(mm_vmscan_lru_shrink_inactive,

- TP_PROTO(int nid, int zid,
- unsigned long nr_scanned, unsigned long nr_reclaimed,
- int priority, int reclaim_flags),
+ TP_PROTO(struct zone *zone,
+ unsigned long nr_scanned, unsigned long nr_reclaimed,
+ int priority, int file),

- TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags),
+ TP_ARGS(zone, nr_scanned, nr_reclaimed, priority, file),

TP_STRUCT__entry(
__field(int, nid)
@@ -368,12 +368,12 @@ TRACE_EVENT(mm_vmscan_lru_shrink_inactive,
),

TP_fast_assign(
- __entry->nid = nid;
- __entry->zid = zid;
+ __entry->nid = zone->zone_pgdat->node_id;
+ __entry->zid = zone_idx(zone);
__entry->nr_scanned = nr_scanned;
__entry->nr_reclaimed = nr_reclaimed;
__entry->priority = priority;
- __entry->reclaim_flags = reclaim_flags;
+ __entry->reclaim_flags = trace_shrink_flags(file);
),

TP_printk("nid=%d zid=%d nr_scanned=%ld nr_reclaimed=%ld priority=%d flags=%s",
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 83cea53..bd2918e 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1691,11 +1691,8 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec,
current_may_throttle())
wait_iff_congested(zone, BLK_RW_ASYNC, HZ/10);

- trace_mm_vmscan_lru_shrink_inactive(zone->zone_pgdat->node_id,
- zone_idx(zone),
- nr_scanned, nr_reclaimed,
- sc->priority,
- trace_shrink_flags(file));
+ trace_mm_vmscan_lru_shrink_inactive(zone, nr_scanned, nr_reclaimed,
+ sc->priority, file);
return nr_reclaimed;
}

--
1.9.1


2015-11-12 14:26:44

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] mm: change mm_vmscan_lru_shrink_inactive() proto types

On Thu, 12 Nov 2015 15:54:56 +0800
yalin wang <[email protected]> wrote:

> Move node_id zone_idx shrink flags into trace function,
> so thay we don't need caculate these args if the trace is disabled,
> and will make this function have less arguments.
>
> Signed-off-by: yalin wang <[email protected]>

Reviewed-by: Steven Rostedt <[email protected]>

-- Steve

2015-11-13 13:16:25

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH] mm: change mm_vmscan_lru_shrink_inactive() proto types

On 11/12/2015 08:54 AM, yalin wang wrote:
> Move node_id zone_idx shrink flags into trace function,
> so thay we don't need caculate these args if the trace is disabled,
> and will make this function have less arguments.
>
> Signed-off-by: yalin wang <[email protected]>
> ---
> include/trace/events/vmscan.h | 14 +++++++-------
> mm/vmscan.c | 7 ++-----
> 2 files changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h
> index dae7836..f8d6b34 100644
> --- a/include/trace/events/vmscan.h
> +++ b/include/trace/events/vmscan.h
> @@ -352,11 +352,11 @@ TRACE_EVENT(mm_vmscan_writepage,
>
> TRACE_EVENT(mm_vmscan_lru_shrink_inactive,
>
> - TP_PROTO(int nid, int zid,
> - unsigned long nr_scanned, unsigned long nr_reclaimed,
> - int priority, int reclaim_flags),
> + TP_PROTO(struct zone *zone,
> + unsigned long nr_scanned, unsigned long nr_reclaimed,
> + int priority, int file),
>
> - TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags),
> + TP_ARGS(zone, nr_scanned, nr_reclaimed, priority, file),
>
> TP_STRUCT__entry(
> __field(int, nid)
> @@ -368,12 +368,12 @@ TRACE_EVENT(mm_vmscan_lru_shrink_inactive,
> ),
>
> TP_fast_assign(
> - __entry->nid = nid;
> - __entry->zid = zid;
> + __entry->nid = zone->zone_pgdat->node_id;

While at it, convert it to zone_to_nid()? It's not just encapsulation,
but also one less pointer dereference.

Then you can add my Acked-by.

Thanks.

2015-11-16 02:38:32

by yalin wang

[permalink] [raw]
Subject: Re: [PATCH] mm: change mm_vmscan_lru_shrink_inactive() proto types


> On Nov 13, 2015, at 21:16, Vlastimil Babka <[email protected]> wrote:
>
> zone_to_nid
make sense,
i will send V2 patch ,