All of lore.kernel.org
 help / color / mirror / Atom feed
From: SeongJae Park <sj@kernel.org>
To: Sumanth Korikkar <sumanthk@linux.ibm.com>
Cc: olsajiri@gmail.com, bpf@vger.kernel.org, gor@linux.ibm.com,
	hca@linux.ibm.com, iii@linux.ibm.com,
	linux-kernel@vger.kernel.org, linux-tip-commits@vger.kernel.org,
	namhyung@kernel.org, peterz@infradead.org, svens@linux.ibm.com,
	tip-bot2@linutronix.de, tmricht@linux.ibm.com, x86@kernel.org
Subject: Re: [PATCH] bpf: fix sample_flags for bpf_perf_event_output
Date: Mon, 17 Oct 2022 19:27:44 +0000	[thread overview]
Message-ID: <20221017192744.1403-1-sj@kernel.org> (raw)
In-Reply-To: <20221007081327.1047552-1-sumanthk@linux.ibm.com>

Hello,


The commit that this patch is fixing[1] also causes yet another segfault for
'perf-script' of tracepoint records.  For example:

    $ sudo timeout 3 perf record -e exceptions:page_fault_user
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.228 MB perf.data (74 samples) ]
    $ sudo perf script
    Segmentation fault

Reverting this patch and the original bug commit[1] fixes the issue.  I haven't
deep dive yet because I'm not familiar with this area.  Anybody has any idea
about this?

[1] 838d9bb62d13 ("perf: Use sample_flags for raw_data")


Thanks,
SJ

On Fri, 7 Oct 2022 10:13:27 +0200 Sumanth Korikkar <sumanthk@linux.ibm.com> wrote:

> * Raw data is also filled by bpf_perf_event_output.
> * Add sample_flags to indicate raw data.
> * This eliminates the segfaults as shown below:
>   Run ./samples/bpf/trace_output
>   BUG pid 9 cookie 1001000000004 sized 4
>   BUG pid 9 cookie 1001000000004 sized 4
>   BUG pid 9 cookie 1001000000004 sized 4
>   Segmentation fault (core dumped)
> 
> Fixes: 838d9bb62d13 ("perf: Use sample_flags for raw_data")
> Acked-by: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
> ---
>  kernel/trace/bpf_trace.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
> index 49fb9ec8366d..1ed08967fb97 100644
> --- a/kernel/trace/bpf_trace.c
> +++ b/kernel/trace/bpf_trace.c
> @@ -687,6 +687,7 @@ BPF_CALL_5(bpf_perf_event_output, struct pt_regs *, regs, struct bpf_map *, map,
>  
>  	perf_sample_data_init(sd, 0, 0);
>  	sd->raw = &raw;
> +	sd->sample_flags |= PERF_SAMPLE_RAW;
>  
>  	err = __bpf_perf_event_output(regs, map, flags, sd);
>  
> @@ -745,6 +746,7 @@ u64 bpf_event_output(struct bpf_map *map, u64 flags, void *meta, u64 meta_size,
>  	perf_fetch_caller_regs(regs);
>  	perf_sample_data_init(sd, 0, 0);
>  	sd->raw = &raw;
> +	sd->sample_flags |= PERF_SAMPLE_RAW;
>  
>  	ret = __bpf_perf_event_output(regs, map, flags, sd);
>  out:
> -- 
> 2.36.1

  parent reply	other threads:[~2022-10-17 19:30 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-21 22:00 [PATCH 1/2] perf: Use sample_flags for addr Namhyung Kim
2022-09-21 22:00 ` [PATCH 2/2] perf: Use sample_flags for raw_data Namhyung Kim
2022-09-28  6:57   ` [tip: perf/core] " tip-bot2 for Namhyung Kim
2022-10-06 16:00     ` [PATCH] " Sumanth Korikkar
2022-10-06 17:12       ` Namhyung Kim
2022-10-06 18:58       ` Jiri Olsa
2022-10-07  8:13         ` [PATCH] bpf: fix sample_flags for bpf_perf_event_output Sumanth Korikkar
2022-10-07  9:45           ` Jiri Olsa
2022-10-07 15:18             ` Peter Zijlstra
2022-10-19  4:57               ` Alexei Starovoitov
2022-10-21  1:36                 ` Alexei Starovoitov
2022-10-23  1:16                   ` bpf+perf is still broken. Was: " Alexei Starovoitov
2022-10-23 16:55                     ` Linus Torvalds
2022-10-23 17:19                       ` Linus Torvalds
2022-10-23 17:28                         ` Alexei Starovoitov
2022-10-17 14:45           ` [tip: perf/urgent] bpf: Fix " tip-bot2 for Sumanth Korikkar
2022-10-17 19:27           ` SeongJae Park [this message]
2022-10-17 22:52             ` [PATCH] bpf: fix " Namhyung Kim
2022-10-17 23:35               ` SeongJae Park
2022-10-19 10:44     ` [tip: perf/core] perf: Use sample_flags for raw_data Athira Rajeev
2022-09-22 14:48 ` [PATCH 1/2] perf: Use sample_flags for addr Peter Zijlstra
2022-09-22 16:32   ` Namhyung Kim
2022-09-22 20:55     ` [PATCH] perf: Change the layout of perf_sample_data Namhyung Kim
2022-09-23  7:45     ` [PATCH 1/2] perf: Use sample_flags for addr Peter Zijlstra
2022-09-28  6:57 ` [tip: perf/core] " tip-bot2 for Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221017192744.1403-1-sj@kernel.org \
    --to=sj@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=iii@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=olsajiri@gmail.com \
    --cc=peterz@infradead.org \
    --cc=sumanthk@linux.ibm.com \
    --cc=svens@linux.ibm.com \
    --cc=tip-bot2@linutronix.de \
    --cc=tmricht@linux.ibm.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.