perf record: Default -t option to no inheritance
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 18 Nov 2013 09:55:57 +0000 (11:55 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 27 Nov 2013 17:58:36 +0000 (14:58 -0300)
The change to per-cpu mmaps causes the -p, -t and -u options now to have
inheritance enabled by default.  Change that back to no inheritance but
for the -t option only.

Requested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1384768557-23331-5-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Documentation/perf-record.txt
tools/perf/builtin-record.c
tools/perf/perf.h

index 6ac867e7667f4251875ac0fc90e60b16b5f2fbd6..c407897f04359c9e253fbcb27368926419aced51 100644 (file)
@@ -57,6 +57,8 @@ OPTIONS
 -t::
 --tid=::
         Record events on existing thread ID (comma separated list).
+        This option also disables inheritance by default.  Enable it by adding
+        --inherit.
 
 -u::
 --uid=::
index f5b18b8fe8c98020e0d90506fd12fb31be4cfbc1..65615a8bc25e7ff02a1a96f78114decd54df6212 100644 (file)
@@ -843,8 +843,9 @@ const struct option record_options[] = {
        OPT_U64('c', "count", &record.opts.user_interval, "event period to sample"),
        OPT_STRING('o', "output", &record.file.path, "file",
                    "output file name"),
-       OPT_BOOLEAN('i', "no-inherit", &record.opts.no_inherit,
-                   "child tasks do not inherit counters"),
+       OPT_BOOLEAN_SET('i', "no-inherit", &record.opts.no_inherit,
+                       &record.opts.no_inherit_set,
+                       "child tasks do not inherit counters"),
        OPT_UINTEGER('F', "freq", &record.opts.user_freq, "profile at this frequency"),
        OPT_CALLBACK('m', "mmap-pages", &record.opts.mmap_pages, "pages",
                     "number of mmap data pages",
@@ -939,6 +940,9 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
                goto out_symbol_exit;
        }
 
+       if (rec->opts.target.tid && !rec->opts.no_inherit_set)
+               rec->opts.no_inherit = true;
+
        err = target__validate(&rec->opts.target);
        if (err) {
                target__strerror(&rec->opts.target, err, errbuf, BUFSIZ);
index b079304bd53daa87ca61a428f4611046741f58e6..b23fed5275149adfb1b5f826730341ef6d63f8be 100644 (file)
@@ -254,6 +254,7 @@ struct perf_record_opts {
        bool         inherit_stat;
        bool         no_delay;
        bool         no_inherit;
+       bool         no_inherit_set;
        bool         no_samples;
        bool         raw_samples;
        bool         sample_address;