From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Yang Jihong <yangjihong1@huawei.com>, Ian Rogers <irogers@google.com>
Cc: 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 v6 0/7] perf record: Track sideband events for all CPUs when tracing selected CPUs
Date: Wed, 23 Aug 2023 08:35:53 -0300 [thread overview]
Message-ID: <ZOXvGQslV9amdJ45@kernel.org> (raw)
In-Reply-To: <3a069f1b-4bf8-f2f9-00fc-3e69c8b6cfcf@huawei.com>
Em Wed, Aug 23, 2023 at 09:17:56AM +0800, Yang Jihong escreveu:
> Hi Arnaldo,
>
> Can you consider applying this patchset ?
> Please let me know if there is anything that needs to be fixed.
I'm just giving Ian some more time since he's been busy lately and tried
to review this patchset,
- Arnaldo
> Yang,
> Thanks
>
> On 2023/8/21 9:27, 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_v5:
> > - No code changes.
> > - Detailed commit message of patch3.
> > - Add Acked-by and Tested-by tags from Adrian Hunter.
> >
> > Changes since_v4:
> > - Simplify check code for record__tracking_system_wide().
> > - Add perf attr test result to commit message for patch 7.
> >
> > Changes since_v3:
> > - Check fall_kernel, all_user, and dummy or exclude_user when determining
> > whether system wide is required.
> >
> > Changes since_v2:
> > - Rename record_tracking.sh to record_sideband.sh in tools/perf/tests/shell.
> > - Remove "perf evlist: Skip dummy event sample_type check for evlist_config" patch.
> > - Add opts->all_kernel check in record__config_tracking_events().
> > - Add perf_event_attr test for record selected CPUs exclude_user.
> > - Update base-record & system-wide-dummy sample_type attr expected values for test-record-C0.
> >
> > Changes since v1:
> > - Add perf_evlist__go_system_wide() via internal/evlist.h instead of
> > exporting perf_evlist__propagate_maps().
> > - Use evlist__add_aux_dummy() instead of evlist__add_dummy() in
> > evlist__findnew_tracking_event().
> > - Add a parameter in evlist__findnew_tracking_event() to deal with
> > system_wide inside.
> > - Add sideband for all CPUs when tracing selected CPUs comments on
> > the perf record man page.
> > - Use "sideband events" instead of "tracking events".
> > - Adjust the patches Sequence.
> > - Add patch5 to skip dummy event sample_type check for evlist_config.
> > - Add patch6 to update system-wide-dummy attr values for perf test.
> >
> > Yang Jihong (7):
> > perf evlist: Add perf_evlist__go_system_wide() helper
> > perf evlist: Add evlist__findnew_tracking_event() helper
> > perf record: Move setting dummy tracking before
> > record__init_thread_masks()
> > perf record: Track sideband events for all CPUs when tracing selected
> > CPUs
> > perf test: Update base-record & system-wide-dummy attr expected values
> > for test-record-C0
> > perf test: Add test case for record sideband events
> > perf test: Add perf_event_attr test for record selected CPUs
> > exclude_user
> >
> > tools/lib/perf/evlist.c | 9 ++
> > tools/lib/perf/include/internal/evlist.h | 2 +
> > tools/perf/Documentation/perf-record.txt | 3 +
> > tools/perf/builtin-record.c | 106 +++++++++++++-----
> > tools/perf/tests/attr/system-wide-dummy | 14 ++-
> > tools/perf/tests/attr/test-record-C0 | 4 +-
> > .../perf/tests/attr/test-record-C0-all-kernel | 32 ++++++
> > tools/perf/tests/shell/record_sideband.sh | 44 ++++++++
> > tools/perf/util/evlist.c | 18 +++
> > tools/perf/util/evlist.h | 1 +
> > 10 files changed, 198 insertions(+), 35 deletions(-)
> > create mode 100644 tools/perf/tests/attr/test-record-C0-all-kernel
> > create mode 100755 tools/perf/tests/shell/record_sideband.sh
> >
--
- Arnaldo
prev parent reply other threads:[~2023-08-23 11:36 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-21 1:27 [PATCH v6 0/7] perf record: Track sideband events for all CPUs when tracing selected CPUs Yang Jihong
2023-08-21 1:27 ` [PATCH v6 1/7] perf evlist: Add perf_evlist__go_system_wide() helper Yang Jihong
2023-08-25 4:51 ` Ian Rogers
2023-08-25 5:41 ` Yang Jihong
[not found] ` <CAP-5=fUtCHXDC5zOML4po8k1rQVPo9ybsTA8_AihepP6w8B5Kw@mail.gmail.com>
2023-08-25 6:15 ` Yang Jihong
2023-08-25 6:28 ` Yang Jihong
2023-08-21 1:27 ` [PATCH v6 2/7] perf evlist: Add evlist__findnew_tracking_event() helper Yang Jihong
2023-08-25 4:55 ` Ian Rogers
2023-08-25 5:58 ` Yang Jihong
2023-08-21 1:27 ` [PATCH v6 3/7] perf record: Move setting dummy tracking before record__init_thread_masks() Yang Jihong
2023-08-25 5:10 ` Ian Rogers
2023-08-25 6:05 ` Yang Jihong
2023-08-21 1:27 ` [PATCH v6 4/7] perf record: Track sideband events for all CPUs when tracing selected CPUs Yang Jihong
2023-08-25 5:17 ` Ian Rogers
2023-08-25 6:07 ` Yang Jihong
2023-08-25 6:13 ` Adrian Hunter
2023-08-21 1:27 ` [PATCH v6 5/7] perf test: Update base-record & system-wide-dummy attr expected values for test-record-C0 Yang Jihong
2023-08-25 5:22 ` Ian Rogers
2023-08-25 6:09 ` Yang Jihong
2023-08-21 1:27 ` [PATCH v6 6/7] perf test: Add test case for record sideband events Yang Jihong
2023-08-25 5:28 ` Ian Rogers
2023-08-25 6:12 ` Yang Jihong
2023-08-21 1:27 ` [PATCH v6 7/7] perf test: Add perf_event_attr test for record selected CPUs exclude_user Yang Jihong
2023-08-25 5:25 ` Ian Rogers
2023-08-23 1:17 ` [PATCH v6 0/7] perf record: Track sideband events for all CPUs when tracing selected CPUs Yang Jihong
2023-08-23 11:35 ` 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=ZOXvGQslV9amdJ45@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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).