All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Cc: Chandan Rajendra <chandanrlinux@gmail.com>,
	linux-kernel@vger.kernel.org, peterz@infradead.org,
	mingo@redhat.com, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@redhat.com,
	namhyung@kernel.org, rostedt@goodmis.org, tstoyanov@vmware.com,
	gregkh@linuxfoundation.org, kstewart@linuxfoundation.org,
	tglx@linutronix.de, chandan@linux.ibm.com
Subject: Re: [PATCH] perf script: Fix obtaining next event
Date: Wed, 30 Oct 2019 08:50:04 -0300	[thread overview]
Message-ID: <20191030115004.GA27327@kernel.org> (raw)
In-Reply-To: <0befd460-b9bf-ba2b-556a-aa06798b16b9@linux.ibm.com>

Em Wed, Oct 30, 2019 at 03:16:10PM +0530, Ravi Bangoria escreveu:
> 
> 
> On 10/30/19 2:10 PM, Chandan Rajendra wrote:
> > The current code segfaults when perf.data file contains two or more
> > events. This happens due to incorrect pointer arithmetic being performed
> > in trace_find_next_event().
> > 
> > tep_handle->events is an array of pointers to 'struct tep_event'. The
> > pointer arithmetic interprets tep_handle->events as an array of 'struct
> > tep_event' elements.
> > 
> > This commit replaces the usage of pointer arithmetic with calls to
> > tep_get_event().
> > 
> > Fixes: bb3dd7e ("tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file")
> > Signed-off-by: Chandan Rajendra <chandanrlinux@gmail.com>
> 
>   $ sudo ./perf record -e sched:sched_switch -e syscalls:sys_enter_openat -- make
> 
> Without patch:
>   $ sudo ./perf script -g python
>   Segmentation fault
> 
> With patch:
>   $ sudo ./perf script -g python
>   generated Python script: perf-script.py
> 
> Reviewed-and-tested-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>

This was fixed already in perf/core, by Steven:

commit 9bdff5b6436655d42dd30253c521e86ce07b9961
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu Oct 17 17:05:23 2019 -0400

    perf tools: Remove unused trace_find_next_event()

    trace_find_next_event() was buggy and pretty much a useless helper. As
    there are no more users, just remove it.

    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tzvetomir Stoyanov <tstoyanov@vmware.com>
    Cc: linux-trace-devel@vger.kernel.org
    Link: http://lore.kernel.org/lkml/20191017210636.224045576@goodmis.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

commit a5e05abc6b8d81148b35cd8632a4a6252383d968
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu Oct 17 17:05:22 2019 -0400

    perf scripting engines: Iterate on tep event arrays directly

    Instead of calling a useless (and broken) helper function to get the
    next event of a tep event array, just get the array directly and iterate
    over it.

    Note, the broken part was from trace_find_next_event() which after this
    will no longer be used, and can be removed.

    Committer notes:

    This fixes a segfault when generating python scripts from perf.data
    files with multiple tracepoint events, i.e. the following use case is
    fixed by this patch:

      # perf record -e sched:* sleep 1
      [ perf record: Woken up 31 times to write data ]
      [ perf record: Captured and wrote 0.031 MB perf.data (9 samples) ]
      # perf script -g python
      Segmentation fault (core dumped)
      #

    Reported-by: Daniel Bristot de Oliveira <bristot@redhat.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tzvetomir Stoyanov <tstoyanov@vmware.com>
    Cc: linux-trace-devel@vger.kernel.org
    Link: http://lkml.kernel.org/r/20191017153733.630cd5eb@gandalf.local.home
    Link: http://lore.kernel.org/lkml/20191017210636.061448713@goodmis.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

      reply	other threads:[~2019-10-30 11:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-30  8:40 [PATCH] perf script: Fix obtaining next event Chandan Rajendra
2019-10-30  9:46 ` Ravi Bangoria
2019-10-30 11:50   ` Arnaldo Carvalho de Melo [this message]

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=20191030115004.GA27327@kernel.org \
    --to=arnaldo.melo@gmail.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=chandan@linux.ibm.com \
    --cc=chandanrlinux@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jolsa@redhat.com \
    --cc=kstewart@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@linux.ibm.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=tstoyanov@vmware.com \
    /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.