07 Aug, 2017

1 commit

  • [ Upstream commit 074859184d770824f4437dca716bdeb625ae8b1c ]

    Currently, the sched:sched_switch tracepoint reports deadline tasks with
    priority -1. But when reading the trace via perf script I've got the
    following output:

    # ./d & # (d is a deadline task, see [1])
    # perf record -e sched:sched_switch -a sleep 1
    # perf script
    ...
    swapper 0 [000] 2146.962441: sched:sched_switch: swapper/0:0 [120] R ==> d:2593 [4294967295]
    d 2593 [000] 2146.972472: sched:sched_switch: d:2593 [4294967295] R ==> g:2590 [4294967295]

    The task d reports the wrong priority [4294967295]. This happens because
    the "int prio" is stored in an unsigned long long val. Although it is
    set as a %lld, as int is shorter than unsigned long long,
    trace_seq_printf prints it as a positive number.

    The fix is just to cast the val as an int, and print it as a %d,
    as in the sched:sched_switch tracepoint's "format".

    The output with the fix is:

    # ./d &
    # perf record -e sched:sched_switch -a sleep 1
    # perf script
    ...
    swapper 0 [000] 4306.374037: sched:sched_switch: swapper/0:0 [120] R ==> d:10941 [-1]
    d 10941 [000] 4306.383823: sched:sched_switch: d:10941 [-1] R ==> swapper/0:0 [120]

    [1] d.c

    ---
    #include
    #include
    #include
    #include
    #include

    struct sched_attr {
    __u32 size, sched_policy;
    __u64 sched_flags;
    __s32 sched_nice;
    __u32 sched_priority;
    __u64 sched_runtime, sched_deadline, sched_period;
    };

    int sched_setattr(pid_t pid, const struct sched_attr *attr, unsigned int flags)
    {
    return syscall(__NR_sched_setattr, pid, attr, flags);
    }

    int main(void)
    {
    struct sched_attr attr = {
    .size = sizeof(attr),
    .sched_policy = SCHED_DEADLINE, /* This creates a 10ms/30ms reservation */
    .sched_runtime = 10 * 1000 * 1000,
    .sched_period = attr.sched_deadline = 30 * 1000 * 1000,
    };

    if (sched_setattr(0, &attr, 0) < 0) {
    perror("sched_setattr");
    return -1;
    }

    for(;;);
    }
    ---

    Committer notes:

    Got the program from the provided URL, http://bristot.me/lkml/d.c,
    trimmed it and included in the cset log above, so that we have
    everything needed to test it in one place.

    Signed-off-by: Daniel Bristot de Oliveira
    Acked-by: Steven Rostedt
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Daniel Bristot de Oliveira
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/866ef75bcebf670ae91c6a96daa63597ba981f0d.1483443552.git.bristot@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Daniel Bristot de Oliveira
     

21 Jul, 2017

