29 Sep, 2013

1 commit

  • This reverts commit de95ab53645a2f0015e0f68ee723f18dce2b8b51.

    Markus Trippelsdorf reported that this commit broke 'perf top':

    > I just see a gray screen with no text at all. Sometimes the
    > following error messages are printed:
    >
    > *** Error in `perf': invalid fastbin entry (free): 0x00000000029b18c0
    > ***
    > *** Error in `perf': malloc(): memory corruption (fast): 0x0000000000ee0b10 ***

    While this code is fixable, the commit itself fails on several levels:

    - it should have been a separate helper function
    - why the heck does it do strchr() twice
    - it casts a const char * over into char *
    - sloppy style
    - it's not even a regression fix!

    So lets revert it and re-try the patch in v3.13.

    Reported-by: Markus Trippelsdorf
    Cc: Andi Kleen
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Linus Torvalds
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

25 Sep, 2013

6 commits

  • The libbfd C++ demangler doesn't seem to deal with cloned functions,
    like symbol.clone.NUM.

    Just strip the dot part before demangling and add it back later.

    Signed-off-by: Andi Kleen
    Link: http://lkml.kernel.org/r/1378998998-10802-1-git-send-email-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Andi Kleen
     
  • In machine__create_modules() the 'path' char array was used in a call to
    symbol__restricted_filename() without always being populated.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1379845338-29637-2-git-send-email-adrian.hunter@intel.com
    [ Split patch removing unrelated conversion of sprintf to snprintf to perf/core ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Fixes compile failure on Fedora 12.

    Signed-off-by: David Ahern
    Link: http://lkml.kernel.org/r/1379900700-5186-3-git-send-email-dsahern@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    David Ahern
     
  • Fix perf probe to probe on some symbols which have some optimzation
    suffixes, e.g. ".part", ".isra", and ".constprop".

    To fix this issue, instead of using the DIE name, perf probe uses the
    symbol name found by dwfl_module_addrsym().

    This also involves a perf probe --vars operation update which now shows
    the symbol name instead of the DIE name.

    Without this patch, putting a probe on an inlined function which was
    compiled with a suffixed symbol will fail like this:

    $ perf probe -v getname_flags
    probe-definition(0): getname_flags
    symbol:getname_flags file:(null) line:0 offset:0 return:0 lazy:(null)
    0 arguments
    Looking at the vmlinux_path (6 entries long)
    Using /lib/modules/3.11.0+/build/vmlinux for symbols
    found inline addr: 0xffffffff8119bb70
    Probe point found: getname_flags+0
    found inline addr: 0xffffffff8119bcb6
    Probe point found: getname+6
    found inline addr: 0xffffffff811a06a6
    Probe point found: user_path_at_empty+6
    find 3 probe_trace_events.
    Opening /sys/kernel/debug//tracing/kprobe_events write=1
    Added new events:
    Writing event: p:probe/getname_flags getname_flags+0
    Failed to write event: No such file or directory
    Error: Failed to add events. (-1)

    Because the debuginfo knows only the original (non suffix) symbol name,
    it uses the original symbol for probe address but the kernel (kallsyms)
    knows only suffixed symbol. Then, the kernel rejects that original
    symbol.

    This patch uses dwfl_module_addrsym() to get the correct (suffixed)
    symbol from symtab when a probe point is found.

    Reported-by: Arnaldo Carvalho de Melo
    Signed-off-by: Masami Hiramatsu
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20130925131616.31632.46658.stgit@udc4-manage.rcp.hitachi.co.jp
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • 5c5e854b changed perf_event__synthesize_mmap_events to generate MMAP2
    events. Since perf-trace does not have a handler for it it dies with a
    segfault when trying to process files:

    perf trace -i /tmp/perf.data
    Segmentation fault

    Signed-off-by: David Ahern
    Link: http://lkml.kernel.org/r/1379900700-5186-4-git-send-email-dsahern@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    David Ahern
     
  • The commit '2814eb0 perf kmem: Remove die() calls' disabled 'perf kmem'
    command for machines without numa support. It made the command fail if
    '/sys/devices/system/node' dir wasn't found.

    Skipping the numa based initialization in case the directory is not
    found and continue execution.

    Signed-off-by: Jiri Olsa
    Cc: Corey Ashford
    Cc: Frederic Weisbecker
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1379003976-5839-5-git-send-email-jolsa@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

20 Sep, 2013

4 commits

  • Solve the problems around the broken definition of perf_event_mmap_page::
    cap_usr_time and cap_usr_rdpmc fields which used to overlap, partially
    fixed by:

    860f085b74e9 ("perf: Fix broken union in 'struct perf_event_mmap_page'")

    The problem with the fix (merged in v3.12-rc1 and not yet released
    officially), noticed by Vince Weaver is that the new behavior is
    not detectable by new user-space, and that due to the reuse of the
    field names it's easy to mis-compile a binary if old headers are used
    on a new kernel or new headers are used on an old kernel.

    To solve all that make this change explicit, detectable and self-contained,
    by iterating the ABI the following way:

    - Always clear bit 0, and rename it to usrpage->cap_bit0, to at least not
    confuse old user-space binaries. RDPMC will be marked as unavailable
    to old binaries but that's within the ABI, this is a capability bit.

    - Rename bit 1 to ->cap_bit0_is_deprecated and always set it to 1, so new
    libraries can reliably detect that bit 0 is deprecated and perma-zero
    without having to check the kernel version.

    - Use bits 2, 3, 4 for the newly defined, correct functionality:

    cap_user_rdpmc : 1, /* The RDPMC instruction can be used to read counts */
    cap_user_time : 1, /* The time_* fields are used */
    cap_user_time_zero : 1, /* The time_zero field is used */

    - Rename all the bitfield names in perf_event.h to be different from the
    old names, to make sure it's not possible to mis-compile it
    accidentally with old assumptions.

    The 'size' field can then be used in the future to add new fields and it
    will act as a natural ABI version indicator as well.

    Also adjust tools/perf/ userspace for the new definitions, noticed by
    Adrian Hunter.

    Reported-by: Vince Weaver
    Signed-off-by: Peter Zijlstra
    Also-Fixed-by: Adrian Hunter
    Link: http://lkml.kernel.org/n/tip-zr03yxjrpXesOzzupszqglbv@git.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • …it/acme/linux into perf/urgent

    Pull perf/urgent fixes from Arnaldo Carvalho de Melo:

    * Check for SIGINT in more loops, allowing tools such as 'perf report' to
    react faster to Ctrl+C, from Arnaldo Carvalho de Melo.

    * Fix objdump line parsing offset validation in the annotate code,
    from Adrian Hunter.

    * Fix buildid cache handling of kallsyms with kcore, from Adrian Hunter.

    * Fix compile with libelf without get_phdrnum, from Adrian Hunter.

    * Sharpen the libaudit dependencies test, refusing to build with older
    libraries that doesn't have all the functions used by 'perf trace", fix
    from Ingo Molnar.

    * Fill in new definitions for madvise()/mmap() flags to fix the build in
    older systems, from Ingo Molnar.

    * Fix old GCC build error in older systems in the kallsyms parsing code in
    trace-event-parse.c, from Ingo Molnar.

    * Ignore DWARF declaration tags, allowing, for instance, that the

    $ perf probe -L getname

    command succeeds in showing the source code for the 'getname' kernel
    function, telling in which lines probes can be inserted, fix from
    Masami Hiramatsu.

    * Fix linux/magic.h related build breakage in some systems, fix from
    Vinson Lee.

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • The compilation only looks for linux/magic.h from the default include
    paths, which does not include the source tree. This results in a build
    error if linux/magic.h is not available or not installed.

    For example, this build error occurs on CentOS 5.

    $ make -C tools/lib/lk V=1
    [...]
    gcc -o debugfs.o -c -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6
    -D_FORTIFY_SOURCE=2 -Wbad-function-cast -Wdeclaration-after-statement
    -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations
    -Wmissing-prototypes -Wnested-externs -Wno-system-headers
    -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow
    -Wstrict-aliasing=3 -Wstrict-prototypes -Wswitch-default -Wswitch-enum
    -Wundef -Wwrite-strings -Wformat -fPIC -D_LARGEFILE64_SOURCE
    -D_FILE_OFFSET_BITS=64 debugfs.c
    debugfs.c:8:25: error: linux/magic.h: No such file or directory

    The only symbol from linux/magic.h needed by debugfs.c is DEBUGFS_MAGIC,
    and that is already defined in debugfs.h. linux/magic.h isn't providing
    any extra symbols and can unincluded. This is similar to the approach by
    perf, which has its own magic.h wrapper at
    tools/perf/util/include/linux/magic.h

    Signed-off-by: Vinson Lee
    Acked-by: Borislav Petkov
    Cc: Borislav Petkov
    Cc: Vinson Lee
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1379546200-17028-1-git-send-email-vlee@freedesktop.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Vinson Lee
     
  • Old GCC (4.1) does not see through the code flow of parse_proc_kallsyms()
    and gets confused about the status of 'fmt':

    util/trace-event-parse.c: In function ‘parse_proc_kallsyms’:
    util/trace-event-parse.c:189: warning: ‘fmt’ may be used uninitialized in this function
    make: *** [util/trace-event-parse.o] Error 1

    Help out GCC by initializing 'fmt' to NULL.

    Signed-off-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: H. Peter Anvin
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20130912131649.GC23826@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ingo Molnar
     

19 Sep, 2013

7 commits

  • The commit ba28c59bc9ed8fb7b9a753cd88ee54a2c4f6265b fixed a declaration
    entry bug in probe_point_search_cb(). There are same bugs in line
    finder and call_probe_finder(). This introduces a new dwarf utility
    function to determine given DIE is a function definition, not
    declaration.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Prashanth Nageshappa
    Cc: Srikar Dronamraju
    Cc: Steven Rostedt
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20120423032435.8737.80064.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • When processing big files we were not checking if session_done was set
    by the SIGINT signal handler, for instance in 'perf report'. Fix it.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-pyad42lgrtq7xhg2dpsoauq7@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Add a feature check for get_phdrnum() and implement a replacement if it
    is not present.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1379080170-6608-1-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • When kallsyms is used with kcore the dso long_name becomes the kcore
    file name. That prevents the buildid cache from caching kallsyms.
    (There is no support at present for caching kcore). Fix by changing it
    so that the kallsyms name is used in that case instead.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1379009959-28046-1-git-send-email-adrian.hunter@intel.com
    [ Kept 'struct foo' pointer as first parameter of foo__ prefixed functions ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • When parsing lines from objdump a line containing source code starting
    with a numeric label is mistaken for a line of disassembly starting with
    a memory address.

    Current validation fails to recognise that the "memory address" is out
    of range and calculates an invalid offset which later causes this
    segfault:

    Program received signal SIGSEGV, Segmentation fault.
    0x0000000000457315 in disasm__calc_percent (notes=0xc98970, evidx=0, offset=143705, end=2127526177, path=0x7fffffffbf50)
    at util/annotate.c:631
    631 hits += h->addr[offset++];
    (gdb) bt
    #0 0x0000000000457315 in disasm__calc_percent (notes=0xc98970, evidx=0, offset=143705, end=2127526177, path=0x7fffffffbf50)
    at util/annotate.c:631
    #1 0x00000000004d65e3 in annotate_browser__calc_percent (browser=0x7fffffffd130, evsel=0xa01da0) at ui/browsers/annotate.c:364
    #2 0x00000000004d7433 in annotate_browser__run (browser=0x7fffffffd130, evsel=0xa01da0, hbt=0x0) at ui/browsers/annotate.c:672
    #3 0x00000000004d80c9 in symbol__tui_annotate (sym=0xc989a0, map=0xa02660, evsel=0xa01da0, hbt=0x0) at ui/browsers/annotate.c:962
    #4 0x00000000004d7aa0 in hist_entry__tui_annotate (he=0xdf73f0, evsel=0xa01da0, hbt=0x0) at ui/browsers/annotate.c:823
    #5 0x00000000004dd648 in perf_evsel__hists_browse (evsel=0xa01da0, nr_events=1, helpline=
    0x58b768 "For a higher level overview, try: perf report --sort comm,dso", ev_name=0xa02cd0 "cycles", left_exits=false, hbt=
    0x0, min_pcnt=0, env=0xa011e0) at ui/browsers/hists.c:1659
    #6 0x00000000004de372 in perf_evlist__tui_browse_hists (evlist=0xa01520, help=
    0x58b768 "For a higher level overview, try: perf report --sort comm,dso", hbt=0x0, min_pcnt=0, env=0xa011e0)
    at ui/browsers/hists.c:1950
    #7 0x000000000042cf6b in __cmd_report (rep=0x7fffffffd6c0) at builtin-report.c:581
    #8 0x000000000042e25d in cmd_report (argc=0, argv=0x7fffffffe4b0, prefix=0x0) at builtin-report.c:965
    #9 0x000000000041a0e1 in run_builtin (p=0x801548, argc=1, argv=0x7fffffffe4b0) at perf.c:319
    #10 0x000000000041a319 in handle_internal_command (argc=1, argv=0x7fffffffe4b0) at perf.c:376
    #11 0x000000000041a465 in run_argv (argcp=0x7fffffffe38c, argv=0x7fffffffe380) at perf.c:420
    #12 0x000000000041a707 in main (argc=1, argv=0x7fffffffe4b0) at perf.c:521

    After the fix is applied the symbol can be annotated showing the
    problematic line "1: rep"

    copy_user_generic_string /usr/lib/debug/lib/modules/3.9.10-100.fc17.x86_64/vmlinux
    */
    ENTRY(copy_user_generic_string)
    CFI_STARTPROC
    ASM_STAC
    andl %edx,%edx
    and %edx,%edx
    jz 4f
    je 37
    cmpl $8,%edx
    cmp $0x8,%edx
    jb 2f /* less than 8 bytes, go to byte copy loop */
    jb 33
    ALIGN_DESTINATION
    mov %edi,%ecx
    and $0x7,%ecx
    je 28
    sub $0x8,%ecx
    neg %ecx
    sub %ecx,%edx
    1a: mov (%rsi),%al
    mov %al,(%rdi)
    inc %rsi
    inc %rdi
    dec %ecx
    jne 1a
    movl %edx,%ecx
    28: mov %edx,%ecx
    shrl $3,%ecx
    shr $0x3,%ecx
    andl $7,%edx
    and $0x7,%edx
    1: rep
    100.00 rep movsq %ds:(%rsi),%es:(%rdi)
    movsq
    2: movl %edx,%ecx
    33: mov %edx,%ecx
    3: rep
    rep movsb %ds:(%rsi),%es:(%rdi)
    movsb
    4: xorl %eax,%eax
    37: xor %eax,%eax
    data32 xchg %ax,%ax
    ASM_CLAC
    ret
    retq

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1379009721-27667-1-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • builtin-trace.c started using various new syscall features not defined
    in the header files of older distros - resulting in build failures.

    Fill in the (ABI) constants if they are not defined.

    (There might be a better place to put this than builtin-trace.c, into a
    compat header or so.)

    Signed-off-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: H. Peter Anvin
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Thomas Gleixner
    Cc: linux-tip-commits@vger.kernel.org
    Link: http://lkml.kernel.org/r/20130912132900.GE23826@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ingo Molnar
     
  • There are older libaudit versions that don't have an
    audit_errno_to_name() method, resulting in a builtin-trace.c build
    error:

    builtin-trace.c: In function ‘trace__sys_exit’:
    builtin-trace.c:794: warning: implicit declaration of function ‘audit_errno_to_name’

    Expand the libaudit test to detect this.

    Signed-off-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: H. Peter Anvin
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20130912132706.GD23826@gmail.com
    [ Fix the test by escaping the double quotes ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Ingo Molnar
     

13 Sep, 2013

1 commit

  • Pull perf fixes from Ingo Molnar:
    "Various fixes.

    The -g perf report lockup you reported is only partially addressed,
    patches that fix the excessive runtime are still being worked on"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86: Fix uncore PCI fixed counter handling
    uprobes: Fix utask->depth accounting in handle_trampoline()
    perf/x86: Add constraint for IVB CYCLE_ACTIVITY:CYCLES_LDM_PENDING
    perf: Fix up MMAP2 buffer space reservation
    perf tools: Add attr->mmap2 support
    perf kvm: Fix sample_type manipulation
    perf evlist: Fix id pos in perf_evlist__open()
    perf trace: Handle perf.data files with no tracepoints
    perf session: Separate progress bar update when processing events
    perf trace: Check if MAP_32BIT is defined
    perf hists: Fix formatting of long symbol names
    perf evlist: Fix parsing with no sample_id_all bit set
    perf tools: Add test for parsing with no sample_id_all bit
    perf trace: Check control+C more often

    Linus Torvalds
     

11 Sep, 2013

1 commit

  • This patch adds support for the new PERF_RECORD_MMAP2 record type
    exposed by the kernel. This is an extended PERF_RECORD_MMAP record.

    It adds for each file-backed mapping the device major, minor number and
    the inode number and generation.

    This triplet uniquely identifies the source of a file-backed mapping. It
    can be used to detect identical virtual mappings between processes, for
    instance.

    The patch will prefer MMAP2 over MMAP.

    Signed-off-by: Stephane Eranian
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1377079825-19057-3-git-send-email-eranian@google.com
    [ Cope with 314add6 "Change machine__findnew_thread() to set thread pid",
    fix 'perf test' regression test entry affected,
    use perf_missing_features.mmap2 to fallback to not using .mmap2 in older kernels,
    so that new tools can work with kernels where this feature is not present ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     

10 Sep, 2013

4 commits

  • Manipulating the sample_type of an evsel requires the use of:

    perf_evsel__set_sample_bit()
    and perf_evsel__reset_sample_bit()

    Signed-off-by: Adrian Hunter
    Tested-by: David Ahern
    Acked-by: David Ahern
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1378496412-2424-3-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Ensure the id_pos is correct when perf_evlist__open() is used.

    This fixes a problem introduced in 7556257 that broke 'perf kvm stat
    live' in that this tool wasn't updated to use the sample_type bits
    setting helpers.

    Signed-off-by: Adrian Hunter
    Tested-by: David Ahern
    Acked-by: David Ahern
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1378496412-2424-2-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Before:

    perf trace -i perf.data
    Segmentation fault (core dumped)
    #

    After:

    # perf trace -i perf.data
    Data file does not have raw_syscalls:sys_enter events
    #

    When there are no tracepoints in a perf.data file the struct pevent
    that contains the list of tracepoints that will be used to lookup the
    tracepoint id by name will not be populated, causing a NULL deref.

    And we don't need to do all that dance to look at pevents for an entry
    with a slighly different name to then lookup the tracepoint by its id on
    the evlist, just use the perf_evlist__find_tracepoint_by_name() routine,
    that will find the tracepoint, if present.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-egcm21k1e6gcyxpcgjxtmsq3@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Pull virtio update from Rusty Russell:
    "More console fixes; these are the theoretical ones which didn't get
    CC:stable. But for that reason, I did a merge with master partway
    through to avoid an unnecessary conflict.

    Also: a fun lguest bug turns out if you don't clear the TF flag when
    trapping Bad Things happen to the guest kernel as the stack
    overflows..."

    * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    virtio_pci: pm: Use CONFIG_PM_SLEEP instead of CONFIG_PM
    lguest: fix GPF in guest when using gdb.
    lguest: fix guest kernel stack overflow when TF bit set.
    lguest: fix BUG_ON() in invalid guest page table.
    virtio: console: prevent use-after-free of port name in port unplug
    virtio: console: cleanup an error message
    virtio: console: fix locking around send_sigio_to_port()
    virtio: console: add locking in port unplug path
    virtio: console: add locks around buffer removal in port unplug path
    tools/lguest: offer VIRTIO_F_ANY_LAYOUT for net device.
    virtio tools: add .gitignore
    lguest: Point to the right directory for the lguest launcher

    Linus Torvalds
     

07 Sep, 2013

1 commit

  • Pull powerpc updates from Ben Herrenschmidt:
    "Here's the powerpc batch for this merge window. Some of the
    highlights are:

    - A bunch of endian fixes ! We don't have full LE support yet in that
    release but this contains a lot of fixes all over arch/powerpc to
    use the proper accessors, call the firmware with the right endian
    mode, etc...

    - A few updates to our "powernv" platform (non-virtualized, the one
    to run KVM on), among other, support for bridging the P8 LPC bus
    for UARTs, support and some EEH fixes.

    - Some mpc51xx clock API cleanups in preparation for a clock API
    overhaul

    - A pile of cleanups of our old math emulation code, including better
    support for using it to emulate optional FP instructions on
    embedded chips that otherwise have a HW FPU.

    - Some infrastructure in selftest, for powerpc now, but could be
    generalized, initially used by some tests for our perf instruction
    counting code.

    - A pile of fixes for hotplug on pseries (that was seriously
    bitrotting)

    - The usual slew of freescale embedded updates, new boards, 64-bit
    hiberation support, e6500 core PMU support, etc..."

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (146 commits)
    powerpc: Correct FSCR bit definitions
    powerpc/xmon: Fix printing of set of CPUs in xmon
    powerpc/pseries: Move lparcfg.c to platforms/pseries
    powerpc/powernv: Return secondary CPUs to firmware on kexec
    powerpc/btext: Fix CONFIG_PPC_EARLY_DEBUG_BOOTX on ppc32
    powerpc: Cleanup handling of the DSCR bit in the FSCR register
    powerpc/pseries: Child nodes are not detached by dlpar_detach_node
    powerpc/pseries: Add mising of_node_put in delete_dt_node
    powerpc/pseries: Make dlpar_configure_connector parent node aware
    powerpc/pseries: Do all node initialization in dlpar_parse_cc_node
    powerpc/pseries: Fix parsing of initial node path in update_dt_node
    powerpc/pseries: Pack update_props_workarea to map correctly to rtas buffer header
    powerpc/pseries: Fix over writing of rtas return code in update_dt_node
    powerpc/pseries: Fix creation of loop in device node property list
    powerpc: Skip emulating & leave interrupts off for kernel program checks
    powerpc: Add more exception trampolines for hypervisor exceptions
    powerpc: Fix location and rename exception trampolines
    powerpc: Add more trap names to xmon
    powerpc/pseries: Add a warning in the case of cross-cpu VPA registration
    powerpc: Update the 00-Index in Documentation/powerpc
    ...

    Linus Torvalds
     

06 Sep, 2013

6 commits

  • Currently when processing events in the __perf_session__process_events
    function we update a progress bar based on the file_size. During the
    same processing we update the progress bar from within
    flush_sample_queue which is based on number of samples count.

    Having 2 different based updates is causing the progress bar to jump
    heavily back and forth giving not much usefull info.

    Fixing this by keeping only __perf_session__process_events based
    progress bar update. And turning on flush_sample_queue progress bar
    update only for final flushing.

    This reduces the number of time the progress bar update function is
    called and it significantly reduces the loading time for TUI, where the
    progress bar update takes quite a lot of time.

    Signed-off-by: Jiri Olsa
    Cc: Corey Ashford
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20130905091449.GC1100@krava.brq.redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • MAP_32BIT is defined only on x86... this means perf fails to build on
    all other platforms.

    Signed-off-by: Kyle McMartin
    Cc: Ingo Molnar
    Cc: Linus Torvalds
    Link: http://lkml.kernel.org/r/20130905142947.GA25882@merlin.infradead.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Kyle McMartin
     
  • We had a hardcoded buffer for formatting histogram entries, truncating
    long symbol names (C++ anyone?).

    Fix it by using hists__sort_list_width() before formatting the first
    histogram entry to calculate the max lenght needed by traversing the
    overheads and columns lists (sort order).

    Reported-by: Stephane Eranian
    Tested-by: Stephane Eranian
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-vdfkkyfdp8rboh7j9344o3ss@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The perf_evlist__event2evsel() is changed to handle non-sample events
    (such as mmap events) that have no id sample appended i.e. when
    sample_id_all is not set.

    Note that such events have a fixed format, so that the selected event
    (evsel) they are associated with is immaterial.

    Signed-off-by: Adrian Hunter
    Tested-by: David Ahern
    Acked-by: David Ahern
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1378325897-3840-3-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Add a test for parsing a non-sample event when there is more than one
    selected event but no sample_id_all bit set.

    The test fails because of a bug in the evlist logic. That is fixed in a
    separate patch.

    Signed-off-by: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1378325897-3840-2-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • We were checking for it only after processing all events in the buffer,
    delaying processing the termination request for long periods.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-9jdbu937curvb35cfzbyss4g@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

04 Sep, 2013

1 commit

  • …rnel.org/pub/scm/linux/kernel/git/tip/tip

    Pull perf changes from Ingo Molnar:
    "As a first remark I'd like to point out that the obsolete '-f'
    (--force) option, which has not done anything for several releases,
    has been removed from 'perf record' and related utilities. Everyone
    please update muscle memory accordingly! :-)

    Main changes on the perf kernel side:

    - Performance optimizations:
    . for trace events, by Steve Rostedt.
    . for time values, by Peter Zijlstra

    - New hardware support:
    . for Intel Silvermont (22nm Atom) CPUs, by Zheng Yan
    . for Intel SNB-EP uncore PMUs, by Zheng Yan

    - Enhanced hardware support:
    . for Intel uncore PMUs: add filter support for QPI boxes, by Zheng Yan

    - Core perf events code enhancements and fixes:
    . for full-nohz feature handling, by Frederic Weisbecker
    . for group events, by Jiri Olsa
    . for call chains, by Frederic Weisbecker
    . for event stream parsing, by Adrian Hunter

    - New ABI details:
    . Add attr->mmap2 attribute, by Stephane Eranian
    . Add PERF_EVENT_IOC_ID ioctl to return event ID, by Jiri Olsa
    . Export u64 time_zero on the mmap header page to allow TSC
    calculation, by Adrian Hunter
    . Add dummy software event, by Adrian Hunter.
    . Add a new PERF_SAMPLE_IDENTIFIER to make samples always
    parseable, by Adrian Hunter.
    . Make Power7 events available via sysfs, by Runzhen Wang.

    - Code cleanups and refactorings:
    . for nohz-full, by Frederic Weisbecker
    . for group events, by Jiri Olsa

    - Documentation updates:
    . for perf_event_type, by Peter Zijlstra

    Main changes on the perf tooling side (some of these tooling changes
    utilize the above kernel side changes):

    - Lots of 'perf trace' enhancements:

    . Make 'perf trace' command line arguments consistent with
    'perf record', by David Ahern.

    . Allow specifying syscalls a la strace, by Arnaldo Carvalho de Melo.

    . Add --verbose and -o/--output options, by Arnaldo Carvalho de Melo.

    . Support ! in -e expressions, to filter a list of syscalls,
    by Arnaldo Carvalho de Melo.

    . Arg formatting improvements to allow masking arguments in
    syscalls such as futex and open, where the some arguments are
    ignored and thus should not be printed depending on other args,
    by Arnaldo Carvalho de Melo.

    . Beautify futex open, openat, open_by_handle_at, lseek and futex
    syscalls, by Arnaldo Carvalho de Melo.

    . Add option to analyze events in a file versus live, so that
    one can do:

    [root@zoo ~]# perf record -a -e raw_syscalls:* sleep 1
    [ perf record: Woken up 0 times to write data ]
    [ perf record: Captured and wrote 25.150 MB perf.data (~1098836 samples) ]
    [root@zoo ~]# perf trace -i perf.data -e futex --duration 1
    17.799 ( 1.020 ms): 7127 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, ua
    113.344 (95.429 ms): 7127 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, uaddr2: 0x7fff3f6c6648, val3: 4294967
    133.778 ( 1.042 ms): 18004 futex(uaddr: 0x7fff3f6c6674, op: 393, val: 1, utime: 0x7fff3f6c6470, uaddr2: 0x7fff3f6c6648, val3: 429496
    [root@zoo ~]#

    By David Ahern.

    . Honor target pid / tid options when analyzing a file, by David Ahern.

    . Introduce better formatting of syscall arguments, including so
    far beautifiers for mmap, madvise, syscall return values,
    by Arnaldo Carvalho de Melo.

    . Handle HUGEPAGE defines in the mmap beautifier, by David Ahern.

    - 'perf report/top' enhancements:

    . Do annotation using /proc/kcore and /proc/kallsyms when
    available, removing the forced need for a vmlinux file kernel
    assembly annotation. This also improves this use case because
    vmlinux has just the initial kernel image, not what is actually
    in use after various code patchings by things like alternatives.
    By Adrian Hunter.

    . Add --ignore-callees=<regex> option to collapse undesired parts
    of call graphs, by Greg Price.

    . Simplify symbol filtering by doing it at machine class level,
    by Adrian Hunter.

    . Add support for callchains in the gtk UI, by Namhyung Kim.

    . Add --objdump option to 'perf top', by Sukadev Bhattiprolu.

    - 'perf kvm' enhancements:

    . Add option to print only events that exceed a specified time
    duration, by David Ahern.

    . Improve stack trace printing, by David Ahern.

    . Update documentation of the live command, by David Ahern

    . Add perf kvm stat live mode that combines aspects of 'perf kvm
    stat' record and report, by David Ahern.

    . Add option to analyze specific VM in perf kvm stat report, by
    David Ahern.

    . Do not require /lib/modules/* on a guest, by Jason Wessel.

    - 'perf script' enhancements:

    . Fix symbol offset computation for some dsos, by David Ahern.

    . Fix named threads support, by David Ahern.

    . Don't install scripting files files when perl/python support
    is disabled, by Arnaldo Carvalho de Melo.

    - 'perf test' enhancements:

    . Add various improvements and fixes to the "vmlinux matches
    kallsyms" 'perf test' entry, related to the /proc/kcore
    annotation feature. By Adrian Hunter.

    . Add sample parsing test, by Adrian Hunter.

    . Add test for reading object code, by Adrian Hunter.

    . Add attr record group sampling test, by Jiri Olsa.

    . Misc testing infrastructure improvements and other details,
    by Jiri Olsa.

    - 'perf list' enhancements:

    . Skip unsupported hardware events, by Namhyung Kim.

    . List pmu events, by Andi Kleen.

    - 'perf diff' enhancements:

    . Add support for more than two files comparison, by Jiri Olsa.

    - 'perf sched' enhancements:

    . Various improvements, including removing reliance on some
    scheduler tracepoints that provide the same information as the
    PERF_RECORD_{FORK,EXIT} events. By David Ahern.

    . Remove odd build stall by moving a large struct initialization
    from a local variable to a global one, by Namhyung Kim.

    - 'perf stat' enhancements:

    . Add --initial-delay option to skip measuring for a defined
    startup phase, by Andi Kleen.

    - Generic perf tooling infrastructure/plumbing changes:

    . Tidy up sample parsing validation, by Adrian Hunter.

    . Fix up jobserver setup in libtraceevent Makefile.
    by Arnaldo Carvalho de Melo.

    . Debug improvements, by Adrian Hunter.

    . Fix correlation of samples coming after PERF_RECORD_EXIT event,
    by David Ahern.

    . Improve robustness of the topology parsing code,
    by Stephane Eranian.

    . Add group leader sampling, that allows just one event in a group
    to sample while the other events have just its values read,
    by Jiri Olsa.

    . Add support for a new modifier "D", which requests that the
    event, or group of events, be pinned to the PMU.
    By Michael Ellerman.

    . Support callchain sorting based on addresses, by Andi Kleen

    . Prep work for multi perf data file storage, by Jiri Olsa.

    . libtraceevent cleanups, by Namhyung Kim.

    And lots and lots of other fixes and code reorganizations that did not
    make it into the list, see the shortlog, diffstat and the Git log for
    details!"

    [ Also merge a leftover from the 3.11 cycle ]

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf: Prevent race in unthrottling code

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (237 commits)
    perf trace: Tell arg formatters the arg index
    perf trace: Add beautifier for open's flags arg
    perf trace: Add beautifier for lseek's whence arg
    perf tools: Fix symbol offset computation for some dsos
    perf list: Skip unsupported events
    perf tests: Add 'keep tracking' test
    perf tools: Add support for PERF_COUNT_SW_DUMMY
    perf: Add a dummy software event to keep tracking
    perf trace: Add beautifier for futex 'operation' parm
    perf trace: Allow syscall arg formatters to mask args
    perf: Convert kmalloc_node(...GFP_ZERO...) to kzalloc_node()
    perf: Export struct perf_branch_entry to userspace
    perf: Add attr->mmap2 attribute to an event
    perf/x86: Add Silvermont (22nm Atom) support
    perf/x86: use INTEL_UEVENT_EXTRA_REG to define MSR_OFFCORE_RSP_X
    perf trace: Handle missing HUGEPAGE defines
    perf trace: Honor target pid / tid options when analyzing a file
    perf trace: Add option to analyze events in a file versus live
    perf evlist: Add tracepoint lookup by name
    perf tests: Add a sample parsing test
    ...

    Linus Torvalds
     

03 Sep, 2013

8 commits

  • ... so that it can mask args relative to its position, like the 'mode' arg
    that may or not be printed according to the 'flags' (O_CREAT) value.

    [root@zoo ~]# perf trace -a -e openat,open_by_handle_at | head -1
    469.754 ( 0.034 ms): 1183 openat(dfd: -100, filename: 0x7fbde40014b0, flags: CLOEXEC|DIRECTORY|NONBLOCK) = 23
    [root@zoo ~]#

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-bgokqpkufd4sio7ixxknf1ux@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Suppressing the mode when O_CREAT not present, needs improvements on the
    arg masking mechanism to be reused in openat, open_by_handle_at,
    mq_open:

    [root@zoo ~]# perf trace -a -e open | grep -v 'flags: RDONLY' | head -5
    147.541 ( 0.028 ms): 1188 open(filename: 0x33c17782fb, flags: CLOEXEC ) = 23
    229.898 ( 0.020 ms): 2071 open(filename: 0x3d93c80, flags: NOATIME ) = -1 EPERM Operation not permitted

    [root@zoo ~]# perf trace -a -e open | grep CREAT
    1406.697 ( 0.024 ms): 616 open(filename: 0x7fffc3a0f910, flags: CREAT|TRUNC|WRONLY, mode: 438 ) = -1 ENOENT No such file or directory
    2032.770 ( 0.804 ms): 4354 open(filename: 0x7f33ac814368, flags: CREAT|EXCL|RDWR, mode: 384 ) = 115
    ^C[root@zoo ~]#

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-c7vm6klaf995qw1vqdih5t7q@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • [root@zoo ~]# perf trace -a -e lseek | head -1
    546.922 ( 0.004 ms): 1184 lseek(fd: 26, offset: 0, whence: CUR) = 2
    [root@zoo ~]#

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-2eiuhwz9jbnhj80q6jaqeji4@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • For some dsos (e.g., libc, libpthread, kernel modules) the symbol offset
    is huge. e.g.,

    qemu-kvm 17238/17242 [007] 762235.640311:
    ffffffff816288a1 __schedule+0x451 ([kernel.kallsyms])
    ffffffff81629609 schedule+0x29 ([kernel.kallsyms])
    ffffffffa00a6ded kvm_vcpu_block+0xffffffffa00a106d (/lib/modules/3.11.0-rc1+/kernel/arch/x86/kvm/kvm.ko)
    ffffffffa00bae6b kvm_arch_vcpu_ioctl_run+0xffffffffa00a118b (/lib/modules/3.11.0-rc1+/kernel/arch/x86/kvm/kvm.ko)
    ffffffffa00a4d7a kvm_vcpu_ioctl+0xffffffffa00a141a (/lib/modules/3.11.0-rc1+/kernel/arch/x86/kvm/kvm.ko)
    ffffffff811a7bdb do_vfs_ioctl+0x8b ([kernel.kallsyms])
    ffffffff811a80c1 sys_ioctl+0x91 ([kernel.kallsyms])
    ffffffff81633182 system_call+0x72 ([kernel.kallsyms])
    7f882a97af27 __GI___ioctl+0x7f882a891007 (/lib64/libc-2.14.90.so)
    100000002 [unknown] ([unknown])

    It seems to be maps with a non-0 start. Taking that into account the
    offsets are correct:

    qemu-kvm 17238/17242 [007] 762235.640311:
    ffffffff816288a1 __schedule+0x451 ([kernel.kallsyms])
    ffffffff81629609 schedule+0x29 ([kernel.kallsyms])
    ffffffffa00a6ded kvm_vcpu_block+0x6d (/lib/modules/3.11.0-rc1+/kernel/arch/x86/kvm/kvm.ko)
    ffffffffa00bae6b kvm_arch_vcpu_ioctl_run+0x18b (/lib/modules/3.11.0-rc1+/kernel/arch/x86/kvm/kvm.ko)
    ffffffffa00a4d7a kvm_vcpu_ioctl+0x41a (/lib/modules/3.11.0-rc1+/kernel/arch/x86/kvm/kvm.ko)
    ffffffff811a7bdb do_vfs_ioctl+0x8b ([kernel.kallsyms])
    ffffffff811a80c1 sys_ioctl+0x91 ([kernel.kallsyms])
    ffffffff81633182 system_call+0x72 ([kernel.kallsyms])
    7f882a97af27 __GI___ioctl+0x7 (/lib64/libc-2.14.90.so)
    100000002 [unknown] ([unknown])

    Signed-off-by: David Ahern
    Link: http://lkml.kernel.org/r/1375026512-45826-1-git-send-email-dsahern@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    David Ahern
     
  • Some hardware events might not be supported on a system. Listing those
    events seems meaningless and confusing to users. Let's skip them.

    Before:
    $ perf list cache | wc -l
    33

    After:
    $ perf list cache | wc -l
    27

    Signed-off-by: Namhyung Kim
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1377571313-14722-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Add a test for the newly added PERF_COUNT_SW_DUMMY event. The test
    checks that tracking events continue when an event is disabled but a
    dummy software event is not disabled.

    Signed-off-by: Adrian Hunter
    Acked-by: Jiri Olsa
    Tested-by: Jiri Olsa
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1377975053-3811-4-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Add support for the new dummy software event PERF_COUNT_SW_DUMMY.

    Signed-off-by: Adrian Hunter
    Acked-by: Jiri Olsa
    Tested-by: Jiri Olsa
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1377975053-3811-3-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • That uses the arg mask mechanism just introduced to suppress ignored
    arguments according to the futex operation.

    Based on an initial patch from David Ahern that showed the need for some
    way to allow args to tell how many further args should be shown.

    Initial-patch-by: David Ahern
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-0k30it46r4hv5eanefbdmj5t@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo