106 lines
3.4 KiB
Diff
106 lines
3.4 KiB
Diff
From c4936880059251b28b7049f01bbfddb1882bda0e Mon Sep 17 00:00:00 2001
|
|
From: Slavomir Kaslev <kaslevs@vmware.com>
|
|
Date: Wed, 17 Apr 2019 21:31:57 +0300
|
|
Subject: [PATCH 2/2] trace-cmd: Add --no-filter option to not filter out
|
|
recording processes
|
|
|
|
Add trace-cmd --no-filter option that disables filtering out of trace-cmd
|
|
recording processes from the trace.
|
|
|
|
Link: http://lore.kernel.org/linux-trace-devel/20190417183157.8776-2-kaslevs@vmware.com
|
|
|
|
Tested-by: Phil Auld <pauld@redhat.com>
|
|
Suggested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
|
Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
|
|
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
|
---
|
|
Documentation/trace-cmd-record.1.txt | 5 +++++
|
|
trace-record.c | 14 +++++++++++---
|
|
trace-usage.c | 1 +
|
|
3 files changed, 17 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/Documentation/trace-cmd-record.1.txt b/Documentation/trace-cmd-record.1.txt
|
|
index 68afa161ac32..26a8299cd860 100644
|
|
--- a/Documentation/trace-cmd-record.1.txt
|
|
+++ b/Documentation/trace-cmd-record.1.txt
|
|
@@ -83,6 +83,11 @@ OPTIONS
|
|
|
|
The above are usually safe to use to compare fields.
|
|
|
|
+*--no-filter*::
|
|
+ Do not filter out the trace-cmd threads. By default, the threads are
|
|
+ filtered out to not be traced by events. This option will have the trace-cmd
|
|
+ threads also be traced.
|
|
+
|
|
*-R* 'trigger'::
|
|
Specify a trigger for the previous event. This must come after a *-e*.
|
|
This will add a given trigger to the given event. To only enable the trigger
|
|
diff --git a/trace-record.c b/trace-record.c
|
|
index e636c97d701d..ef4c4c873fd4 100644
|
|
--- a/trace-record.c
|
|
+++ b/trace-record.c
|
|
@@ -99,6 +99,7 @@ static int do_ptrace;
|
|
|
|
static int filter_task;
|
|
static int filter_pid = -1;
|
|
+static bool no_filter = false;
|
|
|
|
static int local_cpu_count;
|
|
|
|
@@ -1018,6 +1019,9 @@ static void update_task_filter(void)
|
|
struct buffer_instance *instance;
|
|
int pid = getpid();
|
|
|
|
+ if (no_filter)
|
|
+ return;
|
|
+
|
|
if (filter_task)
|
|
add_filter_pid(pid, 0);
|
|
|
|
@@ -4343,9 +4347,9 @@ void update_first_instance(struct buffer_instance *instance, int topt)
|
|
}
|
|
|
|
enum {
|
|
-
|
|
- OPT_quiet = 246,
|
|
- OPT_debug = 247,
|
|
+ OPT_quiet = 245,
|
|
+ OPT_debug = 246,
|
|
+ OPT_no_filter = 247,
|
|
OPT_max_graph_depth = 248,
|
|
OPT_tsoffset = 249,
|
|
OPT_bycomm = 250,
|
|
@@ -4592,6 +4596,7 @@ static void parse_record_options(int argc,
|
|
{"by-comm", no_argument, NULL, OPT_bycomm},
|
|
{"ts-offset", required_argument, NULL, OPT_tsoffset},
|
|
{"max-graph-depth", required_argument, NULL, OPT_max_graph_depth},
|
|
+ {"no-filter", no_argument, NULL, OPT_no_filter},
|
|
{"debug", no_argument, NULL, OPT_debug},
|
|
{"quiet", no_argument, NULL, OPT_quiet},
|
|
{"help", no_argument, NULL, '?'},
|
|
@@ -4866,6 +4871,9 @@ static void parse_record_options(int argc,
|
|
if (!ctx->max_graph_depth)
|
|
die("Could not allocate option");
|
|
break;
|
|
+ case OPT_no_filter:
|
|
+ no_filter = true;
|
|
+ break;
|
|
case OPT_debug:
|
|
debug = 1;
|
|
break;
|
|
diff --git a/trace-usage.c b/trace-usage.c
|
|
index 10f737b340df..dc73d4d90688 100644
|
|
--- a/trace-usage.c
|
|
+++ b/trace-usage.c
|
|
@@ -56,6 +56,7 @@ static struct usage_help usage_help[] = {
|
|
" --func-stack perform a stack trace for function tracer\n"
|
|
" (use with caution)\n"
|
|
" --max-graph-depth limit function_graph depth\n"
|
|
+ " --no-filter include trace-cmd threads in the trace\n"
|
|
},
|
|
{
|
|
"start",
|
|
--
|
|
2.20.1
|
|
|