From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
Andi Kleen <ak@linux.intel.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Dmitri Prokhorov <Dmitry.Prohorov@intel.com>
Subject: Re: [PATCH v1 0/3] perf: expose thread context switch out event type to user space
Date: Mon, 5 Mar 2018 12:06:10 -0300 [thread overview]
Message-ID: <20180305150610.GB22849@kernel.org> (raw)
In-Reply-To: <6db586f3-36da-285c-b008-f2722419fbf8@linux.intel.com>
Em Mon, Mar 05, 2018 at 02:35:02PM +0300, Alexey Budankov escreveu:
>
> Here is a series of small patches that implement exposing type of
> context-switch-out event as a part of PERF_RECORD_SWITCH[_CPU_WIDE] record.
>
> Introduced types of context-switch-out events assumed to be:
> a) preempt: task->state == TASK_RUNNING
> misc &= PERF_RECORD_MISC_SWITCH_OUT
>
> b) yield: !preempt - using new bit PERF_RECORD_MISC_SWITCH_OUT_YIELD:
misc &= PERF_RECORD_MISC_SWITCH_OUT|PERF_RECORD_MISC_SWITCH_OUT_YIELD
>
> Perf tool report and script commands output has been extended to decode
> new yield bit and the updated output looks like in the examples below.
I'm just waiting for the current reviewers to be satisfied with this,
but I think this is a great addition and 'perf trace' is another tool
that should jump into this, showing forced context switches together
with syscalls.
- Arnaldo
> The documentation has been updated to mention yield switch out events and its
> decoding symbols in perf script output.
>
> The changes have been manually tested on Fedora 27 with the patched kernel:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
>
> perf report -D -i system-wide.perf:
>
> 0x1b9c50 [0x30]: event: 15
> .
> . ... raw event: size 48 bytes
> . 0000: 0f 00 00 00 00 20 30 00 01 1e 00 00 01 1e 00 00 ..... 0.........
> . 0010: 00 00 00 00 00 00 00 00 85 ae d4 e3 3e 0e 00 00 ............>...
> . 0020: 54 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 T...............
>
> 5 15663273127557 0x1b9c50 [0x30]: PERF_RECORD_SWITCH_CPU_WIDE OUT next pid/tid: 7681/7681
>
> 0x2646c0 [0x30]: event: 15
> .
> . ... raw event: size 48 bytes
> . 0000: 0f 00 00 00 00 60 30 00 00 00 00 00 00 00 00 00 .....`0.........
> . 0010: 00 1e 00 00 00 1e 00 00 29 1e d5 e3 3e 0e 00 00 ........)...>...
> . 0020: 56 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 V...............
>
> 7 15663273156137 0x2646c0 [0x30]: PERF_RECORD_SWITCH_CPU_WIDE OUT yield next pid/tid: 0/0
>
> perf script --show-switch-events -F +misc -I -i system-wide.perf:
>
> amplxe-perf 7681 [005] S 15663.273151: PERF_RECORD_SWITCH_CPU_WIDE OUT next pid/tid: 39/39
> migration/5 39 [005] 15663.273152: PERF_RECORD_SWITCH_CPU_WIDE IN prev pid/tid: 7681/7681
> amplxe-perf 7680 [007] K 15663.273153: 1 context-switch:
> aaa488 schedule ([kernel.kallsyms])
> 1a9f50 __poll_nocancel (inlined)
>
> amplxe-perf 7680 [007] Sy 15663.273156: PERF_RECORD_SWITCH_CPU_WIDE OUT yield next pid/tid: 0/0
> migration/5 39 [005] K 15663.273157:
>
> ---
> Alexey Budankov (3):
> perf/core: store context switch out type into Perf trace
> perf report: extend raw dump (-D) out with switch out event type
> perf script: extend misc field decoding with switch out event type
>
> include/uapi/linux/perf_event.h | 5 +++++
> kernel/events/core.c | 4 +++-
> tools/include/uapi/linux/perf_event.h | 5 +++++
> tools/perf/Documentation/perf-script.txt | 17 +++++++++--------
> tools/perf/builtin-script.c | 5 ++++-
> tools/perf/util/event.c | 4 +++-
> 6 files changed, 29 insertions(+), 11 deletions(-)
next prev parent reply other threads:[~2018-03-05 15:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-05 11:35 [PATCH v1 0/3] perf: expose thread context switch out event type to user space Alexey Budankov
2018-03-05 11:36 ` [PATCH v1 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
2018-03-05 11:38 ` [PATCH v1 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
2018-03-05 11:42 ` [PATCH v1 3/3] perf script: extend misc field deconding " Alexey Budankov
2018-03-05 15:06 ` Arnaldo Carvalho de Melo [this message]
2018-03-05 16:20 ` [PATCH v1 0/3] perf: expose thread context switch out event type to user space Alexey Budankov
2018-03-05 16:52 ` Andi Kleen
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=20180305150610.GB22849@kernel.org \
--to=acme@kernel.org \
--cc=Dmitry.Prohorov@intel.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=alexey.budankov@linux.intel.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.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.