Re: [PATCH v2] percpu: improve percpu_alloc_percpu event trace

Roman Gushchin
2022-05-11T02:48:37Z

On Fri, May 06, 2022 at 10:29:25PM +0300, Vasily Averin wrote:
> Added call_site, bytes_alloc and gfp_flags fields to the output
> of the percpu_alloc_percpu ftrace event:
>
> mkdir-4393 [001] 169.334788: percpu_alloc_percpu:
> call_site=mem_cgroup_css_alloc+0xa6 reserved=0 is_atomic=0 size=2408 align=8
> base_addr=0xffffc7117fc00000 off=402176 ptr=0x3dc867a62300 bytes_alloc=14448
> gfp_flags=GFP_KERNEL_ACCOUNT
>
> This is required to track memcg-accounted percpu allocations.
>
> Signed-off-by: Vasily Averin <vvs@openvz.org>

Acked-by: Roman Gushchin <roman.gushchin@linux.dev>

LGTM, thanks Vasily!

One minor thing below.

> ---
> v2: added call_site, improved patch description
> ---
> include/trace/events/percpu.h | 23 +++++++++++++++++------
> mm/percpu-internal.h | 8 ++++----
> mm/percpu.c | 5 +++--
> 3 files changed, 24 insertions(+), 12 deletions(-)
>
> diff --git a/include/trace/events/percpu.h b/include/trace/events/percpu.h
> index df112a64f6c9..e989cefc0def 100644
> --- a/include/trace/events/percpu.h
> +++ b/include/trace/events/percpu.h
> @@ -6,15 +6,20 @@
> #define _TRACE_PERCPU_H
>
> #include <linux/tracepoint.h>
> +#include <trace/events/mmflags.h>
>
> TRACE_EVENT(percpu_alloc_percpu,
>
> - TP_PROTO(bool reserved, bool is_atomic, size_t size,
> - size_t align, void *base_addr, int off, void __percpu *ptr),
> + TP_PROTO(unsigned long call_site,
> + bool reserved, bool is_atomic, size_t size,
> + size_t align, void *base_addr, int off,
> + void __percpu *ptr, size_t bytes_alloc, gfp_t gfp_flags),

Don't we want to preserve the order and add the call_site at the end?
Trace events are not ABI, but if we don't have a strong reason to break it,
I'd preserve the old order.

Thanks!