Re: [PATCH] mm: vmscan: show zone type in kswapd tracepoints

From: Michal Hocko
Date: Mon Mar 11 2019 - 04:47:48 EST


On Fri 01-03-19 15:38:54, Yafang Shao wrote:
> If we want to know the zone type, we have to check whether
> CONFIG_ZONE_DMA, CONFIG_ZONE_DMA32 and CONFIG_HIGHMEM are set or not,
> that's not so convenient.
>
> We'd better show the zone type directly.

I do agree that zone number is quite PITA to process in general but do
we really need this information in the first place? Why do we even care?

Zones are an MM internal implementation details and the more we export
to the userspace the more we are going to argue about breaking userspace
when touching them. So I would rather not export that information unless
it is terribly useful.

> Signed-off-by: Yafang Shao <laoar.shao@xxxxxxxxx>
> ---
> include/trace/events/vmscan.h | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h
> index a1cb913..4c8880b 100644
> --- a/include/trace/events/vmscan.h
> +++ b/include/trace/events/vmscan.h
> @@ -73,7 +73,10 @@
> __entry->order = order;
> ),
>
> - TP_printk("nid=%d zid=%d order=%d", __entry->nid, __entry->zid, __entry->order)
> + TP_printk("nid=%d zid=%-8s order=%d",
> + __entry->nid,
> + __print_symbolic(__entry->zid, ZONE_TYPE),
> + __entry->order)
> );
>
> TRACE_EVENT(mm_vmscan_wakeup_kswapd,
> @@ -96,9 +99,9 @@
> __entry->gfp_flags = gfp_flags;
> ),
>
> - TP_printk("nid=%d zid=%d order=%d gfp_flags=%s",
> + TP_printk("nid=%d zid=%-8s order=%d gfp_flags=%s",
> __entry->nid,
> - __entry->zid,
> + __print_symbolic(__entry->zid, ZONE_TYPE),
> __entry->order,
> show_gfp_flags(__entry->gfp_flags))
> );
> --
> 1.8.3.1
>

--
Michal Hocko
SUSE Labs