mm, vmscan: add mm_vmscan_inactive_list_is_low tracepoint
Currently we have tracepoints for both active and inactive LRU lists reclaim but we do not have any which would tell us why we we decided to age the active list. Without that it is quite hard to diagnose active/inactive lists balancing. Add mm_vmscan_inactive_list_is_low tracepoint to tell us this information. Link: http://lkml.kernel.org/r/20170104101942.4860-8-mhocko@kernel.org Signed-off-by: Michal Hocko <mhocko@suse.com> Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com> Acked-by: Mel Gorman <mgorman@suse.de> Acked-by: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
5bccd16657
commit
dcec0b60a8
@@ -15,6 +15,7 @@
|
||||
#define RECLAIM_WB_MIXED 0x0010u
|
||||
#define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */
|
||||
#define RECLAIM_WB_ASYNC 0x0008u
|
||||
#define RECLAIM_WB_LRU (RECLAIM_WB_ANON|RECLAIM_WB_FILE)
|
||||
|
||||
#define show_reclaim_flags(flags) \
|
||||
(flags) ? __print_flags(flags, "|", \
|
||||
@@ -426,6 +427,45 @@ TRACE_EVENT(mm_vmscan_lru_shrink_active,
|
||||
show_reclaim_flags(__entry->reclaim_flags))
|
||||
);
|
||||
|
||||
TRACE_EVENT(mm_vmscan_inactive_list_is_low,
|
||||
|
||||
TP_PROTO(int nid, int reclaim_idx,
|
||||
unsigned long total_inactive, unsigned long inactive,
|
||||
unsigned long total_active, unsigned long active,
|
||||
unsigned long ratio, int file),
|
||||
|
||||
TP_ARGS(nid, reclaim_idx, total_inactive, inactive, total_active, active, ratio, file),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, nid)
|
||||
__field(int, reclaim_idx)
|
||||
__field(unsigned long, total_inactive)
|
||||
__field(unsigned long, inactive)
|
||||
__field(unsigned long, total_active)
|
||||
__field(unsigned long, active)
|
||||
__field(unsigned long, ratio)
|
||||
__field(int, reclaim_flags)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->nid = nid;
|
||||
__entry->reclaim_idx = reclaim_idx;
|
||||
__entry->total_inactive = total_inactive;
|
||||
__entry->inactive = inactive;
|
||||
__entry->total_active = total_active;
|
||||
__entry->active = active;
|
||||
__entry->ratio = ratio;
|
||||
__entry->reclaim_flags = trace_shrink_flags(file) & RECLAIM_WB_LRU;
|
||||
),
|
||||
|
||||
TP_printk("nid=%d reclaim_idx=%d total_inactive=%ld inactive=%ld total_active=%ld active=%ld ratio=%ld flags=%s",
|
||||
__entry->nid,
|
||||
__entry->reclaim_idx,
|
||||
__entry->total_inactive, __entry->inactive,
|
||||
__entry->total_active, __entry->active,
|
||||
__entry->ratio,
|
||||
show_reclaim_flags(__entry->reclaim_flags))
|
||||
);
|
||||
#endif /* _TRACE_VMSCAN_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
Reference in New Issue
Block a user