summaryrefslogtreecommitdiff
path: root/tools/perf/builtin-record.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2019-02-15 10:19:11 +0100
committerIngo Molnar <mingo@kernel.org>2019-02-15 10:19:11 +0100
commit43f4e6279f05eefac058a3524e184cecae463bfe (patch)
treea29a7fe7e0f187fd7eecc3bbf3dc4daee3fddc14 /tools/perf/builtin-record.c
parent02106f883cd745523f7766d90a739f983f19e650 (diff)
parent44ec8396e2dadf0f0806767642cfac9e04d0d5b1 (diff)
Merge tag 'perf-core-for-mingo-5.1-20190214' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: perf list: Jiri Olsa: - Display metric expressions for --details option perf record: Alexey Budankov: - Implement --affinity=node|cpu option, leftover, the other patches in this kit were already applied. perf trace: Arnaldo Carvalho de Melo: - Fix segfaults due to not properly handling negative file descriptor syscall args. - Fix segfault related to the 'waitid' 'options' prefix showing logic. - Filter out 'gnome-terminal*' if it is a parent of 'perf trace', to reduce the syscall feedback loop in system wide sessions. BPF: Song Liu: - Silence "Couldn't synthesize bpf events" warning for EPERM. Build system: Arnaldo Carvalho de Melo: - Fix the test-all.c feature detection fast path that was broken for quite a while leading to longer build times. Event parsing: Jiri Olsa: - Fix legacy events symbol separator parsing cs-etm: Mathieu Poirier: - Fix some error path return errors and plug some memory leaks. - Add proper header file for symbols - Remove unused structure fields. - Modularize auxtrace_buffer fetch, decoder and packet processing loop. Vendor events: Paul Clarke: - Add assorted metrics for the Power8 and Power9 architectures. perf report: Thomas Richter: - Add s390 diagnostic sampling descriptor size Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/builtin-record.c')
-rw-r--r--tools/perf/builtin-record.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 3fdfbaebd95e..6c3719ac901d 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -1656,6 +1656,21 @@ static int parse_clockid(const struct option *opt, const char *str, int unset)
return -1;
}
+static int record__parse_affinity(const struct option *opt, const char *str, int unset)
+{
+ struct record_opts *opts = (struct record_opts *)opt->value;
+
+ if (unset || !str)
+ return 0;
+
+ if (!strcasecmp(str, "node"))
+ opts->affinity = PERF_AFFINITY_NODE;
+ else if (!strcasecmp(str, "cpu"))
+ opts->affinity = PERF_AFFINITY_CPU;
+
+ return 0;
+}
+
static int record__parse_mmap_pages(const struct option *opt,
const char *str,
int unset __maybe_unused)
@@ -1964,6 +1979,9 @@ static struct option __record_options[] = {
&nr_cblocks_default, "n", "Use <n> control blocks in asynchronous trace writing mode (default: 1, max: 4)",
record__aio_parse),
#endif
+ OPT_CALLBACK(0, "affinity", &record.opts, "node|cpu",
+ "Set affinity mask of trace reading thread to NUMA node cpu mask or cpu of processed mmap buffer",
+ record__parse_affinity),
OPT_END()
};