Messages in this thread | | | Date | Thu, 12 Jan 2017 09:25:51 +0100 | From | Ingo Molnar <> | Subject | Re: [GIT PULL 00/13] perf/core improvements and fixes |
| |
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo, > > Please consider pulling, > > - Arnaldo > > Test results at the end of this message, as usual. > > * The following description will move to the end in the next pull requests * > > The first ones are container (docker) based builds of tools/perf with and > without libelf support, objtool where it is supported and samples/bpf/, ditto. > > Several are cross builds, the ones with -x-ARCH, and the android one, and those > may not have all the features built, due to lack of multi-arch devel packages, > available and being used so far on just a few, like > debian:experimental-x-{arm64,mipsel}. > > The 'perf test' one will perform a variety of tests exercising > tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands > with a variety of command line event specifications to then intercept the > sys_perf_event syscall to check that the perf_event_attr fields are set up as > expected, among a variety of other unit tests. > > Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/ > with a variety of feature sets, exercising the build with an incomplete set of > features as well as with a complete one. It is planned to have it run on each > of the containers mentioned above, using some container orchestration > infrastructure. Get in contact if interested in helping having this in place. > > The following changes since commit ad5013d5699d30ded0cdbbc68b93b2aa28222c6e: > > perf/x86/intel: Use ULL constant to prevent undefined shift behaviour (2017-01-11 16:43:30 +0100) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.11-20170111 > > for you to fetch changes up to 675f52b23743f396c585fc9d135435be37f320d8: > > tools: Sync x86's vmx.h with the kernel (2017-01-11 16:48:02 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > New features: > > - Add more triggers to switch the output file (perf.data.TIMESTAMP). > > Now, in addition to switching to a different output file when > receiving a SIGUSR2, one can also specify file size and time based > triggers: > > perf record -a --switch-output=signal > > is equivalent to what we had before: > > perf record -a --switch-output > > While we can also ask for the file to be "sliced" by size, taking > into account that that will happen only when we get woken up by > the kernel, i.e. one has to take into account the --mmap-pages (the > size of the perf mmap ring buffer): > > perf record -a --switch-output=2G > > will break the perf.data output into multiple files limited to 2GB > of samples, right when generating the output. > > For time based samples, alert() will be used, so to have 1 minute > limited perf.data output files: > > perf record -a --switch-output=1m > > (Jiri Olsa) > > - Remove the need to use -e only for syscalls and --event only for > tracepoints/HW/SW/etc events, i.e. now one can use: > > perf trace -e nanosleep,futex,sched:sched_switch ./workload > > or: > > perf trace --event nanosleep,futex,sched:sched_switch ./workload > > And have it tracing raw_syscalls:sys_{enter,exit} for the nanosleep > and futex syscalls, formatting those as strace does while also > tracing sched:sched_switch, ordering it all into one strace like > output. > > Using '!' as the first character in the -e/--event argument remains > a way to negate the list of syscalls, i.e. all syscalls except for > the ones specified, doesn't affect the other kinds of events. > > E.g: > > [root@jouet ~] # perf trace -e sched:sched_switch,nanosleep usleep 1 > 0.000 ( 0.028 ms): usleep/28150 nanosleep(rqtp: 0x7ffe4201b9f0) ... > 0.028 ( ): sched:sched_switch:usleep:28150 [120] S ==> swapper/0:0 [120]) > 0.000 ( 0.065 ms): usleep/28150 ... [continued]: nanosleep()) = 0 > [root@jouet ~]# > > (Arnaldo Carvalho de Melo) > > - 'perf kallsyms' toy tool to look for extended symbol information on > the running kernel and demonstrate the machine/thread/symbol APIs for > use in other tools, such as 'perf probe' (Arnaldo Carvalho de Melo) > > Infrastructure: > > - Add missing linux/kernel.h include to subcmd.h (Arnaldo Carvalho de Melo) > tools: Sync x86's vmx.h with the kernel > > - Create libdir directory before installing libperf-jvmti.so (Laura Abbott) > > - Fix typo in perf_evlist__start_workload() (Soramichi Akiyama) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (5): > tools lib subcmd: Add missing linux/kernel.h include to subcmd.h > perf machine: Add a kallsyms loading constructor > perf kallsyms: Introduce tool to look for extended symbol information on the running kernel > perf trace: Allow specifying list of syscalls and events in -e/--expr/--event > tools: Sync x86's vmx.h with the kernel > > Jiri Olsa (6): > perf tools: Add unit_number__scnprintf function > perf record: Add struct switch_output > perf record: Change switch-output option to take optional argument > perf record: Add switch-output size option argument > perf record: Add switch-output size warning > perf record: Add switch-output time option argument > > Laura Abbott (1): > perf jvmti: Create libdir directory before installing libperf-jvmti.so > > Soramichi Akiyama (1): > perf evlist: Fix typo in perf_evlist__start_workload() > > tools/arch/x86/include/uapi/asm/vmx.h | 5 + > tools/lib/subcmd/parse-options.h | 1 + > tools/perf/Build | 1 + > tools/perf/Documentation/perf-kallsyms.txt | 24 +++++ > tools/perf/Documentation/perf-record.txt | 14 ++- > tools/perf/Documentation/perf-trace.txt | 8 +- > tools/perf/Makefile.perf | 1 + > tools/perf/builtin-help.c | 2 +- > tools/perf/builtin-kallsyms.c | 67 +++++++++++++ > tools/perf/builtin-record.c | 154 ++++++++++++++++++++++++++--- > tools/perf/builtin-trace.c | 120 ++++++++++++++++------ > tools/perf/builtin.h | 1 + > tools/perf/command-list.txt | 1 + > tools/perf/perf.c | 1 + > tools/perf/tests/Build | 1 + > tools/perf/tests/builtin-test.c | 4 + > tools/perf/tests/tests.h | 1 + > tools/perf/tests/unit_number__scnprintf.c | 37 +++++++ > tools/perf/util/evlist.c | 12 ++- > tools/perf/util/evlist.h | 2 + > tools/perf/util/machine.c | 19 ++++ > tools/perf/util/machine.h | 1 + > tools/perf/util/util.c | 13 +++ > tools/perf/util/util.h | 1 + > 24 files changed, 439 insertions(+), 52 deletions(-) > create mode 100644 tools/perf/Documentation/perf-kallsyms.txt > create mode 100644 tools/perf/builtin-kallsyms.c > create mode 100644 tools/perf/tests/unit_number__scnprintf.c
Pulled, thanks a lot Arnaldo!
Ingo
| |