From: Valentin Schneider <vschneid@redhat.com>
To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
linux-doc@vger.kernel.org
Cc: Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Juri Lelli <juri.lelli@redhat.com>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
Leonardo Bras <leobras@redhat.com>,
Frederic Weisbecker <frederic@kernel.org>
Subject: [RFC PATCH 0/5] tracing/filters: filtering event fields with a cpumask
Date: Fri, 9 Jun 2023 16:03:19 +0100 [thread overview]
Message-ID: <20230609150324.143538-1-vschneid@redhat.com> (raw)
Hi folks,
In the context of CPU isolation / NOHZ_FULL interference investigation, we now
have the ipi_send_cpu and ipi_send_cpumask events. However, enabling these
events without any filtering can yield pretty massive traces with a lot of
uninteresting or irrelevant data (e.g. everything targeting housekeeping CPUs).
This series is about adding event filtering via a user-provided cpumask. This
enables filtering using cpumask fields (e.g. ipi_send_cpumask) and extends this
to scalar and the local CPU common fields.
With this, it becomes fairly easy to trace events both happening on and
targeting CPUs of interest, e.g.:
trace-cmd record -e 'sched_switch' -f "CPU & MASK{$ISOLATED_CPUS}" \
-e 'sched_wakeup' -f "target_cpu & MASK{$ISOLATED_CPUS}" \
-e 'ipi_send_cpu' -f "cpu & MASK{$ISOLATED_CPUS}" \
-e 'ipi_send_cpumask' -f "cpumask & MASK{$ISOLATED_CPUS}" \
hackbench
The MASK{} thing is a bit crude but seems to work well enough without break^C
overhauling the predicate parsing logic.
Cheers,
Valentin
Valentin Schneider (5):
tracing/filters: Dynamically allocate filter_pred.regex
tracing/filters: Enable filtering a cpumask field by another cpumask
tracing/filters: Enable filtering a scalar field by a cpumask
tracing/filters: Enable filtering the CPU common field by a cpumask
tracing/filters: Document cpumask filtering
Documentation/trace/events.rst | 14 ++
include/linux/trace_events.h | 1 +
kernel/trace/trace_events_filter.c | 228 +++++++++++++++++++++++++----
3 files changed, 216 insertions(+), 27 deletions(-)
--
2.31.1
next reply other threads:[~2023-06-09 15:05 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-09 15:03 Valentin Schneider [this message]
2023-06-09 15:03 ` [RFC PATCH 1/5] tracing/filters: Dynamically allocate filter_pred.regex Valentin Schneider
2023-06-09 15:03 ` [RFC PATCH 2/5] tracing/filters: Enable filtering a cpumask field by another cpumask Valentin Schneider
2023-06-09 15:03 ` [RFC PATCH 3/5] tracing/filters: Enable filtering a scalar field by a cpumask Valentin Schneider
2023-06-09 15:03 ` [RFC PATCH 4/5] tracing/filters: Enable filtering the CPU common " Valentin Schneider
2023-06-09 15:03 ` [RFC PATCH 5/5] tracing/filters: Document cpumask filtering Valentin Schneider
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=20230609150324.143538-1-vschneid@redhat.com \
--to=vschneid@redhat.com \
--cc=bristot@redhat.com \
--cc=corbet@lwn.net \
--cc=frederic@kernel.org \
--cc=juri.lelli@redhat.com \
--cc=leobras@redhat.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mtosatti@redhat.com \
--cc=rostedt@goodmis.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®