Re: [GIT PULL 0/6] perf/core improvements and fixes

2017-03-16 Thread Ingo Molnar

* 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

2017-03-16 Thread Ingo Molnar

* 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

2015-09-01 Thread Ingo Molnar

* 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

2015-09-01 Thread Ingo Molnar

* 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

2015-06-07 Thread Ingo Molnar

* 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

2015-06-07 Thread Ingo Molnar

* 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

2015-06-05 Thread Arnaldo Carvalho de Melo
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

2015-06-05 Thread Arnaldo Carvalho de Melo
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

2015-06-05 Thread Ingo Molnar

* 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

2015-06-05 Thread Wangnan (F)



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

2015-06-05 Thread Ingo Molnar

* 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

2015-06-05 Thread Ingo Molnar

* 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

2015-06-05 Thread Wangnan (F)



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

2015-06-05 Thread Ingo Molnar

* 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

2015-06-05 Thread Arnaldo Carvalho de Melo
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

2015-06-05 Thread Arnaldo Carvalho de Melo
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

2015-06-04 Thread Alexei Starovoitov

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

2015-06-04 Thread Masami Hiramatsu
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

2015-06-04 Thread Alexei Starovoitov

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

2015-06-04 Thread Ingo Molnar

* 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

2015-06-04 Thread pi3orama


发自我的 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

2015-06-04 Thread 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?

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

2015-06-04 Thread Wangnan (F)



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

2015-06-04 Thread Ingo Molnar

* 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

2015-06-04 Thread Wangnan (F)



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

2015-06-04 Thread Alexei Starovoitov

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

2015-06-04 Thread Masami Hiramatsu
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

2015-06-04 Thread Alexei Starovoitov

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

2015-06-04 Thread Ingo Molnar

* 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

2015-06-04 Thread Wangnan (F)



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

2015-06-04 Thread Ingo Molnar

* 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

2015-06-04 Thread Wangnan (F)



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

2015-06-04 Thread pi3orama


发自我的 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

2015-06-04 Thread Ingo Molnar

* 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

2015-06-03 Thread Ingo Molnar

* 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

2015-06-03 Thread Ingo Molnar

* 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

2015-04-01 Thread Ingo Molnar

* 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

2015-04-01 Thread Ingo Molnar

* 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

2015-03-27 Thread Ingo Molnar

* 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

2015-03-27 Thread Ingo Molnar

* 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

2014-05-12 Thread Ingo Molnar

* 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

2014-05-12 Thread Ingo Molnar

* 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

2014-05-01 Thread Ingo Molnar

* 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

2014-05-01 Thread Ingo Molnar

* 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/