1 commit

  • commit 98dcea0cfd04e083ac74137ceb9a632604740e2d upstream.

    liblockdep has been broken since commit 75dd602a5198 ("lockdep: Fix
    lock_chain::base size"), as that adds a check that MAX_LOCK_DEPTH is
    within the range of lock_chain::depth and in liblockdep it is much
    too large.

    That should have resulted in a compiler error, but didn't because:

    - the check uses ARRAY_SIZE(), which isn't yet defined in liblockdep
    so is assumed to be an (undeclared) function
    - putting a function call inside a BUILD_BUG_ON() expression quietly
    turns it into some nonsense involving a variable-length array

    It did produce a compiler warning, but I didn't notice because
    liblockdep already produces too many warnings if -Wall is enabled
    (which I'll fix shortly).

    Even before that commit, which reduced lock_chain::depth from 8 bits
    to 6, MAX_LOCK_DEPTH was too large.

    Signed-off-by: Ben Hutchings
    Signed-off-by: Sasha Levin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: a.p.zijlstra@chello.nl
    Link: http://lkml.kernel.org/r/20170525130005.5947-3-alexander.levin@verizon.com
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Ben Hutchings
     

05 Oct, 2016

1 commit

  • When it's called with an offset less than or equal to the first event,
    it'll return a garbage value since the data is not initialized.

    Signed-off-by: Namhyung Kim
    Acked-by: Steven Rostedt
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20161001101700.29146-1-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

04 Oct, 2016

1 commit

  • Automatically adapt the now wider and word wrapped perf list output to
    wider terminals. This requires querying the terminal before the auto
    pager takes over, and exporting this information from the pager
    subsystem.

    Signed-off-by: Andi Kleen
    Signed-off-by: Sukadev Bhattiprolu
    Acked-by: Ingo Molnar
    Acked-by: Jiri Olsa
    Acked-by: Namhyung Kim
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Madhavan Srinivasan
    Cc: Peter Zijlstra
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: http://lkml.kernel.org/r/1473978296-20712-8-git-send-email-sukadev@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Andi Kleen
     

08 Sep, 2016

1 commit

  • Detect hugetlbfs. hugetlbfs__mountpoint() will be used during recording
    to help identifying hugetlb mmaps: which should be recognized as anon
    mapping.

    Signed-off-by: Wang Nan
    Reviewed-by: Nilay Vaish
    Cc: He Kuang
    Cc: Hou Pengyang
    Cc: Zefan Li
    Link: http://lkml.kernel.org/r/1473137909-142064-3-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

04 Aug, 2016

1 commit

  • …ernel/git/acme/linux into perf/urgent

    Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

    New features:

    - Add --sample-cpu to 'perf record', to explicitely ask for sampling
    the CPU (Jiri Olsa)

    Fixes:

    - Fix processing of multi byte chunks in objdump output, fixing
    disassemble processing for annotation on at least ARM64 (Jan Stancek)

    - Use SyS_epoll_wait in a BPF 'perf test' entry instead of sys_epoll_wait, that
    is not present in the DWARF info in vmlinux files (Arnaldo Carvalho de Melo)

    - Add -wno-shadow when processing files using perl headers, fixing
    the build on Fedora Rawhide and Arch Linux (Namhyung Kim)

    Infrastructure changes:

    - Annotate prep work to better catch and report errors related to
    using objdump to disassemble DSOs (Arnaldo Carvalho de Melo)

    - Add 'alloc', 'scnprintf' and 'and' methods for bitmap processing (Jiri Olsa)

    - Add nested output resorting callback in hists processing (Jiri Olsa)

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

    Ingo Molnar
     

03 Aug, 2016

2 commits

  • Add support to perform logical and on bitmaps. Code taken from kernel's
    include/linux/bitmap.h.

    Signed-off-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1470074555-24889-4-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Add support to print bitmap list. Code mostly taken from kernel's
    bitmap_list_string.

    Signed-off-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1470074555-24889-3-git-send-email-jolsa@kernel.org
    [ s/bitmap_snprintf/bitmap_scnprintf/g as it is a scnprintf wrapper, having the same semantics wrt return value ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

02 Aug, 2016

1 commit


28 Jul, 2016

1 commit

  • Because it uses that function, which would lead every tool using it
    to need to link against tools/lib/str_error_r.o.

    This fixes building tools/vm/, that links with libapi.

    Reported-by: Arjan van de Ven
    Reported-by: Randy Dunlap
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Fixes: b31e3e3316a7 ("tools lib api fs: Use str_error_r()")
    Link: http://lkml.kernel.org/n/tip-aedt3qzibhnhaov2j4caqi61@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

26 Jul, 2016

1 commit

  • New LLVM will issue newly assigned EM_BPF machine code. The new code
    will be propagated to glibc and libelf.

    This patch introduces the new machine code to libbpf.

    Signed-off-by: Wang Nan
    Acked-by: Alexei Starovoitov
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1468821668-60088-1-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

16 Jul, 2016

2 commits

  • Add a 'ptr' field to fdarray->priv array.

    This feature will be used by following commits, which introduce
    muiltiple 'struct perf_mmap' arrays for different types of mapping.

    Because of this, during fdarray__filter(), a simple 'idx' is not enough.

    Add a pointer cookie that allows to directly associate a 'struct
    perf_mmap' pointer to an fdarray entry.

    Signed-off-by: Wang Nan
    Acked-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: He Kuang
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Nilay Vaish
    Cc: Peter Zijlstra
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1468485287-33422-3-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • By using 0 for base, the strtoull() detects the base automatically (see
    'man strtoull').

    ATM we have just one user of this function, the cpu__get_max_freq
    function reading the "cpuinfo_max_freq" sysfs file. It should not get
    affected by this change.

    Committer note:

    This change seems motivated by this discussion:

    "[PATCH] [RFC V1]s390/perf: fix 'start' address of module's map"
    http://lkml.kernel.org/r/20160711120155.GA29929@krava

    I.e. this patches paves the way for filename__read_ull() to be used in a
    S/390 related fix.

    Signed-off-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Songshan Gong
    Link: http://lkml.kernel.org/r/1468567797-27564-4-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

14 Jul, 2016

3 commits

  • We need to include netinet/in.h to get the in6_addr struct definition, needed to
    build it on the Android NDK:

    In file included from event-parse.c:36:0:
    /home/acme/android/android-ndk-r12/platforms/android-24/arch-arm/usr/include/netinet/ip6.h:82:18: error: field 'ip6_src' has incomplete type
    struct in6_addr ip6_src; /* source address */

    And it is the canonical way of getting IPv6 definitions, as described,
    for instance, in Linux's 'man ipv6'

    Doing that uncovers another problem: this source file uses PRIu64 but
    doesn't include it, depending on it being included by chance via the now
    replaced header (netinet/ip6.h), fix it.

    Cc: Adrian Hunter
    Cc: Chris Phlipot
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Steven Rostedt
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-tilr31n3yaba1whsd47qlwa3@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Now libbpf support tracepoint program type. Report meaningful error when kernel
    version is less than 4.7.

    Signed-off-by: Wang Nan
    Cc: Alexei Starovoitov
    Cc: Jiri Olsa
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1468406646-21642-3-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • Add 4 new APIs to adjust and query the type of a BPF program.
    Load program according to type set by caller. Default is set to
    BPF_PROG_TYPE_KPROBE.

    Signed-off-by: Wang Nan
    Cc: Alexei Starovoitov
    Cc: Jiri Olsa
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1468406646-21642-2-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

13 Jul, 2016

7 commits

  • Add a 'CPU' special field to allow the filter in trace-cmd report to
    filter on the task's CPU.

    By adding a special field 'CPU' (all caps) the user can now filter out
    tasks based on which CPU they are on. This is useful when filtering out
    (or in) a bunch of threads.

    -F 'CPU == 0'

    Signed-off-by: Steven Rostedt
    Cc: Andrew Morton
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/20160712093306.5b058103@gandalf.local.home
    Signed-off-by: Arnaldo Carvalho de Melo

    Steven Rostedt
     
  • To allow the build to complete on older systems, where those files are
    either not uptodate, lacking some recent additions or not present at
    all.

    And check if the copy drifts from the kernel, as in this synthetic test:

    BUILD: Doing 'make -j4' parallel build
    Warning: tools/include/linux/bpf.h differs from kernel
    Warning: tools/include/linux/bpf_common.h differs from kernel

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-5plvi2gq4x469dcyybiu226q@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • To make it portable to non-glibc systems, that follow the XSI variant
    instead of the GNU specific one that gets in place when _GNU_SOURCE is
    defined.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Josh Poimboeuf
    Cc: Namhyung Kim
    Cc: Steven Rostedt
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-bozcszy93tpgw9ad6qm3dhpx@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • To make it portable to non-glibc systems, that follow the XSI variant
    instead of the GNU specific one that gets in place when _GNU_SOURCE is
    defined.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Steven Rostedt
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-mixgnh3iyajuqogn2opsocdy@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • To make it portable to non-glibc systems, that follow the XSI variant
    instead of the GNU specific one that gets in place when _GNU_SOURCE is
    defined.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Steven Rostedt
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-c1gn8x978qfop65m510wy43o@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • They were in tools/include/linux/kernel.h, requiring that it in turn
    included stdio.h, which is way too heavy.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Josh Poimboeuf
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-855h8olnkot9v0dajuee1lo3@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The tools so far have been using the strerror_r() GNU variant, that
    returns a string, be it the buffer passed or something else.

    But that, besides being tricky in cases where we expect that the
    function using strerror_r() returns the error formatted in a provided
    buffer (we have to check if it returned something else and copy that
    instead), breaks the build on systems not using glibc, like Alpine
    Linux, where musl libc is used.

    So, introduce yet another wrapper, str_error_r(), that has the GNU
    interface, but uses the portable XSI variant of strerror_r(), so that
    users rest asured that the provided buffer is used and it is what is
    returned.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-d4t42fnf48ytlk8rjxs822tf@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

05 Jul, 2016

3 commits

  • this enables the workaround for compilers that generate warnings when
    compiling libsubcmd.

    Signed-off-by: Chris Phlipot
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1467349955-1135-3-git-send-email-cphlipot0@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     
  • This enables the workaround for compilers that generate warnings when
    compiling libapi.

    Signed-off-by: Chris Phlipot
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1467349955-1135-2-git-send-email-cphlipot0@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     
  • Adding a missing license descriptopn header to files in libbpf, make it
    LGPL-2.1.

    Signed-off-by: Wang Nan
    Cc: Alexei Starovoitov
    Cc: Daniel Borkmann
    Cc: Eric Leblond
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1467630162-193121-1-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

29 Jun, 2016

1 commit


07 Jun, 2016

7 commits

  • For consistency with class__priv() elsewhere, and with the callback
    typedef for clearing those areas (e.g. bpf_map_clear_priv_t).

    Acked-by: Wang Nan
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/n/tip-rnbiyv27ohw8xppsgx0el3xb@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • For consistency with bpf_map__priv() and elsewhere.

    Acked-by: Wang Nan
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/n/tip-x17nk5mrazkf45z0l0ahlmo8@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The use of this term is not warranted here, we use it in the kernel
    sources and in tools/ for refcounting, so, for consistency, rename them.

    Acked-bu: Wang Nan
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/n/tip-4ya1ot2e2fkrz48ws9ebiofs@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • For consistency, leaving "get" for reference counting.

    Acked-by: Wang Nan
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/n/tip-msy8sxfz9th6gl2xjeci2btm@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • And for consistency, rename it to bpf_map__def(), leaving "get" for
    reference counting.

    Also make it return a const pointer, as suggested by Wang.

    Acked-by: Wang Nan
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/n/tip-mer00xqkiho0ymg66b5i9luw@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • For consistency, leaving "get" for reference counting.

    Acked-by: Wang Nan
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/n/tip-crnflv84ejyhpba933ec71gs@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • To try to, over time, consistently use the IS_ERR() interface instead of
    using two return values, i.e. the integer return value for an error and
    the pointer address to return the bpf_map->priv pointer.

    Also rename it to bpf__priv(), to leave the "get" term for reference
    counting.

    Noticed while working on using BPF for collecting non-integer syscall
    argument payloads (struct sockaddr in calls such as connect(), for
    instance), where we need to use BPF maps and thus generalise
    bpf__setup_stdout() to connect bpf_output events with maps in a bpf
    proggie.

    Acked-by: Wang Nan
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/n/tip-saypxyd6ptrct379jqgxx4bl@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

04 Jun, 2016

1 commit


30 May, 2016

1 commit

  • Before this patch there's no way to pass arguments to fdarray__filter's
    call back function.

    This improvement will be used by 'perf record' to support unmapping ring
    buffer for both main evlist and overwrite evlist. Without this patch
    there's no way to track overwrite evlist from 'struct fdarray'.

    Signed-off-by: Wang Nan
    Cc: He Kuang
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1464183898-174512-10-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

17 May, 2016

1 commit

  • Pull perf updates from Ingo Molnar:
    "Bigger kernel side changes:

    - Add backwards writing capability to the perf ring-buffer code,
    which is preparation for future advanced features like robust
    'overwrite support' and snapshot mode. (Wang Nan)

    - Add pause and resume ioctls for the perf ringbuffer (Wang Nan)

    - x86 Intel cstate code cleanups and reorgnization (Thomas Gleixner)

    - x86 Intel uncore and CPU PMU driver updates (Kan Liang, Peter
    Zijlstra)

    - x86 AUX (Intel PT) related enhancements and updates (Alexander
    Shishkin)

    - x86 MSR PMU driver enhancements and updates (Huang Rui)

    - ... and lots of other changes spread out over 40+ commits.

    Biggest tooling side changes:

    - 'perf trace' features and enhancements. (Arnaldo Carvalho de Melo)

    - BPF tooling updates (Wang Nan)

    - 'perf sched' updates (Jiri Olsa)

    - 'perf probe' updates (Masami Hiramatsu)

    - ... plus 200+ other enhancements, fixes and cleanups to tools/

    The merge commits, the shortlog and the changelogs contain a lot more
    details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (249 commits)
    perf/core: Disable the event on a truncated AUX record
    perf/x86/intel/pt: Generate PMI in the STOP region as well
    perf buildid-cache: Use lsdir() for looking up buildid caches
    perf symbols: Use lsdir() for the search in kcore cache directory
    perf tools: Use SBUILD_ID_SIZE where applicable
    perf tools: Fix lsdir to set errno correctly
    perf trace: Move seccomp args beautifiers to tools/perf/trace/beauty/
    perf trace: Move flock op beautifier to tools/perf/trace/beauty/
    perf build: Add build-test for debug-frame on arm/arm64
    perf build: Add build-test for libunwind cross-platforms support
    perf script: Fix export of callchains with recursion in db-export
    perf script: Fix callchain addresses in db-export
    perf script: Fix symbol insertion behavior in db-export
    perf symbols: Add dso__insert_symbol function
    perf scripting python: Use Py_FatalError instead of die()
    perf tools: Remove xrealloc and ALLOC_GROW
    perf help: Do not use ALLOC_GROW in add_cmd_list
    perf pmu: Make pmu_formats_string to check return value of strbuf
    perf header: Make topology checkers to check return value of strbuf
    perf tools: Make alias handler to check return value of strbuf
    ...

    Linus Torvalds
     

12 May, 2016

1 commit

  • At the end of process_filter(), collapse_tree() was changed to update
    the parg parameter, but the reassignment after the call wasn't removed.

    What happens is that the "current_op" gets modified and freed and parg
    is assigned to the new allocated argument. But after the call to
    collapse_tree(), parg is assigned again to the just freed "current_op",
    and this causes the tool to crash.

    The current_op variable must also be assigned to NULL in case of error,
    otherwise it will cause it to be free()ed twice.

    Signed-off-by: Steven Rostedt
    Acked-by: Namhyung Kim
    Cc: stable@vger.kernel.org # 3.14+
    Fixes: 42d6194d133c ("tools lib traceevent: Refactor process_filter()")
    Link: http://lkml.kernel.org/r/20160511150936.678c18a1@gandalf.local.home
    Signed-off-by: Arnaldo Carvalho de Melo

    Steven Rostedt
     

27 Apr, 2016

1 commit


30 Mar, 2016

1 commit

  • Here on Ubuntu/precise I have GNU/coreutils v8.13 installed
    where 'basename -s' is not supported.

    The result is that run_tests.sh is not done properly.

    How to reproduce:

    $ cd $BUILD_DIR
    $ LC_ALL=C make -C tools/ liblockdep
    $ cd tools/lib/lockdep/

    $ LC_ALL=C ./run_tests.sh
    basename: invalid option -- 's'
    Try `basename --help' for more information.
    ... timeout: failed to run command `./tests/': Permission denied
    FAILED!
    rm: cannot remove `tests/': Is a directory

    Due to unsupported basename the tests programs are not generated
    and cannot be removed.

    Fix this by doing a compatible basename invocation and check for
    the existence of generated tests programs.

    For more details see this LKML thread:

    http://marc.info/?t=145906667300001&r=1&w=2

    Signed-off-by: Sedat Dilek
    Cc: Boqun Feng
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Sasha Levin (maintainer:LIBLOCKDEP)
    Cc: Shuah Khan
    Cc: Theodore Ts'o
    Cc: Thomas Gleixner
    Cc: linux-fsdevel
    Link: http://lkml.kernel.org/r/1459326169-7009-1-git-send-email-sedat.dilek@gmail.com
    Signed-off-by: Ingo Molnar

    Sedat Dilek