Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melowrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > Test results at the end of this message, as usual. > > The following changes since commit ffa86c2f1a8862cf58c873f6f14d4b2c3250fb48: > > Merge tag 'perf-core-for-mingo-4.12-20170314' of > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core > (2017-03-15 19:27:27 +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.12-20170316 > > for you to fetch changes up to 61f35d750683b21e9e3836e309195c79c1daed74: > > uprobes: Default UPROBES_EVENTS to Y (2017-03-16 12:42:02 -0300) > > > perf/core improvements and fixes: > > New features: > > - Add 'brstackinsn' field in 'perf script' to reuse the x86 instruction > decoder used in the Intel PT code to study hot paths to samples (Andi Kleen) > > Kernel: > > - Default UPROBES_EVENTS to Y (Alexei Starovoitov) > > - Fix check for kretprobe offset within function entry (Naveen N. Rao) > > Infrastructure: > > - Introduce util func is_sdt_event() (Ravi Bangoria) > > - Make perf_event__synthesize_mmap_events() scale on older kernels where > reading /proc/pid/maps is way slower than reading /proc/pid/task/pid/maps > (Stephane Eranian) > > Signed-off-by: Arnaldo Carvalho de Melo > > > Andi Kleen (1): > perf script: Add 'brstackinsn' for branch stacks > > Arnaldo Carvalho de Melo (2): > tools headers: Sync {tools/,}arch/x86/include/asm/cpufeatures.h > uprobes: Default UPROBES_EVENTS to Y > > Naveen N. Rao (1): > trace/kprobes: Fix check for kretprobe offset within function entry > > Ravi Bangoria (1): > perf probe: Introduce util func is_sdt_event() > > Stephane Eranian (1): > perf tools: Make perf_event__synthesize_mmap_events() scale > > include/linux/kprobes.h| 1 + > kernel/kprobes.c | 40 ++-- > kernel/trace/Kconfig | 2 +- > kernel/trace/trace_kprobe.c| 2 +- > tools/arch/x86/include/asm/cpufeatures.h | 5 +- > tools/perf/Documentation/perf-script.txt | 13 +- > tools/perf/builtin-script.c| 264 > - > tools/perf/util/Build | 1 + > tools/perf/util/dump-insn.c| 14 ++ > tools/perf/util/dump-insn.h| 22 ++ > tools/perf/util/event.c| 4 +- > .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 24 ++ > tools/perf/util/parse-events.h | 20 ++ > tools/perf/util/probe-event.c | 9 +- > 14 files changed, 381 insertions(+), 40 deletions(-) > create mode 100644 tools/perf/util/dump-insn.c > create mode 100644 tools/perf/util/dump-insn.h Pulled, thanks a lot Arnaldo! Ingo
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > Test results at the end of this message, as usual. > > The following changes since commit ffa86c2f1a8862cf58c873f6f14d4b2c3250fb48: > > Merge tag 'perf-core-for-mingo-4.12-20170314' of > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core > (2017-03-15 19:27:27 +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.12-20170316 > > for you to fetch changes up to 61f35d750683b21e9e3836e309195c79c1daed74: > > uprobes: Default UPROBES_EVENTS to Y (2017-03-16 12:42:02 -0300) > > > perf/core improvements and fixes: > > New features: > > - Add 'brstackinsn' field in 'perf script' to reuse the x86 instruction > decoder used in the Intel PT code to study hot paths to samples (Andi Kleen) > > Kernel: > > - Default UPROBES_EVENTS to Y (Alexei Starovoitov) > > - Fix check for kretprobe offset within function entry (Naveen N. Rao) > > Infrastructure: > > - Introduce util func is_sdt_event() (Ravi Bangoria) > > - Make perf_event__synthesize_mmap_events() scale on older kernels where > reading /proc/pid/maps is way slower than reading /proc/pid/task/pid/maps > (Stephane Eranian) > > Signed-off-by: Arnaldo Carvalho de Melo > > > Andi Kleen (1): > perf script: Add 'brstackinsn' for branch stacks > > Arnaldo Carvalho de Melo (2): > tools headers: Sync {tools/,}arch/x86/include/asm/cpufeatures.h > uprobes: Default UPROBES_EVENTS to Y > > Naveen N. Rao (1): > trace/kprobes: Fix check for kretprobe offset within function entry > > Ravi Bangoria (1): > perf probe: Introduce util func is_sdt_event() > > Stephane Eranian (1): > perf tools: Make perf_event__synthesize_mmap_events() scale > > include/linux/kprobes.h| 1 + > kernel/kprobes.c | 40 ++-- > kernel/trace/Kconfig | 2 +- > kernel/trace/trace_kprobe.c| 2 +- > tools/arch/x86/include/asm/cpufeatures.h | 5 +- > tools/perf/Documentation/perf-script.txt | 13 +- > tools/perf/builtin-script.c| 264 > - > tools/perf/util/Build | 1 + > tools/perf/util/dump-insn.c| 14 ++ > tools/perf/util/dump-insn.h| 22 ++ > tools/perf/util/event.c| 4 +- > .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 24 ++ > tools/perf/util/parse-events.h | 20 ++ > tools/perf/util/probe-event.c | 9 +- > 14 files changed, 381 insertions(+), 40 deletions(-) > create mode 100644 tools/perf/util/dump-insn.c > create mode 100644 tools/perf/util/dump-insn.h Pulled, thanks a lot Arnaldo! Ingo
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit bac2e4a96d1c0bcce5e9654dcc902f75576b9b03: > > Merge tag 'perf-core-for-mingo' of > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core > (2015-08-31 10:25:46 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git > tags/perf-core-for-mingo > > for you to fetch changes up to bcc84ec65ad1bd9f777a1fade6f8e5e0c5808fa5: > > perf record: Add ability to name registers to record (2015-08-31 18:01:33 > -0300) > > > perf/core improvements and fixes: > > User visible: > > - Add ability to specify to select which registers to record, > to reduce the size of perf.data files, and also allow printing > the registers in 'perf script': (Stephane Eranian) > > # perf record --intr-regs=AX,SP usleep 1 > [ perf record: Woken up 1 times to write data ] > [ perf record: Captured and wrote 0.016 MB perf.data (8 samples) ] > # perf script -F ip,sym,iregs | tail -5 > 8105f42a native_write_msr_safe AX:0xfSP:0x8802629c3c00 > 8105f42a native_write_msr_safe AX:0xfSP:0x8802629c3c00 > 81761ac0 _raw_spin_lock AX:0x8801bfcf8020 > SP:0x8802629c3ce8 > 81202bf8 __vma_adjust_trans_huge AX:0x7ffc7520 > SP:0x8802629c3b30 > 8122b089 dput AX:0x101SP:0x8802629c3c78 > # > > Infrastructure: > > - Open event on evsel cpus and threads (Kan Liang) > > - New bpf API to get name from a BPF object (Wang Nan) > > Build fixes: > > - Fix build on powerpc broken by pt/bts (Adrian Hunter) > > Signed-off-by: Arnaldo Carvalho de Melo > > > Adrian Hunter (1): > perf tools: Fix build on powerpc broken by pt/bts > > Kan Liang (1): > perf evlist: Open event on evsel cpus and threads > > Stephane Eranian (3): > perf script: Enable printing of interrupted machine state > perf/x86: Add list of register names > perf record: Add ability to name registers to record > > Wang Nan (1): > bpf tools: New API to get name from a BPF object > > tools/lib/bpf/libbpf.c | 25 +++- > tools/lib/bpf/libbpf.h | 4 +- > tools/perf/Documentation/perf-record.txt | 6 +- > tools/perf/Documentation/perf-script.txt | 2 +- > tools/perf/arch/x86/util/Build | 1 + > tools/perf/arch/x86/util/perf_regs.c | 30 + > tools/perf/builtin-record.c| 9 ++- > tools/perf/builtin-script.c| 31 +- > tools/perf/perf.h | 2 +- > tools/perf/tests/llvm.c| 2 +- > tools/perf/util/Build | 2 + > tools/perf/util/evlist.c | 4 ++ > tools/perf/util/evsel.c| 2 +- > .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 3 + > tools/perf/util/parse-regs-options.c | 71 > ++ > tools/perf/util/parse-regs-options.h | 5 ++ > tools/perf/util/perf_regs.h| 7 +++ > 17 files changed, 193 insertions(+), 13 deletions(-) > create mode 100644 tools/perf/arch/x86/util/perf_regs.c > create mode 100644 tools/perf/util/parse-regs-options.c > create mode 100644 tools/perf/util/parse-regs-options.h Pulled into tip:perf/urgent, thanks a lot Arnaldo! Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melowrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit bac2e4a96d1c0bcce5e9654dcc902f75576b9b03: > > Merge tag 'perf-core-for-mingo' of > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core > (2015-08-31 10:25:46 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git > tags/perf-core-for-mingo > > for you to fetch changes up to bcc84ec65ad1bd9f777a1fade6f8e5e0c5808fa5: > > perf record: Add ability to name registers to record (2015-08-31 18:01:33 > -0300) > > > perf/core improvements and fixes: > > User visible: > > - Add ability to specify to select which registers to record, > to reduce the size of perf.data files, and also allow printing > the registers in 'perf script': (Stephane Eranian) > > # perf record --intr-regs=AX,SP usleep 1 > [ perf record: Woken up 1 times to write data ] > [ perf record: Captured and wrote 0.016 MB perf.data (8 samples) ] > # perf script -F ip,sym,iregs | tail -5 > 8105f42a native_write_msr_safe AX:0xfSP:0x8802629c3c00 > 8105f42a native_write_msr_safe AX:0xfSP:0x8802629c3c00 > 81761ac0 _raw_spin_lock AX:0x8801bfcf8020 > SP:0x8802629c3ce8 > 81202bf8 __vma_adjust_trans_huge AX:0x7ffc7520 > SP:0x8802629c3b30 > 8122b089 dput AX:0x101SP:0x8802629c3c78 > # > > Infrastructure: > > - Open event on evsel cpus and threads (Kan Liang) > > - New bpf API to get name from a BPF object (Wang Nan) > > Build fixes: > > - Fix build on powerpc broken by pt/bts (Adrian Hunter) > > Signed-off-by: Arnaldo Carvalho de Melo > > > Adrian Hunter (1): > perf tools: Fix build on powerpc broken by pt/bts > > Kan Liang (1): > perf evlist: Open event on evsel cpus and threads > > Stephane Eranian (3): > perf script: Enable printing of interrupted machine state > perf/x86: Add list of register names > perf record: Add ability to name registers to record > > Wang Nan (1): > bpf tools: New API to get name from a BPF object > > tools/lib/bpf/libbpf.c | 25 +++- > tools/lib/bpf/libbpf.h | 4 +- > tools/perf/Documentation/perf-record.txt | 6 +- > tools/perf/Documentation/perf-script.txt | 2 +- > tools/perf/arch/x86/util/Build | 1 + > tools/perf/arch/x86/util/perf_regs.c | 30 + > tools/perf/builtin-record.c| 9 ++- > tools/perf/builtin-script.c| 31 +- > tools/perf/perf.h | 2 +- > tools/perf/tests/llvm.c| 2 +- > tools/perf/util/Build | 2 + > tools/perf/util/evlist.c | 4 ++ > tools/perf/util/evsel.c| 2 +- > .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 3 + > tools/perf/util/parse-regs-options.c | 71 > ++ > tools/perf/util/parse-regs-options.h | 5 ++ > tools/perf/util/perf_regs.h| 7 +++ > 17 files changed, 193 insertions(+), 13 deletions(-) > create mode 100644 tools/perf/arch/x86/util/perf_regs.c > create mode 100644 tools/perf/util/parse-regs-options.c > create mode 100644 tools/perf/util/parse-regs-options.h Pulled into tip:perf/urgent, thanks a lot Arnaldo! Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo wrote: > Em Fri, Jun 05, 2015 at 02:05:50PM +0200, Ingo Molnar escreveu: > > * Wangnan (F) wrote: > > > > One problem I can find is that, the wrapper will make perf depend on > > > llvm. I > > > don't think the compiler will be deployed in production environments... > > > And > > > also, the embedded case... > > > What dependencies are there? > > > On the usage side there should be very few outright dependencies: if the > > llvm > > binary is not available, or doesn't support what you need, or there's no > > runtime > > environment you can use to build the bytecode, you should display an > > informative > > error message so that the user knows what is missing and how to install it. > > Right, something like: > > [acme@zoo ~]$ perf trace -e nanosleep usleep 1 > Error:No permissions to read > /sys/kernel/debug/tracing/events/raw_syscalls/sys_(enter|exit) > Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug' > [acme@zoo ~]$ sudo mount -o remount,mode=755 /sys/kernel/debug > [sudo] password for acme: > [acme@zoo ~]$ perf trace -e nanosleep usleep 1 > 0.565 ( 0.060 ms): usleep/17648 nanosleep(rqtp: 0x7fff22baebf0) = 0 > [acme@zoo ~]$ perf trace --all-cpus > Error:Operation not permitted. > Hint: Check /proc/sys/kernel/perf_event_paranoid setting. > Hint: For system wide tracing it needs to be set to -1. > Hint: Try: 'sudo sh -c "echo -1 > /proc/sys/kernel/perf_event_paranoid"' > Hint: The current value is 1. > [acme@zoo ~]$ > [acme@zoo ~]$ trace -a -e poll usleep 1 > [acme@zoo ~]$ trace -a -e poll usleep 1 > 0.041 ( 0.000 ms): firefox/1458 ... [continued]: poll()) = 1 > 0.267 ( 0.003 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 > Timeout > 0.275 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 > Timeout > 0.283 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 > Timeout > 0.979 ( 0.000 ms): gnome-terminal/2572 ... [continued]: poll()) = 1 > 1.056 ( 0.768 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5, > timeout_msecs: 4294967295) ... > 1.065 ( 0.009 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, > timeout_msecs: 10) = 1 > 1.087 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, > timeout_msecs: 10) = 2 > 1.132 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, > timeout_msecs: 10) = 1 > 1.161 ( 0.013 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, > timeout_msecs: 10) = 1 > [acme@zoo ~]$ > > I.e. Explain the mistake and provide a hint to solve it, as close to the > actual > commands needed to perform such corrective/enabling action as possible. Yeah, I absolutely love such tooling hints. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo a...@kernel.org wrote: Em Fri, Jun 05, 2015 at 02:05:50PM +0200, Ingo Molnar escreveu: * Wangnan (F) wangn...@huawei.com wrote: SNIP One problem I can find is that, the wrapper will make perf depend on llvm. I don't think the compiler will be deployed in production environments... And also, the embedded case... What dependencies are there? On the usage side there should be very few outright dependencies: if the llvm binary is not available, or doesn't support what you need, or there's no runtime environment you can use to build the bytecode, you should display an informative error message so that the user knows what is missing and how to install it. Right, something like: [acme@zoo ~]$ perf trace -e nanosleep usleep 1 Error:No permissions to read /sys/kernel/debug/tracing/events/raw_syscalls/sys_(enter|exit) Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug' [acme@zoo ~]$ sudo mount -o remount,mode=755 /sys/kernel/debug [sudo] password for acme: [acme@zoo ~]$ perf trace -e nanosleep usleep 1 0.565 ( 0.060 ms): usleep/17648 nanosleep(rqtp: 0x7fff22baebf0) = 0 [acme@zoo ~]$ perf trace --all-cpus Error:Operation not permitted. Hint: Check /proc/sys/kernel/perf_event_paranoid setting. Hint: For system wide tracing it needs to be set to -1. Hint: Try: 'sudo sh -c echo -1 /proc/sys/kernel/perf_event_paranoid' Hint: The current value is 1. [acme@zoo ~]$ [acme@zoo ~]$ trace -a -e poll usleep 1 [acme@zoo ~]$ trace -a -e poll usleep 1 0.041 ( 0.000 ms): firefox/1458 ... [continued]: poll()) = 1 0.267 ( 0.003 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.275 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.283 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.979 ( 0.000 ms): gnome-terminal/2572 ... [continued]: poll()) = 1 1.056 ( 0.768 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5, timeout_msecs: 4294967295) ... 1.065 ( 0.009 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 1.087 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 2 1.132 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 1.161 ( 0.013 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 [acme@zoo ~]$ I.e. Explain the mistake and provide a hint to solve it, as close to the actual commands needed to perform such corrective/enabling action as possible. Yeah, I absolutely love such tooling hints. Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
Em Fri, Jun 05, 2015 at 04:53:03PM +0800, Wangnan (F) escreveu: > On 2015/6/5 14:41, Ingo Molnar wrote: > >* Alexei Starovoitov wrote: > >>On 6/4/15 7:04 AM, Ingo Molnar wrote: > >In fact I'm NAK-ing the whole .o based interface until the .c interface is > >made > >the _primary_ one and works well and until I see that you have thought > >through > >basic usability questions... > OK. Let's start making a nice UI. > At this stage, what about wrapping current clang and llc workflow into perf, > let it call them to compile '.c' scripts? This is the way 'perf annotate' > using > objdump. I can do this job, but firstly I'd like to know people's opinion on Right, no need for, at a first step, to save this into a cache, or use libraries, etc, just automate the bpf.c into bpf.o, load it and use it as an event. > it, and the value of the wrapper if Alexei Starovoitov's dynamic compiler > shared object is coming. No need to wait for that, when it comes we can use it, but Ingo established as the door for this to be accepted is that we could use: perf record -e foo.c usleep Right? > Following functions will be added: > > - perf searches clang and llc under current $PATH, Good for a first step > - Users are allowed to pass the position of those programs, >if perf failed to find the automatically, I would leave all this configurabilty for later, stating that it has to be in the PATH should be ok for a first step. > - Users are allowed to pass extra compiling options to clang and llc, like >include directories, For later too? > - 'perf record' automatically calls them if a '.c' is passed using > '--event'. Right. > - 'perf bpf compile' command will be added to compile a '.c' find into > '.o', for later? I.e. 'perf record -e foo.c usleep' could start by generating the foo.o and not deleting it, so: perf record -e foo.c usleep Followed by: perf record -e foo.o usleep Would work, the later would be like a quick hack so that we could have access to a pre-compiled foo.o quickly, at this introductory stage. > Further, basic header files should be shipped with kernel headers. > > User interface update: > > - --llc, --clang, --llc-opt and --clang-opt option will be added to 'perf > record' >to indicate the position and extra options to them. Ideally they can be > leave >blank. Couldn't this be left to a section in a .perfconfig file to avoid having so many command line options? We could have one of those files per "project", after we add a --config option to 'perf record', to override whatever it finds in the config file search it already does, i.e.: [clang] path = /a/b/clang opt = -a -b -c -d [llc] path = /d/e/llc opt = -r -t -y -u But even this can be left for a second step. > - 'perf bpf compile' will be added. > One problem I can find is that, the wrapper will make perf depend on > llvm. I don't think the compiler will be deployed in production > environments... And also, the embedded case... Well, we can always build a subset of perf, using the command line options to disable certain features. - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
Em Fri, Jun 05, 2015 at 02:05:50PM +0200, Ingo Molnar escreveu: > * Wangnan (F) wrote: > > One problem I can find is that, the wrapper will make perf depend on llvm. > > I > > don't think the compiler will be deployed in production environments... And > > also, the embedded case... > What dependencies are there? > On the usage side there should be very few outright dependencies: if the llvm > binary is not available, or doesn't support what you need, or there's no > runtime > environment you can use to build the bytecode, you should display an > informative > error message so that the user knows what is missing and how to install it. Right, something like: [acme@zoo ~]$ perf trace -e nanosleep usleep 1 Error: No permissions to read /sys/kernel/debug/tracing/events/raw_syscalls/sys_(enter|exit) Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug' [acme@zoo ~]$ sudo mount -o remount,mode=755 /sys/kernel/debug [sudo] password for acme: [acme@zoo ~]$ perf trace -e nanosleep usleep 1 0.565 ( 0.060 ms): usleep/17648 nanosleep(rqtp: 0x7fff22baebf0) = 0 [acme@zoo ~]$ perf trace --all-cpus Error: Operation not permitted. Hint: Check /proc/sys/kernel/perf_event_paranoid setting. Hint: For system wide tracing it needs to be set to -1. Hint: Try: 'sudo sh -c "echo -1 > /proc/sys/kernel/perf_event_paranoid"' Hint: The current value is 1. [acme@zoo ~]$ [acme@zoo ~]$ trace -a -e poll usleep 1 [acme@zoo ~]$ trace -a -e poll usleep 1 0.041 ( 0.000 ms): firefox/1458 ... [continued]: poll()) = 1 0.267 ( 0.003 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.275 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.283 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.979 ( 0.000 ms): gnome-terminal/2572 ... [continued]: poll()) = 1 1.056 ( 0.768 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5, timeout_msecs: 4294967295) ... 1.065 ( 0.009 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 1.087 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 2 1.132 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 1.161 ( 0.013 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 [acme@zoo ~]$ I.e. Explain the mistake and provide a hint to solve it, as close to the actual commands needed to perform such corrective/enabling action as possible. - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Wangnan (F) wrote: > OK. Let's start making a nice UI. Thanks! > [...] > > One problem I can find is that, the wrapper will make perf depend on llvm. I > don't think the compiler will be deployed in production environments... And > also, the embedded case... What dependencies are there? On the usage side there should be very few outright dependencies: if the llvm binary is not available, or doesn't support what you need, or there's no runtime environment you can use to build the bytecode, you should display an informative error message so that the user knows what is missing and how to install it. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/6/5 14:41, Ingo Molnar wrote: * Alexei Starovoitov wrote: On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o There's no confusion here: you guys are trying to sell me what at this stage is incomplete and hard to use, and I'm resisting it as I should! :-) We also have different definitions of 'easily'. It might be 'easy' to type: clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o ... for some tooling developer intimate with eBPF, but to the first time user who found an interesting looking eBPF scriptlet on the net or in the documentation and wants to try his luck? It's absolutely non-obvious! The current usage to get a _minimal_ eBPF script running is non-obvious and obscure to the level of being a show stopper. I don't understand why you guys are even wasting time arguing about it: it's not that hard to auto-build from source code. It's one of the basic features of tooling. If you ever built perf you'll know that typing 'make install' will type in all those quirky build lines automatically for you, without requiring you to perform any other step, no matter how trivial. Doubly annoying, you seem to have the UI principles wrong, you seem to think that a .o is a proper user interface. It absolutely is _not_ okay. The Linux kernel project and as an extension the perf project deals with source code, and I'm 100% suspicious of approaches that somehow think that .o objects are the right UI for _anything_ except temporary files that sometimes show up in object directories... Fix the 'newbie user' UI flow as a _first_ priority, not as a second thought! Every single quirky line or nonsensical option you require a first time user to type halves the number of new users we'll get. You need to understand why dtrace is so popular: - it's bloody easy to use - it's a safe environment you can deploy in critical environments - it's flexible - instrumentation hacks are very easy to share eBPF based scripting got 3 out of those 4 right, but please don't forget item 1 either, because without that we have nothing but a bunch of unusable functionality in the kernel and in tooling that benefits only very few people. Okay? So I think we need to support both 'perf record -e file.[co]' Why do you even need to ask? Of course! Think through how users will meet eBPF scripts and how they will interact with them: - they'll see or download an eBPF scriptlet somewhere and will have a .c file. - ideally there will be built-in eBPF scriptlets just like we have tracing plugins, and there's a good UI to query them and see their description and source code. - then they will want to use it all with the minimum amount of fuss - they don't care how the eBPF scriptlet gets to the kernel: whether the kernel can read and build the .c files, or whether there's some user tooling that turns it into bytecode. Most humans don't read bytecode! - they will absolutely not download random .o's and we should not encourage that in any case - these things should be source code based. These things compile in an eye blink, there's very little reason to ever deal with a .o, except some weird and rare usecases... In fact I'm NAK-ing the whole .o based interface until the .c interface is made the _primary_ one and works well and until I see that you have thought through basic usability questions... OK. Let's start making a nice UI. At this stage, what about wrapping current clang and llc workflow into perf, let it call them to compile '.c' scripts? This is the way 'perf annotate' using objdump. I can do this job, but firstly I'd like to know people's opinion on it, and the value of the wrapper if Alexei Starovoitov's dynamic compiler shared object is coming. Following functions will be added: - perf searches clang and llc under current $PATH, - Users are allowed to pass the position of those programs, if perf failed to find the automatically, - Users are allowed to pass extra compiling options to clang and llc, like include directories, - 'perf record' automatically calls them if a '.c' is passed using '--event'. - 'perf bpf compile' command will be added to compile a '.c' find into '.o', Further, basic header files should be shipped with kernel headers.
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Alexei Starovoitov wrote: > On 6/4/15 7:04 AM, Ingo Molnar wrote: > >>> # perf record -e bpf_source.c cmdline > >>> > >>> to create a eBPF filter from source, > >>> > >>>Use > >>> > >>># perf record -e bpf_object.o cmdline > >>> > >>>to create a eBPF filter from object intermedia. > >>> > >>>Use > >>> > >>># perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o > >>> > >>>to create the .o > >>> > >>>I think this should be enough. Currently only the second case has been > >>>implemented. > > > > So if users cannot actually generate .o files then it's premature to merge > > this in such an incomplete form! > > > > It should be possible to use a feature that we are merging. > > of course it's usable :) There is some confusion here. > To compile .c into .o one can easily use > clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o There's no confusion here: you guys are trying to sell me what at this stage is incomplete and hard to use, and I'm resisting it as I should! :-) We also have different definitions of 'easily'. It might be 'easy' to type: clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o ... for some tooling developer intimate with eBPF, but to the first time user who found an interesting looking eBPF scriptlet on the net or in the documentation and wants to try his luck? It's absolutely non-obvious! The current usage to get a _minimal_ eBPF script running is non-obvious and obscure to the level of being a show stopper. I don't understand why you guys are even wasting time arguing about it: it's not that hard to auto-build from source code. It's one of the basic features of tooling. If you ever built perf you'll know that typing 'make install' will type in all those quirky build lines automatically for you, without requiring you to perform any other step, no matter how trivial. Doubly annoying, you seem to have the UI principles wrong, you seem to think that a .o is a proper user interface. It absolutely is _not_ okay. The Linux kernel project and as an extension the perf project deals with source code, and I'm 100% suspicious of approaches that somehow think that .o objects are the right UI for _anything_ except temporary files that sometimes show up in object directories... Fix the 'newbie user' UI flow as a _first_ priority, not as a second thought! Every single quirky line or nonsensical option you require a first time user to type halves the number of new users we'll get. You need to understand why dtrace is so popular: - it's bloody easy to use - it's a safe environment you can deploy in critical environments - it's flexible - instrumentation hacks are very easy to share eBPF based scripting got 3 out of those 4 right, but please don't forget item 1 either, because without that we have nothing but a bunch of unusable functionality in the kernel and in tooling that benefits only very few people. Okay? > So I think we need to support both 'perf record -e file.[co]' Why do you even need to ask? Of course! Think through how users will meet eBPF scripts and how they will interact with them: - they'll see or download an eBPF scriptlet somewhere and will have a .c file. - ideally there will be built-in eBPF scriptlets just like we have tracing plugins, and there's a good UI to query them and see their description and source code. - then they will want to use it all with the minimum amount of fuss - they don't care how the eBPF scriptlet gets to the kernel: whether the kernel can read and build the .c files, or whether there's some user tooling that turns it into bytecode. Most humans don't read bytecode! - they will absolutely not download random .o's and we should not encourage that in any case - these things should be source code based. These things compile in an eye blink, there's very little reason to ever deal with a .o, except some weird and rare usecases... In fact I'm NAK-ing the whole .o based interface until the .c interface is made the _primary_ one and works well and until I see that you have thought through basic usability questions... Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Alexei Starovoitov a...@plumgrid.com wrote: On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o There's no confusion here: you guys are trying to sell me what at this stage is incomplete and hard to use, and I'm resisting it as I should! :-) We also have different definitions of 'easily'. It might be 'easy' to type: clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o ... for some tooling developer intimate with eBPF, but to the first time user who found an interesting looking eBPF scriptlet on the net or in the documentation and wants to try his luck? It's absolutely non-obvious! The current usage to get a _minimal_ eBPF script running is non-obvious and obscure to the level of being a show stopper. I don't understand why you guys are even wasting time arguing about it: it's not that hard to auto-build from source code. It's one of the basic features of tooling. If you ever built perf you'll know that typing 'make install' will type in all those quirky build lines automatically for you, without requiring you to perform any other step, no matter how trivial. Doubly annoying, you seem to have the UI principles wrong, you seem to think that a .o is a proper user interface. It absolutely is _not_ okay. The Linux kernel project and as an extension the perf project deals with source code, and I'm 100% suspicious of approaches that somehow think that .o objects are the right UI for _anything_ except temporary files that sometimes show up in object directories... Fix the 'newbie user' UI flow as a _first_ priority, not as a second thought! Every single quirky line or nonsensical option you require a first time user to type halves the number of new users we'll get. You need to understand why dtrace is so popular: - it's bloody easy to use - it's a safe environment you can deploy in critical environments - it's flexible - instrumentation hacks are very easy to share eBPF based scripting got 3 out of those 4 right, but please don't forget item 1 either, because without that we have nothing but a bunch of unusable functionality in the kernel and in tooling that benefits only very few people. Okay? So I think we need to support both 'perf record -e file.[co]' Why do you even need to ask? Of course! Think through how users will meet eBPF scripts and how they will interact with them: - they'll see or download an eBPF scriptlet somewhere and will have a .c file. - ideally there will be built-in eBPF scriptlets just like we have tracing plugins, and there's a good UI to query them and see their description and source code. - then they will want to use it all with the minimum amount of fuss - they don't care how the eBPF scriptlet gets to the kernel: whether the kernel can read and build the .c files, or whether there's some user tooling that turns it into bytecode. Most humans don't read bytecode! - they will absolutely not download random .o's and we should not encourage that in any case - these things should be source code based. These things compile in an eye blink, there's very little reason to ever deal with a .o, except some weird and rare usecases... In fact I'm NAK-ing the whole .o based interface until the .c interface is made the _primary_ one and works well and until I see that you have thought through basic usability questions... Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/6/5 14:41, Ingo Molnar wrote: * Alexei Starovoitov a...@plumgrid.com wrote: On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o There's no confusion here: you guys are trying to sell me what at this stage is incomplete and hard to use, and I'm resisting it as I should! :-) We also have different definitions of 'easily'. It might be 'easy' to type: clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o ... for some tooling developer intimate with eBPF, but to the first time user who found an interesting looking eBPF scriptlet on the net or in the documentation and wants to try his luck? It's absolutely non-obvious! The current usage to get a _minimal_ eBPF script running is non-obvious and obscure to the level of being a show stopper. I don't understand why you guys are even wasting time arguing about it: it's not that hard to auto-build from source code. It's one of the basic features of tooling. If you ever built perf you'll know that typing 'make install' will type in all those quirky build lines automatically for you, without requiring you to perform any other step, no matter how trivial. Doubly annoying, you seem to have the UI principles wrong, you seem to think that a .o is a proper user interface. It absolutely is _not_ okay. The Linux kernel project and as an extension the perf project deals with source code, and I'm 100% suspicious of approaches that somehow think that .o objects are the right UI for _anything_ except temporary files that sometimes show up in object directories... Fix the 'newbie user' UI flow as a _first_ priority, not as a second thought! Every single quirky line or nonsensical option you require a first time user to type halves the number of new users we'll get. You need to understand why dtrace is so popular: - it's bloody easy to use - it's a safe environment you can deploy in critical environments - it's flexible - instrumentation hacks are very easy to share eBPF based scripting got 3 out of those 4 right, but please don't forget item 1 either, because without that we have nothing but a bunch of unusable functionality in the kernel and in tooling that benefits only very few people. Okay? So I think we need to support both 'perf record -e file.[co]' Why do you even need to ask? Of course! Think through how users will meet eBPF scripts and how they will interact with them: - they'll see or download an eBPF scriptlet somewhere and will have a .c file. - ideally there will be built-in eBPF scriptlets just like we have tracing plugins, and there's a good UI to query them and see their description and source code. - then they will want to use it all with the minimum amount of fuss - they don't care how the eBPF scriptlet gets to the kernel: whether the kernel can read and build the .c files, or whether there's some user tooling that turns it into bytecode. Most humans don't read bytecode! - they will absolutely not download random .o's and we should not encourage that in any case - these things should be source code based. These things compile in an eye blink, there's very little reason to ever deal with a .o, except some weird and rare usecases... In fact I'm NAK-ing the whole .o based interface until the .c interface is made the _primary_ one and works well and until I see that you have thought through basic usability questions... OK. Let's start making a nice UI. At this stage, what about wrapping current clang and llc workflow into perf, let it call them to compile '.c' scripts? This is the way 'perf annotate' using objdump. I can do this job, but firstly I'd like to know people's opinion on it, and the value of the wrapper if Alexei Starovoitov's dynamic compiler shared object is coming. Following functions will be added: - perf searches clang and llc under current $PATH, - Users are allowed to pass the position of those programs, if perf failed to find the automatically, - Users are allowed to pass extra compiling options to clang and llc, like include directories, - 'perf record' automatically calls them if a '.c' is passed using '--event'. - 'perf bpf compile' command will be added to compile a '.c' find into '.o', Further, basic header files should be shipped with
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Wangnan (F) wangn...@huawei.com wrote: OK. Let's start making a nice UI. Thanks! [...] One problem I can find is that, the wrapper will make perf depend on llvm. I don't think the compiler will be deployed in production environments... And also, the embedded case... What dependencies are there? On the usage side there should be very few outright dependencies: if the llvm binary is not available, or doesn't support what you need, or there's no runtime environment you can use to build the bytecode, you should display an informative error message so that the user knows what is missing and how to install it. Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
Em Fri, Jun 05, 2015 at 02:05:50PM +0200, Ingo Molnar escreveu: * Wangnan (F) wangn...@huawei.com wrote: SNIP One problem I can find is that, the wrapper will make perf depend on llvm. I don't think the compiler will be deployed in production environments... And also, the embedded case... What dependencies are there? On the usage side there should be very few outright dependencies: if the llvm binary is not available, or doesn't support what you need, or there's no runtime environment you can use to build the bytecode, you should display an informative error message so that the user knows what is missing and how to install it. Right, something like: [acme@zoo ~]$ perf trace -e nanosleep usleep 1 Error: No permissions to read /sys/kernel/debug/tracing/events/raw_syscalls/sys_(enter|exit) Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug' [acme@zoo ~]$ sudo mount -o remount,mode=755 /sys/kernel/debug [sudo] password for acme: [acme@zoo ~]$ perf trace -e nanosleep usleep 1 0.565 ( 0.060 ms): usleep/17648 nanosleep(rqtp: 0x7fff22baebf0) = 0 [acme@zoo ~]$ perf trace --all-cpus Error: Operation not permitted. Hint: Check /proc/sys/kernel/perf_event_paranoid setting. Hint: For system wide tracing it needs to be set to -1. Hint: Try: 'sudo sh -c echo -1 /proc/sys/kernel/perf_event_paranoid' Hint: The current value is 1. [acme@zoo ~]$ [acme@zoo ~]$ trace -a -e poll usleep 1 [acme@zoo ~]$ trace -a -e poll usleep 1 0.041 ( 0.000 ms): firefox/1458 ... [continued]: poll()) = 1 0.267 ( 0.003 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.275 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.283 ( 0.001 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5) = 0 Timeout 0.979 ( 0.000 ms): gnome-terminal/2572 ... [continued]: poll()) = 1 1.056 ( 0.768 ms): firefox/1458 poll(ufds: 0x7f43d6ea1340, nfds: 5, timeout_msecs: 4294967295) ... 1.065 ( 0.009 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 1.087 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 2 1.132 ( 0.007 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 1.161 ( 0.013 ms): gnome-terminal/2572 poll(ufds: 0x1934250, nfds: 23, timeout_msecs: 10) = 1 [acme@zoo ~]$ I.e. Explain the mistake and provide a hint to solve it, as close to the actual commands needed to perform such corrective/enabling action as possible. - Arnaldo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
Em Fri, Jun 05, 2015 at 04:53:03PM +0800, Wangnan (F) escreveu: On 2015/6/5 14:41, Ingo Molnar wrote: * Alexei Starovoitov a...@plumgrid.com wrote: On 6/4/15 7:04 AM, Ingo Molnar wrote: In fact I'm NAK-ing the whole .o based interface until the .c interface is made the _primary_ one and works well and until I see that you have thought through basic usability questions... OK. Let's start making a nice UI. At this stage, what about wrapping current clang and llc workflow into perf, let it call them to compile '.c' scripts? This is the way 'perf annotate' using objdump. I can do this job, but firstly I'd like to know people's opinion on Right, no need for, at a first step, to save this into a cache, or use libraries, etc, just automate the bpf.c into bpf.o, load it and use it as an event. it, and the value of the wrapper if Alexei Starovoitov's dynamic compiler shared object is coming. No need to wait for that, when it comes we can use it, but Ingo established as the door for this to be accepted is that we could use: perf record -e foo.c usleep Right? Following functions will be added: - perf searches clang and llc under current $PATH, Good for a first step - Users are allowed to pass the position of those programs, if perf failed to find the automatically, I would leave all this configurabilty for later, stating that it has to be in the PATH should be ok for a first step. - Users are allowed to pass extra compiling options to clang and llc, like include directories, For later too? - 'perf record' automatically calls them if a '.c' is passed using '--event'. Right. - 'perf bpf compile' command will be added to compile a '.c' find into '.o', for later? I.e. 'perf record -e foo.c usleep' could start by generating the foo.o and not deleting it, so: perf record -e foo.c usleep Followed by: perf record -e foo.o usleep Would work, the later would be like a quick hack so that we could have access to a pre-compiled foo.o quickly, at this introductory stage. Further, basic header files should be shipped with kernel headers. User interface update: - --llc, --clang, --llc-opt and --clang-opt option will be added to 'perf record' to indicate the position and extra options to them. Ideally they can be leave blank. Couldn't this be left to a section in a .perfconfig file to avoid having so many command line options? We could have one of those files per project, after we add a --config option to 'perf record', to override whatever it finds in the config file search it already does, i.e.: [clang] path = /a/b/clang opt = -a -b -c -d [llc] path = /d/e/llc opt = -r -t -y -u But even this can be left for a second step. - 'perf bpf compile' will be added. One problem I can find is that, the wrapper will make perf depend on llvm. I don't think the compiler will be deployed in production environments... And also, the embedded case... Well, we can always build a subset of perf, using the command line options to disable certain features. - Arnaldo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 6/4/15 2:48 PM, Masami Hiramatsu wrote: On 2015/06/05 1:22, Alexei Starovoitov wrote: On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o any version of clang is ok, llc needs to be fresh with bpf backend. For a lot of cases kernel headers are not needed, so above will work fine. For our TC examples we recommend to use 'bcc' alias: bcc() { clang -O2 -emit-llvm -c $1 -o - | llc -march=bpf -filetype=obj -o "`basename $1 .c`.o" } then compiling as easy as 'bcc file.c' What Wang mentioned that we're working on is fully integrated 'bcc'. It will use clang/llvm as libraries, so no intermediate steps will be needed, but some folks will always have concerns about ultra-embedded environments where even 20Mb of libllvm.so is too much. So I think we need to support both 'perf record -e file.[co]' I think we'd better make 'perf record -e file.c' default and '-e file.o' should be an option. what do you mean 'default' ? It's a command line :) .c is easier to use of course, no question. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/06/05 1:22, Alexei Starovoitov wrote: > On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. >> So if users cannot actually generate .o files then it's premature to merge >> this in >> such an incomplete form! >> >> It should be possible to use a feature that we are merging. > > of course it's usable :) There is some confusion here. > To compile .c into .o one can easily use > clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o > any version of clang is ok, > llc needs to be fresh with bpf backend. > > For a lot of cases kernel headers are not needed, so above > will work fine. > For our TC examples we recommend to use 'bcc' alias: > bcc() { >clang -O2 -emit-llvm -c $1 -o - | llc -march=bpf -filetype=obj -o > "`basename $1 .c`.o" > } > then compiling as easy as 'bcc file.c' > > What Wang mentioned that we're working on is fully integrated 'bcc'. > It will use clang/llvm as libraries, so no intermediate steps will > be needed, but some folks will always have concerns about > ultra-embedded environments where even 20Mb of libllvm.so is too much. > > So I think we need to support both 'perf record -e file.[co]' I think we'd better make 'perf record -e file.c' default and '-e file.o' should be an option. Thank you, > > -- Masami HIRAMATSU Linux Technology Research Center, System Productivity Research Dept. Center for Technology Innovation - Systems Engineering Hitachi, Ltd., Research & Development Group E-mail: masami.hiramatsu...@hitachi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 6/4/15 7:04 AM, Ingo Molnar wrote: > # perf record -e bpf_source.c cmdline > > to create a eBPF filter from source, > >Use > ># perf record -e bpf_object.o cmdline > >to create a eBPF filter from object intermedia. > >Use > ># perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o > >to create the .o > >I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o any version of clang is ok, llc needs to be fresh with bpf backend. For a lot of cases kernel headers are not needed, so above will work fine. For our TC examples we recommend to use 'bcc' alias: bcc() { clang -O2 -emit-llvm -c $1 -o - | llc -march=bpf -filetype=obj -o "`basename $1 .c`.o" } then compiling as easy as 'bcc file.c' What Wang mentioned that we're working on is fully integrated 'bcc'. It will use clang/llvm as libraries, so no intermediate steps will be needed, but some folks will always have concerns about ultra-embedded environments where even 20Mb of libllvm.so is too much. So I think we need to support both 'perf record -e file.[co]' -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* pi3orama wrote: > > > 发自我的 iPhone > > > 在 2015年6月4日,下午8:40,Ingo Molnar 写道: > > > > > > * Wangnan (F) wrote: > > > >>> So how do you generate the .o? Why cannot the tool, if it sees that the > >>> filter > >>> parameter is eBPF source code, do that automatically? > >> > >> I think compiling on the fly is our goal, and Alexei is working on it. > > > > So what exact command line are you using to create the .o? > > > > What exactly should users type to create a simple eBPF filter profile? > > I have mentioned in previous mail: > > Use > > # perf record -e bpf_source.c cmdline > > to create a eBPF filter from source, > > Use > > # perf record -e bpf_object.o cmdline > > to create a eBPF filter from object intermedia. > > Use > > # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o > > to create the .o > > I think this should be enough. Currently only the second case has been > implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
发自我的 iPhone > 在 2015年6月4日,下午8:40,Ingo Molnar 写道: > > > * Wangnan (F) wrote: > >>> So how do you generate the .o? Why cannot the tool, if it sees that the >>> filter >>> parameter is eBPF source code, do that automatically? >> >> I think compiling on the fly is our goal, and Alexei is working on it. > > So what exact command line are you using to create the .o? > > What exactly should users type to create a simple eBPF filter profile? > I have mentioned in previous mail: Use # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. Thanks. > Thanks, > >Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Wangnan (F) wrote: > > So how do you generate the .o? Why cannot the tool, if it sees that the > > filter > > parameter is eBPF source code, do that automatically? > > I think compiling on the fly is our goal, and Alexei is working on it. So what exact command line are you using to create the .o? What exactly should users type to create a simple eBPF filter profile? Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/6/4 15:21, Ingo Molnar wrote: * Wangnan (F) wrote: On 2015/6/4 13:48, Ingo Molnar wrote: * Arnaldo Carvalho de Melo wrote: Hi Ingo, Please consider applying. One of the next requests probably will have the eBPF work by Wang Nan, but I am still going thru it and want to test it thoroughly. BTW: Have you looked at it lately? It is at: http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com Super summary from the above cover letter: - It enables 'perf record' to filter events using eBPF programs like: # perf record --event bpf-file.o sleep 1 Events are selected and filtered according to definitions in bpf-file.o. Looks useful, but I think the UI needs one more tweak: could you fix it to be able to filter based on the eBPF _source_ file, not just the object file? People want to tweak such filters as they profile, so we should use the eBPF source code as the primary interface. We can compile it internally to the .o just fine. The .o file is a totally uninteresting intermediate product in itself. I.e. we need to first think through such profiling workflows from beginning to end before allowing them upstream. In a private mail Alexei Starovoitov disscussed with me about this. He said that he is working on a shared object which can compile C program into BPF bytecode on the fly. After he done his work, I think perf can support dtrace-like profiling that, users will be able to feed source code to perf directly on cmdline. He said he can release it on June. I added him to the CC-list. However I think the '.o' intermediate is still needed. [...] So how do you generate the .o? Why cannot the tool, if it sees that the filter parameter is eBPF source code, do that automatically? I think compiling on the fly is our goal, and Alexei is working on it. However, it looks like some limitations are still exist. For example, the BPF program may require the definition of kernel structure for it to derefrernce struct pointers. Therefore, the machine on which compiling occures should have kernel header and configuration installed. However, most of production environment doesn't have them for security and reasons. I think BPF should be used to profile not only development environment but also production systems. If we only concern development systems, why not recompiling kernel with stub core or using kProbe modules? What about this: Give perf the ability to generate the '.o' file (to memory or dump to a real file) on development environment. If we are willing to profiling that system, we can make load the generated object into kernel and start trace by (perf record --event bpf_file.c ...). If we are willing to profile systems on which the compiling environment is missing, we can make perf to create a '.o' file (perf bpf compile bpf_file.c -o bpf_file.o) then copy it onto target environment, use perf record --event bpf_file.o ... to filter events. Thank you. I.e. you are making the user jump through hoops for no good reason - that's a bad UI and a bad workflow. Please don't do that! Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Wangnan (F) wrote: > On 2015/6/4 13:48, Ingo Molnar wrote: > >* Arnaldo Carvalho de Melo wrote: > > > >>Hi Ingo, > >> > >>Please consider applying. > >> > >>One of the next requests probably will have the eBPF work by Wang Nan, > >>but I am still going thru it and want to test it thoroughly. > >> > >>BTW: Have you looked at it lately? It is at: > >> > >>http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com > >> > >>Super summary from the above cover letter: > >> > >>- > >>It enables 'perf record' to filter events using eBPF programs like: > >> > >> # perf record --event bpf-file.o sleep 1 > >> > >>Events are selected and filtered according to definitions in bpf-file.o. > >Looks useful, but I think the UI needs one more tweak: could you fix it to > >be able > >to filter based on the eBPF _source_ file, not just the object file? > > > >People want to tweak such filters as they profile, so we should use the eBPF > >source code as the primary interface. We can compile it internally to the .o > >just > >fine. The .o file is a totally uninteresting intermediate product in itself. > > > >I.e. we need to first think through such profiling workflows from beginning > >to end > >before allowing them upstream. > > In a private mail Alexei Starovoitov disscussed with me about this. He said > that > he is working on a shared object which can compile C program into BPF > bytecode > on the fly. After he done his work, I think perf can support dtrace-like > profiling that, users will be able to feed source code to perf directly on > cmdline. He said he can release it on June. I added him to the CC-list. > > However I think the '.o' intermediate is still needed. [...] So how do you generate the .o? Why cannot the tool, if it sees that the filter parameter is eBPF source code, do that automatically? I.e. you are making the user jump through hoops for no good reason - that's a bad UI and a bad workflow. Please don't do that! Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/6/4 13:48, Ingo Molnar wrote: * Arnaldo Carvalho de Melo wrote: Hi Ingo, Please consider applying. One of the next requests probably will have the eBPF work by Wang Nan, but I am still going thru it and want to test it thoroughly. BTW: Have you looked at it lately? It is at: http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com Super summary from the above cover letter: - It enables 'perf record' to filter events using eBPF programs like: # perf record --event bpf-file.o sleep 1 Events are selected and filtered according to definitions in bpf-file.o. Looks useful, but I think the UI needs one more tweak: could you fix it to be able to filter based on the eBPF _source_ file, not just the object file? People want to tweak such filters as they profile, so we should use the eBPF source code as the primary interface. We can compile it internally to the .o just fine. The .o file is a totally uninteresting intermediate product in itself. I.e. we need to first think through such profiling workflows from beginning to end before allowing them upstream. In a private mail Alexei Starovoitov disscussed with me about this. He said that he is working on a shared object which can compile C program into BPF bytecode on the fly. After he done his work, I think perf can support dtrace-like profiling that, users will be able to feed source code to perf directly on cmdline. He said he can release it on June. I added him to the CC-list. However I think the '.o' intermediate is still needed. I'd like to share a real profiling experience using eBPF today, please keep an eye on it. In my experience, since we are using C instead of dtrace, the code piece could be relative complex. Therefore, even if perf is able to compile the C source on the fly, I think user still need to transfer the profiling scripts to the target machine. Therefor, for him, precompiling and do some debugging on a high-end server then transfer it into target machine (like a smartphone) is tolerable, and useful for me. Thank you. - The first two patches from that series are in this pull req, as they just move stuff into tools/include/linux/ from tools/perf/include. Regards, - Arnaldo The following changes since commit 5c9b9bc67c684e40b3a5e7e9facde0fb7200cd8c: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-05-29 20:19:02 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo for you to fetch changes up to 1f121b03d058dd07199d8924373d3c52a207f63b: perf tools: Deal with kernel module names in '[]' correctly (2015-06-03 10:02:38 -0300) perf/core improvements and fixes: User visible: - Fix 'perf probe' segfault when glob matching function without debuginfo (Wang Nan) - Remove newline char when reading event scale and unit (Madhavan Srinivasan) - Deal with kernel module names in '[]' correctly (Wang Nan) Infrastructure: - Fix the search for the kernel DSO on the unified list (Arnaldo Carvalho de Melo) - Move tools/perf/util/include/linux/{kernel.h,list.h,poison.h} to tools/include, to be used in tools/lib/bpf/ (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Arnaldo Carvalho de Melo (1): perf machine: Fix the search for the kernel DSO on the unified list Madhavan Srinivasan (1): perf tools: Remove newline char when reading event scale and unit Wang Nan (4): perf probe: Fix segfault when glob matching function without debuginfo perf tools: Move linux/kernel.h to tools/include tools: Move tools/perf/util/include/linux/{list.h,poison.h} to tools/include perf tools: Deal with kernel module names in '[]' correctly tools/{perf/util => }/include/linux/kernel.h | 4 +- tools/{perf/util => }/include/linux/list.h | 6 +-- tools/include/linux/poison.h | 1 + tools/perf/MANIFEST | 3 ++ tools/perf/tests/kmod-path.c | 72 tools/perf/util/dso.c| 47 -- tools/perf/util/dso.h| 2 +- tools/perf/util/header.c | 8 ++-- tools/perf/util/include/linux/poison.h | 1 - tools/perf/util/machine.c| 22 - tools/perf/util/pmu.c| 11 - tools/perf/util/probe-event.c| 26 -- 12 files changed, 179 insertions(+), 24 deletions(-) rename tools/{perf/util => }/include/linux/kernel.h (97%) rename tools/{perf/util => }/include/linux/list.h (90%) create mode 100644 tools/include/linux/poison.h delete mode 100644
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 6/4/15 2:48 PM, Masami Hiramatsu wrote: On 2015/06/05 1:22, Alexei Starovoitov wrote: On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o any version of clang is ok, llc needs to be fresh with bpf backend. For a lot of cases kernel headers are not needed, so above will work fine. For our TC examples we recommend to use 'bcc' alias: bcc() { clang -O2 -emit-llvm -c $1 -o - | llc -march=bpf -filetype=obj -o `basename $1 .c`.o } then compiling as easy as 'bcc file.c' What Wang mentioned that we're working on is fully integrated 'bcc'. It will use clang/llvm as libraries, so no intermediate steps will be needed, but some folks will always have concerns about ultra-embedded environments where even 20Mb of libllvm.so is too much. So I think we need to support both 'perf record -e file.[co]' I think we'd better make 'perf record -e file.c' default and '-e file.o' should be an option. what do you mean 'default' ? It's a command line :) .c is easier to use of course, no question. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/06/05 1:22, Alexei Starovoitov wrote: On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o any version of clang is ok, llc needs to be fresh with bpf backend. For a lot of cases kernel headers are not needed, so above will work fine. For our TC examples we recommend to use 'bcc' alias: bcc() { clang -O2 -emit-llvm -c $1 -o - | llc -march=bpf -filetype=obj -o `basename $1 .c`.o } then compiling as easy as 'bcc file.c' What Wang mentioned that we're working on is fully integrated 'bcc'. It will use clang/llvm as libraries, so no intermediate steps will be needed, but some folks will always have concerns about ultra-embedded environments where even 20Mb of libllvm.so is too much. So I think we need to support both 'perf record -e file.[co]' I think we'd better make 'perf record -e file.c' default and '-e file.o' should be an option. Thank you, -- Masami HIRAMATSU Linux Technology Research Center, System Productivity Research Dept. Center for Technology Innovation - Systems Engineering Hitachi, Ltd., Research Development Group E-mail: masami.hiramatsu...@hitachi.com -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 6/4/15 7:04 AM, Ingo Molnar wrote: # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. of course it's usable :) There is some confusion here. To compile .c into .o one can easily use clang -O2 -emit-llvm -c file.c -o - | llc -march=bpf -o file.o any version of clang is ok, llc needs to be fresh with bpf backend. For a lot of cases kernel headers are not needed, so above will work fine. For our TC examples we recommend to use 'bcc' alias: bcc() { clang -O2 -emit-llvm -c $1 -o - | llc -march=bpf -filetype=obj -o `basename $1 .c`.o } then compiling as easy as 'bcc file.c' What Wang mentioned that we're working on is fully integrated 'bcc'. It will use clang/llvm as libraries, so no intermediate steps will be needed, but some folks will always have concerns about ultra-embedded environments where even 20Mb of libllvm.so is too much. So I think we need to support both 'perf record -e file.[co]' -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* pi3orama pi3or...@163.com wrote: 发自我的 iPhone 在 2015年6月4日,下午8:40,Ingo Molnar mi...@kernel.org 写道: * Wangnan (F) wangn...@huawei.com wrote: So how do you generate the .o? Why cannot the tool, if it sees that the filter parameter is eBPF source code, do that automatically? I think compiling on the fly is our goal, and Alexei is working on it. So what exact command line are you using to create the .o? What exactly should users type to create a simple eBPF filter profile? I have mentioned in previous mail: Use # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. So if users cannot actually generate .o files then it's premature to merge this in such an incomplete form! It should be possible to use a feature that we are merging. Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/6/4 13:48, Ingo Molnar wrote: * Arnaldo Carvalho de Melo a...@kernel.org wrote: Hi Ingo, Please consider applying. One of the next requests probably will have the eBPF work by Wang Nan, but I am still going thru it and want to test it thoroughly. BTW: Have you looked at it lately? It is at: http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com Super summary from the above cover letter: - It enables 'perf record' to filter events using eBPF programs like: # perf record --event bpf-file.o sleep 1 Events are selected and filtered according to definitions in bpf-file.o. Looks useful, but I think the UI needs one more tweak: could you fix it to be able to filter based on the eBPF _source_ file, not just the object file? People want to tweak such filters as they profile, so we should use the eBPF source code as the primary interface. We can compile it internally to the .o just fine. The .o file is a totally uninteresting intermediate product in itself. I.e. we need to first think through such profiling workflows from beginning to end before allowing them upstream. In a private mail Alexei Starovoitov disscussed with me about this. He said that he is working on a shared object which can compile C program into BPF bytecode on the fly. After he done his work, I think perf can support dtrace-like profiling that, users will be able to feed source code to perf directly on cmdline. He said he can release it on June. I added him to the CC-list. However I think the '.o' intermediate is still needed. I'd like to share a real profiling experience using eBPF today, please keep an eye on it. In my experience, since we are using C instead of dtrace, the code piece could be relative complex. Therefore, even if perf is able to compile the C source on the fly, I think user still need to transfer the profiling scripts to the target machine. Therefor, for him, precompiling and do some debugging on a high-end server then transfer it into target machine (like a smartphone) is tolerable, and useful for me. Thank you. - The first two patches from that series are in this pull req, as they just move stuff into tools/include/linux/ from tools/perf/include. Regards, - Arnaldo The following changes since commit 5c9b9bc67c684e40b3a5e7e9facde0fb7200cd8c: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-05-29 20:19:02 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo for you to fetch changes up to 1f121b03d058dd07199d8924373d3c52a207f63b: perf tools: Deal with kernel module names in '[]' correctly (2015-06-03 10:02:38 -0300) perf/core improvements and fixes: User visible: - Fix 'perf probe' segfault when glob matching function without debuginfo (Wang Nan) - Remove newline char when reading event scale and unit (Madhavan Srinivasan) - Deal with kernel module names in '[]' correctly (Wang Nan) Infrastructure: - Fix the search for the kernel DSO on the unified list (Arnaldo Carvalho de Melo) - Move tools/perf/util/include/linux/{kernel.h,list.h,poison.h} to tools/include, to be used in tools/lib/bpf/ (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo a...@redhat.com Arnaldo Carvalho de Melo (1): perf machine: Fix the search for the kernel DSO on the unified list Madhavan Srinivasan (1): perf tools: Remove newline char when reading event scale and unit Wang Nan (4): perf probe: Fix segfault when glob matching function without debuginfo perf tools: Move linux/kernel.h to tools/include tools: Move tools/perf/util/include/linux/{list.h,poison.h} to tools/include perf tools: Deal with kernel module names in '[]' correctly tools/{perf/util = }/include/linux/kernel.h | 4 +- tools/{perf/util = }/include/linux/list.h | 6 +-- tools/include/linux/poison.h | 1 + tools/perf/MANIFEST | 3 ++ tools/perf/tests/kmod-path.c | 72 tools/perf/util/dso.c| 47 -- tools/perf/util/dso.h| 2 +- tools/perf/util/header.c | 8 ++-- tools/perf/util/include/linux/poison.h | 1 - tools/perf/util/machine.c| 22 - tools/perf/util/pmu.c| 11 - tools/perf/util/probe-event.c| 26 -- 12 files changed, 179 insertions(+), 24 deletions(-) rename tools/{perf/util = }/include/linux/kernel.h (97%) rename tools/{perf/util = }/include/linux/list.h (90%) create mode 100644 tools/include/linux/poison.h delete
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Wangnan (F) wangn...@huawei.com wrote: On 2015/6/4 13:48, Ingo Molnar wrote: * Arnaldo Carvalho de Melo a...@kernel.org wrote: Hi Ingo, Please consider applying. One of the next requests probably will have the eBPF work by Wang Nan, but I am still going thru it and want to test it thoroughly. BTW: Have you looked at it lately? It is at: http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com Super summary from the above cover letter: - It enables 'perf record' to filter events using eBPF programs like: # perf record --event bpf-file.o sleep 1 Events are selected and filtered according to definitions in bpf-file.o. Looks useful, but I think the UI needs one more tweak: could you fix it to be able to filter based on the eBPF _source_ file, not just the object file? People want to tweak such filters as they profile, so we should use the eBPF source code as the primary interface. We can compile it internally to the .o just fine. The .o file is a totally uninteresting intermediate product in itself. I.e. we need to first think through such profiling workflows from beginning to end before allowing them upstream. In a private mail Alexei Starovoitov disscussed with me about this. He said that he is working on a shared object which can compile C program into BPF bytecode on the fly. After he done his work, I think perf can support dtrace-like profiling that, users will be able to feed source code to perf directly on cmdline. He said he can release it on June. I added him to the CC-list. However I think the '.o' intermediate is still needed. [...] So how do you generate the .o? Why cannot the tool, if it sees that the filter parameter is eBPF source code, do that automatically? I.e. you are making the user jump through hoops for no good reason - that's a bad UI and a bad workflow. Please don't do that! Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
On 2015/6/4 15:21, Ingo Molnar wrote: * Wangnan (F) wangn...@huawei.com wrote: On 2015/6/4 13:48, Ingo Molnar wrote: * Arnaldo Carvalho de Melo a...@kernel.org wrote: Hi Ingo, Please consider applying. One of the next requests probably will have the eBPF work by Wang Nan, but I am still going thru it and want to test it thoroughly. BTW: Have you looked at it lately? It is at: http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com Super summary from the above cover letter: - It enables 'perf record' to filter events using eBPF programs like: # perf record --event bpf-file.o sleep 1 Events are selected and filtered according to definitions in bpf-file.o. Looks useful, but I think the UI needs one more tweak: could you fix it to be able to filter based on the eBPF _source_ file, not just the object file? People want to tweak such filters as they profile, so we should use the eBPF source code as the primary interface. We can compile it internally to the .o just fine. The .o file is a totally uninteresting intermediate product in itself. I.e. we need to first think through such profiling workflows from beginning to end before allowing them upstream. In a private mail Alexei Starovoitov disscussed with me about this. He said that he is working on a shared object which can compile C program into BPF bytecode on the fly. After he done his work, I think perf can support dtrace-like profiling that, users will be able to feed source code to perf directly on cmdline. He said he can release it on June. I added him to the CC-list. However I think the '.o' intermediate is still needed. [...] So how do you generate the .o? Why cannot the tool, if it sees that the filter parameter is eBPF source code, do that automatically? I think compiling on the fly is our goal, and Alexei is working on it. However, it looks like some limitations are still exist. For example, the BPF program may require the definition of kernel structure for it to derefrernce struct pointers. Therefore, the machine on which compiling occures should have kernel header and configuration installed. However, most of production environment doesn't have them for security and reasons. I think BPF should be used to profile not only development environment but also production systems. If we only concern development systems, why not recompiling kernel with stub core or using kProbe modules? What about this: Give perf the ability to generate the '.o' file (to memory or dump to a real file) on development environment. If we are willing to profiling that system, we can make load the generated object into kernel and start trace by (perf record --event bpf_file.c ...). If we are willing to profile systems on which the compiling environment is missing, we can make perf to create a '.o' file (perf bpf compile bpf_file.c -o bpf_file.o) then copy it onto target environment, use perf record --event bpf_file.o ... to filter events. Thank you. I.e. you are making the user jump through hoops for no good reason - that's a bad UI and a bad workflow. Please don't do that! Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
发自我的 iPhone 在 2015年6月4日,下午8:40,Ingo Molnar mi...@kernel.org 写道: * Wangnan (F) wangn...@huawei.com wrote: So how do you generate the .o? Why cannot the tool, if it sees that the filter parameter is eBPF source code, do that automatically? I think compiling on the fly is our goal, and Alexei is working on it. So what exact command line are you using to create the .o? What exactly should users type to create a simple eBPF filter profile? I have mentioned in previous mail: Use # perf record -e bpf_source.c cmdline to create a eBPF filter from source, Use # perf record -e bpf_object.o cmdline to create a eBPF filter from object intermedia. Use # perf bpf compile bpf_source.c --kbuild=kernel-build-dir -o bpf_object.o to create the .o I think this should be enough. Currently only the second case has been implemented. Thanks. Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Wangnan (F) wangn...@huawei.com wrote: So how do you generate the .o? Why cannot the tool, if it sees that the filter parameter is eBPF source code, do that automatically? I think compiling on the fly is our goal, and Alexei is working on it. So what exact command line are you using to create the .o? What exactly should users type to create a simple eBPF filter profile? Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo wrote: > Hi Ingo, > > Please consider applying. > > One of the next requests probably will have the eBPF work by Wang Nan, > but I am still going thru it and want to test it thoroughly. > > BTW: Have you looked at it lately? It is at: > > http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com > > Super summary from the above cover letter: > > - > It enables 'perf record' to filter events using eBPF programs like: > > # perf record --event bpf-file.o sleep 1 > > Events are selected and filtered according to definitions in bpf-file.o. Looks useful, but I think the UI needs one more tweak: could you fix it to be able to filter based on the eBPF _source_ file, not just the object file? People want to tweak such filters as they profile, so we should use the eBPF source code as the primary interface. We can compile it internally to the .o just fine. The .o file is a totally uninteresting intermediate product in itself. I.e. we need to first think through such profiling workflows from beginning to end before allowing them upstream. > - > > The first two patches from that series are in this pull req, as > they just move stuff into tools/include/linux/ from tools/perf/include. > > Regards, > > - Arnaldo > > The following changes since commit 5c9b9bc67c684e40b3a5e7e9facde0fb7200cd8c: > > Merge tag 'perf-core-for-mingo' of > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core > (2015-05-29 20:19:02 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git > tags/perf-core-for-mingo > > for you to fetch changes up to 1f121b03d058dd07199d8924373d3c52a207f63b: > > perf tools: Deal with kernel module names in '[]' correctly (2015-06-03 > 10:02:38 -0300) > > > perf/core improvements and fixes: > > User visible: > > - Fix 'perf probe' segfault when glob matching function without debuginfo > (Wang Nan) > > - Remove newline char when reading event scale and unit (Madhavan Srinivasan) > > - Deal with kernel module names in '[]' correctly (Wang Nan) > > Infrastructure: > > - Fix the search for the kernel DSO on the unified list (Arnaldo Carvalho de > Melo) > > - Move tools/perf/util/include/linux/{kernel.h,list.h,poison.h} to > tools/include, > to be used in tools/lib/bpf/ (Wang Nan) > > Signed-off-by: Arnaldo Carvalho de Melo > > > Arnaldo Carvalho de Melo (1): > perf machine: Fix the search for the kernel DSO on the unified list > > Madhavan Srinivasan (1): > perf tools: Remove newline char when reading event scale and unit > > Wang Nan (4): > perf probe: Fix segfault when glob matching function without debuginfo > perf tools: Move linux/kernel.h to tools/include > tools: Move tools/perf/util/include/linux/{list.h,poison.h} to > tools/include > perf tools: Deal with kernel module names in '[]' correctly > > tools/{perf/util => }/include/linux/kernel.h | 4 +- > tools/{perf/util => }/include/linux/list.h | 6 +-- > tools/include/linux/poison.h | 1 + > tools/perf/MANIFEST | 3 ++ > tools/perf/tests/kmod-path.c | 72 > > tools/perf/util/dso.c| 47 -- > tools/perf/util/dso.h| 2 +- > tools/perf/util/header.c | 8 ++-- > tools/perf/util/include/linux/poison.h | 1 - > tools/perf/util/machine.c| 22 - > tools/perf/util/pmu.c| 11 - > tools/perf/util/probe-event.c| 26 -- > 12 files changed, 179 insertions(+), 24 deletions(-) > rename tools/{perf/util => }/include/linux/kernel.h (97%) > rename tools/{perf/util => }/include/linux/list.h (90%) > create mode 100644 tools/include/linux/poison.h > delete mode 100644 tools/perf/util/include/linux/poison.h Pulled, thanks a lot Arnaldo! Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo a...@kernel.org wrote: Hi Ingo, Please consider applying. One of the next requests probably will have the eBPF work by Wang Nan, but I am still going thru it and want to test it thoroughly. BTW: Have you looked at it lately? It is at: http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com Super summary from the above cover letter: - It enables 'perf record' to filter events using eBPF programs like: # perf record --event bpf-file.o sleep 1 Events are selected and filtered according to definitions in bpf-file.o. Looks useful, but I think the UI needs one more tweak: could you fix it to be able to filter based on the eBPF _source_ file, not just the object file? People want to tweak such filters as they profile, so we should use the eBPF source code as the primary interface. We can compile it internally to the .o just fine. The .o file is a totally uninteresting intermediate product in itself. I.e. we need to first think through such profiling workflows from beginning to end before allowing them upstream. - The first two patches from that series are in this pull req, as they just move stuff into tools/include/linux/ from tools/perf/include. Regards, - Arnaldo The following changes since commit 5c9b9bc67c684e40b3a5e7e9facde0fb7200cd8c: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-05-29 20:19:02 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo for you to fetch changes up to 1f121b03d058dd07199d8924373d3c52a207f63b: perf tools: Deal with kernel module names in '[]' correctly (2015-06-03 10:02:38 -0300) perf/core improvements and fixes: User visible: - Fix 'perf probe' segfault when glob matching function without debuginfo (Wang Nan) - Remove newline char when reading event scale and unit (Madhavan Srinivasan) - Deal with kernel module names in '[]' correctly (Wang Nan) Infrastructure: - Fix the search for the kernel DSO on the unified list (Arnaldo Carvalho de Melo) - Move tools/perf/util/include/linux/{kernel.h,list.h,poison.h} to tools/include, to be used in tools/lib/bpf/ (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo a...@redhat.com Arnaldo Carvalho de Melo (1): perf machine: Fix the search for the kernel DSO on the unified list Madhavan Srinivasan (1): perf tools: Remove newline char when reading event scale and unit Wang Nan (4): perf probe: Fix segfault when glob matching function without debuginfo perf tools: Move linux/kernel.h to tools/include tools: Move tools/perf/util/include/linux/{list.h,poison.h} to tools/include perf tools: Deal with kernel module names in '[]' correctly tools/{perf/util = }/include/linux/kernel.h | 4 +- tools/{perf/util = }/include/linux/list.h | 6 +-- tools/include/linux/poison.h | 1 + tools/perf/MANIFEST | 3 ++ tools/perf/tests/kmod-path.c | 72 tools/perf/util/dso.c| 47 -- tools/perf/util/dso.h| 2 +- tools/perf/util/header.c | 8 ++-- tools/perf/util/include/linux/poison.h | 1 - tools/perf/util/machine.c| 22 - tools/perf/util/pmu.c| 11 - tools/perf/util/probe-event.c| 26 -- 12 files changed, 179 insertions(+), 24 deletions(-) rename tools/{perf/util = }/include/linux/kernel.h (97%) rename tools/{perf/util = }/include/linux/list.h (90%) create mode 100644 tools/include/linux/poison.h delete mode 100644 tools/perf/util/include/linux/poison.h Pulled, thanks a lot Arnaldo! Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit ccd41c86ad4d464d0ed4e48d80759ff85c2115b0: > > perf: Fix racy group access (2015-03-27 09:49:45 +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 > > for you to fetch changes up to 9870d7809575515e26194f4b3df1750872a6ee60: > > perf ordered_samples: Remove references to perf_{evlist,tool} and machines > (2015-03-31 17:52:32 -0300) > > > perf/core improvements and fixes: > > User visible: > > - Fix 'perf script' pipe mode segfault, by always initializing ordered_events > in > perf_session__new. (Arnaldo Carvalho de Melo) > > - Fix ppid for synthesized fork events (David Ahern) > > - Fix kernel symbol resolution of callchains in S/390 by remembering the > cpumode. (David Hildenbrand) > > Infrastructure: > > - Disable libbabeltrace check by default in the build system (Jiri Olsa) > > Signed-off-by: Arnaldo Carvalho de Melo > > > Arnaldo Carvalho de Melo (2): > perf session: Always initialize ordered_events > perf ordered_samples: Remove references to perf_{evlist,tool} and > machines > > David Ahern (2): > perf tools: Refactor comm/tgid lookup > perf tools: Fix ppid for synthesized fork events > > David Hildenbrand (1): > perf callchain: Fix kernel symbol resolution by remembering the cpumode > > Jiri Olsa (1): > perf build: Disable libbabeltrace check by default > > tools/perf/Makefile.perf | 2 +- > tools/perf/config/Makefile | 5 +- > tools/perf/util/event.c | 147 > --- > tools/perf/util/event.h | 1 - > tools/perf/util/machine.c| 28 > tools/perf/util/ordered-events.c | 21 ++ > tools/perf/util/ordered-events.h | 14 +--- > tools/perf/util/session.c| 48 - > tools/perf/util/session.h| 1 + > 9 files changed, 144 insertions(+), 123 deletions(-) Pulled, thanks a lot Arnaldo! Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo a...@kernel.org wrote: Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit ccd41c86ad4d464d0ed4e48d80759ff85c2115b0: perf: Fix racy group access (2015-03-27 09:49:45 +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 for you to fetch changes up to 9870d7809575515e26194f4b3df1750872a6ee60: perf ordered_samples: Remove references to perf_{evlist,tool} and machines (2015-03-31 17:52:32 -0300) perf/core improvements and fixes: User visible: - Fix 'perf script' pipe mode segfault, by always initializing ordered_events in perf_session__new. (Arnaldo Carvalho de Melo) - Fix ppid for synthesized fork events (David Ahern) - Fix kernel symbol resolution of callchains in S/390 by remembering the cpumode. (David Hildenbrand) Infrastructure: - Disable libbabeltrace check by default in the build system (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo a...@redhat.com Arnaldo Carvalho de Melo (2): perf session: Always initialize ordered_events perf ordered_samples: Remove references to perf_{evlist,tool} and machines David Ahern (2): perf tools: Refactor comm/tgid lookup perf tools: Fix ppid for synthesized fork events David Hildenbrand (1): perf callchain: Fix kernel symbol resolution by remembering the cpumode Jiri Olsa (1): perf build: Disable libbabeltrace check by default tools/perf/Makefile.perf | 2 +- tools/perf/config/Makefile | 5 +- tools/perf/util/event.c | 147 --- tools/perf/util/event.h | 1 - tools/perf/util/machine.c| 28 tools/perf/util/ordered-events.c | 21 ++ tools/perf/util/ordered-events.h | 14 +--- tools/perf/util/session.c| 48 - tools/perf/util/session.h| 1 + 9 files changed, 144 insertions(+), 123 deletions(-) Pulled, thanks a lot Arnaldo! Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit baa5a7bc5dd069bb37de9c8bdb5ea7f4e2e939e9: > > Merge tag 'perf-core-for-mingo' of > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core > (2015-03-24 17:22:44 +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 > > for you to fetch changes up to 7c27f78a297b54c3c2f5075cb15d33431b7f6333: > > tools lib traceevent: Zero should not be considered "not found" in > eval_flag() (2015-03-26 10:52:29 -0300) > > > perf/core improvements and fixes: > > User visible: > > - Show the first event with an invalid filter (David Ahern, Arnaldo Carvalho > de Melo) > > - Fix garbage output when intermixing syscalls from different threads in > 'perf trace' (Arnaldo Carvalho de Melo) > > - Fix 'perf timechart' SIBGUS error on sparc64 (David Ahern) > > Infrastructure: > > - Set JOBS based on CPU or processor, making it work on SPARC, where > /proc/cpuinfo has "CPU", not "processor" (David Ahern) > > - Zero should not be considered "not found" in libtraceevent's eval_flag() > (Steven Rostedt) > > Signed-off-by: Arnaldo Carvalho de Melo > > > Arnaldo Carvalho de Melo (2): > perf evlist: Return the first evsel with an invalid filter in > apply_filters() > perf trace: Fix syscall enter formatting bug > > David Ahern (3): > perf timechart: Fix SIBGUS error on sparc64 > perf: Bump max number of cpus to 1024 > perf tools: Set JOBS based on CPU or processor > > Steven Rostedt (1): > tools lib traceevent: Zero should not be considered "not found" in > eval_flag() > > tools/lib/traceevent/event-parse.c | 10 +- > tools/perf/Makefile| 2 +- > tools/perf/builtin-record.c| 5 +++-- > tools/perf/builtin-stat.c | 5 +++-- > tools/perf/builtin-trace.c | 2 +- > tools/perf/perf.h | 2 +- > tools/perf/util/evlist.c | 6 -- > tools/perf/util/evlist.h | 2 +- > tools/perf/util/evsel.c| 2 +- > 9 files changed, 20 insertions(+), 16 deletions(-) Pulled, thanks a lot Arnaldo! Btw., I still see: config/Makefile:609: No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev this annoyance needs to be fixed ASAP, before I can send perf/core to Linus. Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Arnaldo Carvalho de Melo a...@kernel.org wrote: Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit baa5a7bc5dd069bb37de9c8bdb5ea7f4e2e939e9: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-03-24 17:22:44 +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 for you to fetch changes up to 7c27f78a297b54c3c2f5075cb15d33431b7f6333: tools lib traceevent: Zero should not be considered not found in eval_flag() (2015-03-26 10:52:29 -0300) perf/core improvements and fixes: User visible: - Show the first event with an invalid filter (David Ahern, Arnaldo Carvalho de Melo) - Fix garbage output when intermixing syscalls from different threads in 'perf trace' (Arnaldo Carvalho de Melo) - Fix 'perf timechart' SIBGUS error on sparc64 (David Ahern) Infrastructure: - Set JOBS based on CPU or processor, making it work on SPARC, where /proc/cpuinfo has CPU, not processor (David Ahern) - Zero should not be considered not found in libtraceevent's eval_flag() (Steven Rostedt) Signed-off-by: Arnaldo Carvalho de Melo a...@redhat.com Arnaldo Carvalho de Melo (2): perf evlist: Return the first evsel with an invalid filter in apply_filters() perf trace: Fix syscall enter formatting bug David Ahern (3): perf timechart: Fix SIBGUS error on sparc64 perf: Bump max number of cpus to 1024 perf tools: Set JOBS based on CPU or processor Steven Rostedt (1): tools lib traceevent: Zero should not be considered not found in eval_flag() tools/lib/traceevent/event-parse.c | 10 +- tools/perf/Makefile| 2 +- tools/perf/builtin-record.c| 5 +++-- tools/perf/builtin-stat.c | 5 +++-- tools/perf/builtin-trace.c | 2 +- tools/perf/perf.h | 2 +- tools/perf/util/evlist.c | 6 -- tools/perf/util/evlist.h | 2 +- tools/perf/util/evsel.c| 2 +- 9 files changed, 20 insertions(+), 16 deletions(-) Pulled, thanks a lot Arnaldo! Btw., I still see: config/Makefile:609: No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev this annoyance needs to be fixed ASAP, before I can send perf/core to Linus. Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Jiri Olsa wrote: > hi Ingo, > please consider pulling > > thanks, > jirka > > > The following changes since commit 3e46d21285577a8c9e4c37f9b1002e567c440b28: > > Merge tag 'perf-core-for-mingo' of > git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core > (2014-05-05 19:37:51 +0200) > > are available in the git repository at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git > tags/perf-core-for-mingo > > for you to fetch changes up to 13ce34df11833482cd698331fdbb3f8ced06340d: > > perf tools: Use tid for finding thread (2014-05-12 11:09:50 +0200) > > > perf/core improvements and fixes: > > . Propagate exit status of a command line workload for > record command (Namhyung Kim) > > . Use tid for finding thread (Namhyung Kim) > > . Clarify the output of perf sched map plus small sched > command fixies (Dongsheng Yang) > > Signed-off-by: Jiri Olsa > > > Dongsheng (3): > perf tools: Add missing event for perf sched record. > perf tools: Adapt the TASK_STATE_TO_CHAR_STR to new value in kernel > space. > perf tools: Clarify the output of perf sched map. > > Namhyung Kim (3): > perf record: Propagate exit status of a command line workload > perf tools: Get rid of on_exit() feature test > perf tools: Use tid for finding thread > > tools/perf/builtin-inject.c | 2 +- > tools/perf/builtin-kmem.c | 2 +- > tools/perf/builtin-record.c | 158 > +--- > tools/perf/builtin-sched.c | 38 +++--- > tools/perf/config/Makefile | 8 -- > tools/perf/config/feature-checks/Makefile | 4 - > tools/perf/config/feature-checks/test-all.c | 5 - > tools/perf/config/feature-checks/test-on-exit.c | 16 --- > tools/perf/tests/code-reading.c | 2 +- > tools/perf/tests/hists_filter.c | 1 + > tools/perf/tests/hists_link.c | 2 + > tools/perf/util/build-id.c | 2 +- > tools/perf/util/event.c | 2 +- > 13 files changed, 90 insertions(+), 152 deletions(-) > delete mode 100644 tools/perf/config/feature-checks/test-on-exit.c Pulled, thanks a lot Jiri! Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Jiri Olsa jo...@kernel.org wrote: hi Ingo, please consider pulling thanks, jirka The following changes since commit 3e46d21285577a8c9e4c37f9b1002e567c440b28: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-05-05 19:37:51 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo for you to fetch changes up to 13ce34df11833482cd698331fdbb3f8ced06340d: perf tools: Use tid for finding thread (2014-05-12 11:09:50 +0200) perf/core improvements and fixes: . Propagate exit status of a command line workload for record command (Namhyung Kim) . Use tid for finding thread (Namhyung Kim) . Clarify the output of perf sched map plus small sched command fixies (Dongsheng Yang) Signed-off-by: Jiri Olsa jo...@kernel.org Dongsheng (3): perf tools: Add missing event for perf sched record. perf tools: Adapt the TASK_STATE_TO_CHAR_STR to new value in kernel space. perf tools: Clarify the output of perf sched map. Namhyung Kim (3): perf record: Propagate exit status of a command line workload perf tools: Get rid of on_exit() feature test perf tools: Use tid for finding thread tools/perf/builtin-inject.c | 2 +- tools/perf/builtin-kmem.c | 2 +- tools/perf/builtin-record.c | 158 +--- tools/perf/builtin-sched.c | 38 +++--- tools/perf/config/Makefile | 8 -- tools/perf/config/feature-checks/Makefile | 4 - tools/perf/config/feature-checks/test-all.c | 5 - tools/perf/config/feature-checks/test-on-exit.c | 16 --- tools/perf/tests/code-reading.c | 2 +- tools/perf/tests/hists_filter.c | 1 + tools/perf/tests/hists_link.c | 2 + tools/perf/util/build-id.c | 2 +- tools/perf/util/event.c | 2 +- 13 files changed, 90 insertions(+), 152 deletions(-) delete mode 100644 tools/perf/config/feature-checks/test-on-exit.c Pulled, thanks a lot Jiri! Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Jiri Olsa wrote: > hi Ingo, > please consider pulling > > resending 0/6.. it got lost somehow from previous post.. > > thanks, > jirka > > > The following changes since commit 201131998fbf074b03679afedcc29948e63331ef: > > Merge tag 'perf-core-for-mingo' of > git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core > (2014-04-29 08:41:21 +0200) > > are available in the git repository at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git > tags/perf-core-for-mingo > > for you to fetch changes up to 8ab596afb97bc9e2f9140dc1d993e81749acff42: > > perf tools ARM64: Wire up perf_regs and unwind support (2014-04-29 15:31:19 > +0200) > > > perf/core improvements and fixes: > > . Wire up perf_regs and unwind support for ARM64 (Jean Pihet) > > . Move u64_swap union to its single user's header, evsel.h (Borislav Petkov) > > . Fix for s390 to properly parse tracepoints plus test code (Alexander > Yarygin) > > . Handle EINTR error for readn/writen (Namhyung Kim) > > Signed-off-by: Jiri Olsa > > > Alexander Yarygin (3): > perf tools: Parse tracepoints with '-' in system name > perf tests: Add numeric identifier to evlist_test > perf tests: Add a test of kvm-390: trace event > > Borislav Petkov (1): > perf tools: Move u64_swap union > > Jean Pihet (1): > perf tools ARM64: Wire up perf_regs and unwind support > > Namhyung Kim (1): > perf tools: Handle EINTR error for readn/writen > > tools/perf/arch/arm64/Makefile| 7 ++ > tools/perf/arch/arm64/include/perf_regs.h | 88 > tools/perf/arch/arm64/util/dwarf-regs.c | 80 +++ > tools/perf/arch/arm64/util/unwind-libunwind.c | 82 +++ > tools/perf/config/Makefile| 8 +- > tools/perf/tests/parse-events.c | 142 > ++ > tools/perf/util/evsel.h | 5 + > tools/perf/util/parse-events.y| 12 +++ > tools/perf/util/types.h | 5 - > tools/perf/util/util.c| 2 + > 10 files changed, 380 insertions(+), 51 deletions(-) > create mode 100644 tools/perf/arch/arm64/Makefile > create mode 100644 tools/perf/arch/arm64/include/perf_regs.h > create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c > create mode 100644 tools/perf/arch/arm64/util/unwind-libunwind.c Pulled, thanks a lot Jiri! I also merged perf/urgent into perf/core, because a conflict developed between the two. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL 0/6] perf/core improvements and fixes
* Jiri Olsa jo...@kernel.org wrote: hi Ingo, please consider pulling resending 0/6.. it got lost somehow from previous post.. thanks, jirka The following changes since commit 201131998fbf074b03679afedcc29948e63331ef: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core (2014-04-29 08:41:21 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git tags/perf-core-for-mingo for you to fetch changes up to 8ab596afb97bc9e2f9140dc1d993e81749acff42: perf tools ARM64: Wire up perf_regs and unwind support (2014-04-29 15:31:19 +0200) perf/core improvements and fixes: . Wire up perf_regs and unwind support for ARM64 (Jean Pihet) . Move u64_swap union to its single user's header, evsel.h (Borislav Petkov) . Fix for s390 to properly parse tracepoints plus test code (Alexander Yarygin) . Handle EINTR error for readn/writen (Namhyung Kim) Signed-off-by: Jiri Olsa jo...@kernel.org Alexander Yarygin (3): perf tools: Parse tracepoints with '-' in system name perf tests: Add numeric identifier to evlist_test perf tests: Add a test of kvm-390: trace event Borislav Petkov (1): perf tools: Move u64_swap union Jean Pihet (1): perf tools ARM64: Wire up perf_regs and unwind support Namhyung Kim (1): perf tools: Handle EINTR error for readn/writen tools/perf/arch/arm64/Makefile| 7 ++ tools/perf/arch/arm64/include/perf_regs.h | 88 tools/perf/arch/arm64/util/dwarf-regs.c | 80 +++ tools/perf/arch/arm64/util/unwind-libunwind.c | 82 +++ tools/perf/config/Makefile| 8 +- tools/perf/tests/parse-events.c | 142 ++ tools/perf/util/evsel.h | 5 + tools/perf/util/parse-events.y| 12 +++ tools/perf/util/types.h | 5 - tools/perf/util/util.c| 2 + 10 files changed, 380 insertions(+), 51 deletions(-) create mode 100644 tools/perf/arch/arm64/Makefile create mode 100644 tools/perf/arch/arm64/include/perf_regs.h create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c create mode 100644 tools/perf/arch/arm64/util/unwind-libunwind.c Pulled, thanks a lot Jiri! I also merged perf/urgent into perf/core, because a conflict developed between the two. Thanks, Ingo -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/