Re: [PATCH bpf] perf, bpf: Use subprog name when reporting subprog ksymbol

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 14, 2022 at 05:57:33PM +0800, Hou Tao wrote:
> From: Hou Tao <houtao1@xxxxxxxxxx>
> 
> Since commit bfea9a8574f3 ("bpf: Add name to struct bpf_ksym"), when
> reporting subprog ksymbol to perf, prog name instead of subprog name is
> used. The backtrace of bpf program with subprogs will be incorrect as
> shown below:
> 
>   ffffffffc02deace bpf_prog_e44a3057dcb151f8_overwrite+0x66
>   ffffffffc02de9f7 bpf_prog_e44a3057dcb151f8_overwrite+0x9f
>   ffffffffa71d8d4e trace_call_bpf+0xce
>   ffffffffa71c2938 perf_call_bpf_enter.isra.0+0x48
> 
> overwrite is the entry program and it invokes the overwrite_htab subprog
> through bpf_loop, but in above backtrace, overwrite program just jumps
> inside itself.
> 
> Fixing it by using subprog name when reporting subprog ksymbol. After
> the fix, the output of perf script will be correct as shown below:
> 
>   ffffffffc031aad2 bpf_prog_37c0bec7d7c764a4_overwrite_htab+0x66
>   ffffffffc031a9e7 bpf_prog_c7eb827ef4f23e71_overwrite+0x9f
>   ffffffffa3dd8d4e trace_call_bpf+0xce
>   ffffffffa3dc2938 perf_call_bpf_enter.isra.0+0x48
> 
> Fixes: bfea9a8574f3 ("bpf: Add name to struct bpf_ksym")
> Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx>

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka

> ---
>  kernel/events/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 4ec3717003d5..8b50ef2569d9 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -9030,7 +9030,7 @@ static void perf_event_bpf_emit_ksymbols(struct bpf_prog *prog,
>  				PERF_RECORD_KSYMBOL_TYPE_BPF,
>  				(u64)(unsigned long)subprog->bpf_func,
>  				subprog->jited_len, unregister,
> -				prog->aux->ksym.name);
> +				subprog->aux->ksym.name);
>  		}
>  	}
>  }
> -- 
> 2.29.2
> 



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux