All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Yang Jihong <yangjihong1@huawei.com>,
	peterz@infradead.org, mingo@redhat.com, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	namhyung@kernel.org, irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, james.clark@arm.com,
	tmricht@linux.ibm.com, ak@linux.intel.com,
	anshuman.khandual@arm.com, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v8 0/6] perf record: Track sideband events for all CPUs when tracing selected CPUs
Date: Tue, 12 Sep 2023 17:32:34 -0300	[thread overview]
Message-ID: <ZQDK4kZhwyZL/8tx@kernel.org> (raw)
In-Reply-To: <453bd95c-932d-c60a-bd7b-96f87bc7779a@amd.com>

Em Tue, Sep 12, 2023 at 02:41:56PM +0530, Ravi Bangoria escreveu:
> On 04-Sep-23 8:03 AM, Yang Jihong wrote:
> > User space tasks can migrate between CPUs, track sideband events for all
> > CPUs.
> > 
> > The specific scenarios are as follows:
> > 
> >          CPU0                                 CPU1
> >   perf record -C 0 start
> >                               taskA starts to be created and executed
> >                                 -> PERF_RECORD_COMM and PERF_RECORD_MMAP
> >                                    events only deliver to CPU1
> >                               ......
> >                                 |
> >                           migrate to CPU0
> >                                 |
> >   Running on CPU0    <----------/
> >   ...
> > 
> >   perf record -C 0 stop
> > 
> > Now perf samples the PC of taskA. However, perf does not record the
> > PERF_RECORD_COMM and PERF_RECORD_COMM events of taskA.
> > Therefore, the comm and symbols of taskA cannot be parsed.
> > 
> > The sys_perf_event_open invoked is as follows:
> > 
> >   # perf --debug verbose=3 record -e cpu-clock -C 1 true
> >   <SNIP>
> >   Opening: cpu-clock
> >   ------------------------------------------------------------
> >   perf_event_attr:
> >     type                             1 (PERF_TYPE_SOFTWARE)
> >     size                             136
> >     config                           0 (PERF_COUNT_SW_CPU_CLOCK)
> >     { sample_period, sample_freq }   4000
> >     sample_type                      IP|TID|TIME|CPU|PERIOD|IDENTIFIER
> >     read_format                      ID|LOST
> >     disabled                         1
> >     inherit                          1
> >     freq                             1
> >     sample_id_all                    1
> >     exclude_guest                    1
> >   ------------------------------------------------------------
> >   sys_perf_event_open: pid -1  cpu 1  group_fd -1  flags 0x8 = 5
> >   Opening: dummy:u
> >   ------------------------------------------------------------
> >   perf_event_attr:
> >     type                             1 (PERF_TYPE_SOFTWARE)
> >     size                             136
> >     config                           0x9 (PERF_COUNT_SW_DUMMY)
> >     { sample_period, sample_freq }   1
> >     sample_type                      IP|TID|TIME|CPU|IDENTIFIER
> >     read_format                      ID|LOST
> >     inherit                          1
> >     exclude_kernel                   1
> >     exclude_hv                       1
> >     mmap                             1
> >     comm                             1
> >     task                             1
> >     sample_id_all                    1
> >     exclude_guest                    1
> >     mmap2                            1
> >     comm_exec                        1
> >     ksymbol                          1
> >     bpf_event                        1
> >   ------------------------------------------------------------
> >   sys_perf_event_open: pid -1  cpu 0  group_fd -1  flags 0x8 = 6
> >   sys_perf_event_open: pid -1  cpu 1  group_fd -1  flags 0x8 = 7
> >   sys_perf_event_open: pid -1  cpu 2  group_fd -1  flags 0x8 = 9
> >   sys_perf_event_open: pid -1  cpu 3  group_fd -1  flags 0x8 = 10
> >   sys_perf_event_open: pid -1  cpu 4  group_fd -1  flags 0x8 = 11
> >   sys_perf_event_open: pid -1  cpu 5  group_fd -1  flags 0x8 = 12
> >   sys_perf_event_open: pid -1  cpu 6  group_fd -1  flags 0x8 = 13
> >   sys_perf_event_open: pid -1  cpu 7  group_fd -1  flags 0x8 = 14
> >   <SNIP>
> > 
> > Changes since_v7:
> >  - The condition for requiring system_wide sideband is changed to
> >    "as long as a non-dummy event exists" (patch4).
> >  - Modify the corresponding test case to record only dummy event (patch6).
> >  - Thanks to tested-by tag from Ravi, but because the solution is modified,
> >    the tested-by tag of Ravi is not added to this version.
> 
> I've re-tested v8 with my simple test.
> 
> Tested-by: Ravi Bangoria <ravi.bangoria@amd.com>


Thanks, applied to the csets that were still sitting in an umpublished
perf-tools-next local branch, soon public.

- Arnaldo


  reply	other threads:[~2023-09-12 20:32 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-04  2:33 [PATCH v8 0/6] perf record: Track sideband events for all CPUs when tracing selected CPUs Yang Jihong
2023-09-04  2:33 ` [PATCH v8 1/6] perf evlist: Add perf_evlist__go_system_wide() helper Yang Jihong
2023-09-04  2:33 ` [PATCH v8 2/6] perf evlist: Add evlist__findnew_tracking_event() helper Yang Jihong
2023-09-04  2:33 ` [PATCH v8 3/6] perf record: Move setting tracking events before record__init_thread_masks() Yang Jihong
2023-09-04  2:33 ` [PATCH v8 4/6] perf record: Track sideband events for all CPUs when tracing selected CPUs Yang Jihong
2023-09-04  2:33 ` [PATCH v8 5/6] perf test: Add test case for record sideband events Yang Jihong
2023-09-04  2:33 ` [PATCH v8 6/6] perf test: Add perf_event_attr test for record dummy event Yang Jihong
2023-09-06 16:08 ` [PATCH v8 0/6] perf record: Track sideband events for all CPUs when tracing selected CPUs Arnaldo Carvalho de Melo
2023-09-07  2:40   ` Yang Jihong
2023-09-12  9:11 ` Ravi Bangoria
2023-09-12 20:32   ` Arnaldo Carvalho de Melo [this message]
2023-09-16  0:14     ` Namhyung Kim
2023-09-16  9:23       ` Yang Jihong
2023-09-17  5:34         ` 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=ZQDK4kZhwyZL/8tx@kernel.org \
    --to=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=anshuman.khandual@arm.com \
    --cc=irogers@google.com \
    --cc=james.clark@arm.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@amd.com \
    --cc=tmricht@linux.ibm.com \
    --cc=yangjihong1@huawei.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.