[PATCH 3/3] Add name fields in shrinker tracepoint definitions

Janani Ravichandran
2016-07-09T09:07:08Z

Currently, the mm_shrink_slab_start and mm_shrink_slab_end
tracepoints tell us how much time was spent in a shrinker, the number of
objects scanned, etc. But there is no information about the identity of
the shrinker. This patch enables the trace output to display names of
shrinkers.

---
include/trace/events/vmscan.h | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h
index 0101ef3..be4c5b0 100644
--- a/include/trace/events/vmscan.h
+++ b/include/trace/events/vmscan.h
@@ -189,6 +189,7 @@ TRACE_EVENT(mm_shrink_slab_start,
cache_items, delta, total_scan),

TP_STRUCT__entry(
+ __field(char *, name)
__field(struct shrinker *, shr)
__field(void *, shrink)
__field(int, nid)
@@ -202,6 +203,7 @@ TRACE_EVENT(mm_shrink_slab_start,
),

TP_fast_assign(
+ __entry->name = shr->name;
__entry->shr = shr;
__entry->shrink = shr->scan_objects;
__entry->nid = sc->nid;
@@ -214,7 +216,8 @@ TRACE_EVENT(mm_shrink_slab_start,
__entry->total_scan = total_scan;
),

- TP_printk("%pF %p: nid: %d objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld",
+ TP_printk("name: %s %pF %p: nid: %d objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld",
+ __entry->name,
__entry->shrink,
__entry->shr,
__entry->nid,
@@ -235,6 +238,7 @@ TRACE_EVENT(mm_shrink_slab_end,
total_scan),

TP_STRUCT__entry(
+ __field(char *, name)
__field(struct shrinker *, shr)
__field(int, nid)
__field(void *, shrink)
@@ -245,6 +249,7 @@ TRACE_EVENT(mm_shrink_slab_end,
),

TP_fast_assign(
+ __entry->name = shr->name;
__entry->shr = shr;
__entry->nid = nid;
__entry->shrink = shr->scan_objects;
@@ -254,7 +259,8 @@ TRACE_EVENT(mm_shrink_slab_end,
__entry->total_scan = total_scan;
),

- TP_printk("%pF %p: nid: %d unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d",
+ TP_printk("name: %s %pF %p: nid: %d unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d",
+ __entry->name,
__entry->shrink,
__entry->shr,
__entry->nid,
--
2.7.0