06 Oct, 2016

1 commit

  • Commit 747ea55e4f78 ("bpf: fix bpf_skb_in_cgroup helper naming") renames
    BPF_FUNC_skb_in_cgroup to bpf_skb_under_cgroup, triggering this warning
    while building perf:

    Warning: tools/include/uapi/linux/bpf.h differs from kernel

    Update the copy to ack that, no changes needed, as
    BPF_FUNC_skb_in_cgroup isn't used so far.

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

    Arnaldo Carvalho de Melo
     

14 Sep, 2016

1 commit

  • Some mmap related macros have different values for different
    architectures. This patch introduces uapi mman.h for each
    architectures.

    Three headers are cloned from kernel include to tools/include:

    tools/include/uapi/asm-generic/mman-common.h
    tools/include/uapi/asm-generic/mman.h
    tools/include/uapi/linux/mman.h

    The main part of this patch is generated by following script:

    macros=`cat $0 | awk 'V==1 {print}; /^# start macro list/ {V=1}'`
    for arch in `ls tools/arch`
    do
    [ -d tools/arch/$arch/include/uapi/asm ] || mkdir -p tools/arch/$arch/include/uapi/asm
    src=arch/$arch/include/uapi/asm/mman.h
    target=tools/arch/$arch/include/uapi/asm/mman.h
    guard="TOOLS_ARCH_"`echo $arch | awk '{print toupper($0)}'`_UAPI_ASM_MMAN_FIX_H
    echo '#ifndef '$guard > $target
    echo '#define '$guard >> $target

    [ -f $src ] &&
    for m in $macros
    do
    if grep '#define[ \t]*'$m $src > /dev/null 2>&1
    then
    grep -h '#define[ \t]*'$m $src | sed 's/[ \t]*\/\*.*$//g' >> $target
    fi
    done

    if [ -f $src ]
    then
    grep '#include > $target
    echo "$target"
    done

    exit 0
    # Following macros are extracted from:
    # tools/perf/trace/beauty/mmap.c
    #
    # start macro list
    MADV_DODUMP
    MADV_DOFORK
    MADV_DONTDUMP
    MADV_DONTFORK
    MADV_DONTNEED
    MADV_HUGEPAGE
    MADV_HWPOISON
    MADV_MERGEABLE
    MADV_NOHUGEPAGE
    MADV_NORMAL
    MADV_RANDOM
    MADV_REMOVE
    MADV_SEQUENTIAL
    MADV_SOFT_OFFLINE
    MADV_UNMERGEABLE
    MADV_WILLNEED
    MAP_32BIT
    MAP_ANONYMOUS
    MAP_DENYWRITE
    MAP_EXECUTABLE
    MAP_FILE
    MAP_FIXED
    MAP_GROWSDOWN
    MAP_HUGETLB
    MAP_LOCKED
    MAP_NONBLOCK
    MAP_NORESERVE
    MAP_POPULATE
    MAP_PRIVATE
    MAP_SHARED
    MAP_STACK
    MAP_UNINITIALIZED
    MREMAP_FIXED
    MREMAP_MAYMOVE
    PROT_EXEC
    PROT_GROWSDOWN
    PROT_GROWSUP
    PROT_NONE
    PROT_READ
    PROT_SEM
    PROT_WRITE

    Signed-off-by: Wang Nan
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1473684871-209320-2-git-send-email-wangnan0@huawei.com
    [ Added new files to tools/perf/MANIFEST to fix the detached tarball build, add mman.h for ARC ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

24 Aug, 2016

2 commits

  • Directly accessing kernel files is not allowed anymore. As such making
    file coresight-pmu.h accessible by the perf tools and complain if this
    copy strays from the one found in the main kernel tree.

    Signed-off-by: Mathieu Poirier
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Vince Weaver
    Link: http://lkml.kernel.org/r/1470932464-726-2-git-send-email-mathieu.poirier@linaro.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Mathieu Poirier
     
  • And remove it from tools/perf/{perf,util}.h, making code that needs
    these macros to include linux/time64.h instead, to match how this is
    used in the kernel sources.

    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-e69fc1pvkgt57yvxqt6eunyg@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

19 Aug, 2016

1 commit

  • perf tools build in recent kernels spews splat when cross compiling with uClibc:

    | CC util/alias.o
    | In file included from tools/perf/util/../ui/../util/cache.h:8:0,
    | from tools/perf/util/../ui/helpline.h:7,
    | from tools/perf/util/debug.h:8,
    | from arch/../util/cpumap.h:9,
    | from arch/../util/env.h:5,
    | from arch/common.h:4,
    | from arch/common.c:3:
    | tools/include/linux/string.h:12:15: warning: redundant redeclaration of ‘strlcpy’ [-Wredundant-decls]
    | extern size_t strlcpy(char *dest, const char *src, size_t size);
    ^
    This is after commit 61a6445e463a31 ("tools lib: Guard the strlcpy() header with
    __GLIBC__").

    The problem is uClibc also defines __GLIBC__ for exported headers for
    applications. So add that specific check to not trip for uClibc.

    Signed-off-by: Vineet Gupta
    Cc: Adrian Hunter
    Cc: Alexey Brodkin
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Josh Poimboeuf
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Petri Gynther
    Cc: Wang Nan
    Cc: linux-snps-arc@lists.infradead.org
    Link: http://lkml.kernel.org/r/1471537703-16439-1-git-send-email-vgupta@synopsys.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Vineet Gupta
     

09 Aug, 2016

1 commit

  • The way we're using kernel headers in tools/ now, with a copy that is
    made to the same path prefixed by "tools/" plus checking if that copy
    got stale, i.e. if the kernel counterpart changed, helps in keeping
    track with new features that may be useful for tools to exploit.

    For instance, looking at all the changes to bpf.h since it was last
    copied to tools/include brings this to toolers' attention:

    Need to investigate this one to check how to run a program via perf, setting up
    a BPF event, that will take advantage of the way perf already calls clang/LLVM,
    sets up the event and runs the workload in a single command line, helping in
    debugging such semi cooperative programs:

    96ae52279594 ("bpf: Add bpf_probe_write_user BPF helper to be called in tracers")

    This one needs further investigation about using the feature it improves
    in 'perf trace' to do some tcpdumpin' mixed with syscalls, tracepoints,
    probe points, callgraphs, etc:

    555c8a8623a3 ("bpf: avoid stack copy and use skb ctx for event output")

    Add tracing just packets that are related to some container to that mix:

    4a482f34afcc ("cgroup: bpf: Add bpf_skb_in_cgroup_proto")
    4ed8ec521ed5 ("cgroup: bpf: Add BPF_MAP_TYPE_CGROUP_ARRAY")

    Definetely needs to have example programs accessing task_struct from a bpf proggie
    started from 'perf trace':

    606274c5abd8 ("bpf: introduce bpf_get_current_task() helper")

    Core networking related, XDP:

    6ce96ca348a9 ("bpf: add XDP_TX xdp_action for direct forwarding")
    6a773a15a1e8 ("bpf: add XDP prog type for early driver filter")
    13c5c240f789 ("bpf: add bpf_get_hash_recalc helper")
    d2485c4242a8 ("bpf: add bpf_skb_change_type helper")
    6578171a7ff0 ("bpf: add bpf_skb_change_proto helper")

    Changes detected by the tools build system:

    $ make -C tools/perf O=/tmp/build/perf install-bin
    make: Entering directory '/home/acme/git/linux/tools/perf'
    BUILD: Doing 'make -j4' parallel build
    Warning: tools/include/uapi/linux/bpf.h differs from kernel
    INSTALL GTK UI
    CC /tmp/build/perf/bench/mem-memcpy-x86-64-asm.o

    $

    Cc: Adrian Hunter
    Cc: Alexei Starovoitov
    Cc: Brenden Blanco
    Cc: Daniel Borkmann
    Cc: David Ahern
    Cc: David S. Miller
    Cc: Jiri Olsa
    Cc: Martin KaFai Lau
    Cc: Namhyung Kim
    Cc: Sargun Dhillon
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-difq4ts1xvww6eyfs9e7zlft@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

03 Aug, 2016

3 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
     
  • Adding bitmap_alloc function to dynamically allocate bitmap.

    Signed-off-by: Jiri Olsa
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20160802113302.GA7479@krava
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

19 Jul, 2016

2 commits


16 Jul, 2016

1 commit

  • Do it using (__CHAR_BIT__ * __SIZEOF_LONG__), simpler, works everywhere,
    reduces the complexity by ditching CONFIG_64BIT, that was being
    synthesized from yet another set of defines, which proved fragile,
    breaking the build on linux-next for no obvious reasons.

    Committer Note:

    Except on:

    gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)

    Fallback to __WORDSIZE in that case...

    Reported-by: Stephen Rothwell
    Signed-off-by: Peter Zijlstra
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Andy Lutomirski
    Cc: H. Peter Anvin
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20160715072243.GP30154@twins.programming.kicks-ass.net
    Signed-off-by: Arnaldo Carvalho de Melo

    Peter Zijlstra
     

14 Jul, 2016

2 commits

  • As the gcc there is producing tons of:

    "warning: always_inline function might not be inlinable"

    At least on android-ndk-r12/platforms/android-24/arch-arm, so, for the
    time being, use this big hammer.

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

    Arnaldo Carvalho de Melo
     
  • It was set based on CONFIG_64BIT, that is available only when using
    Kconfig, which we're working towards but not to the point of having this
    CONFIG variable set, so synthesize it from available compiler defined
    defines, __SIZEOF_LONG__ or, lacking that, __WORDSIZE.

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

    Arnaldo Carvalho de Melo
     

13 Jul, 2016

9 commits

  • The objtool build fails with the recent changes to the bits-per-long
    headers:

    tools/include/linux/bitops.h:12:0: error: "BITS_PER_LONG" redefined [-Werror]

    Which got introduced by:

    bb9707077b4e tools: Copy the bitsperlong.h files from the kernel

    Work it around for the time being.

    Cc: Arnaldo Carvalho de Melo
    Cc: Josh Poimboeuf
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • We use it in bitops/__ffs.h and bitops/atomic.h, that we also got from
    the kernel, but were getting it from either newer systems that carry it
    in /usr/include, or from the kernel sources, that we decided not to
    touch from tools/ code. Fix it.

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

    Arnaldo Carvalho de Melo
     
  • 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.

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

    Arnaldo Carvalho de Melo
     
  • 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
     
  • We can't access kernel files directly from tools/, so copy the required
    bits, and make sure that we detect when the original files, in the
    kernel, gets modified.

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

    Arnaldo Carvalho de Melo
     
  • We shouldn't use headers from the kernel sources directly, instead we
    should use the system's headers or in cases where that isn't possible,
    like with perf_event.h, where the introduction of kernel features such
    as perf_event_attr.{write_backwards,sample_max_stack} and
    PERF_EVENT_IOC_PAUSE_OUTPUT take some time to become available in
    /usr/include/linux/perf_event.h we need a copy.

    Do it and check for source code drift, emitting a warning when changes
    are detected.

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

    Arnaldo Carvalho de Melo
     
  • Better to whitelist it for libraries that require it (glibc) than
    blacklist it with the ones that don't (uclibc, musl libc, etc).

    Cc: Adrian Hunter
    Cc: Alexey Brodkin
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Vineet Gupta
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-52ih0m63a2n63tanpy6yj682@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
     

25 Mar, 2016

1 commit

  • Pull perf fixes from Ingo Molnar:
    "This tree contains various perf fixes on the kernel side, plus three
    hw/event-enablement late additions:

    - Intel Memory Bandwidth Monitoring events and handling
    - the AMD Accumulated Power Mechanism reporting facility
    - more IOMMU events

    ... and a final round of perf tooling updates/fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits)
    perf llvm: Use strerror_r instead of the thread unsafe strerror one
    perf llvm: Use realpath to canonicalize paths
    perf tools: Unexport some methods unused outside strbuf.c
    perf probe: No need to use formatting strbuf method
    perf help: Use asprintf instead of adhoc equivalents
    perf tools: Remove unused perf_pathdup, xstrdup functions
    perf tools: Do not include stringify.h from the kernel sources
    tools include: Copy linux/stringify.h from the kernel
    tools lib traceevent: Remove redundant CPU output
    perf tools: Remove needless 'extern' from function prototypes
    perf tools: Simplify die() mechanism
    perf tools: Remove unused DIE_IF macro
    perf script: Remove lots of unused arguments
    perf thread: Rename perf_event__preprocess_sample_addr to thread__resolve
    perf machine: Rename perf_event__preprocess_sample to machine__resolve
    perf tools: Add cpumode to struct perf_sample
    perf tests: Forward the perf_sample in the dwarf unwind test
    perf tools: Remove misplaced __maybe_unused
    perf list: Fix documentation of :ppp
    perf bench numa: Fix assertion for nodes bitfield
    ...

    Linus Torvalds
     

24 Mar, 2016

1 commit

  • There is code in tools/ that is directly including this file from the
    kernel, and this is verboten for a while, copy it so that the next csets
    can fix this situation.

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

    Arnaldo Carvalho de Melo
     

09 Mar, 2016

1 commit

  • Copy hashtable.h from include/linux/tools.h. It's needed by objtool in
    the next patch in the series.

    Add some includes that it needs, and remove references to
    kernel-specific features like RCU and __read_mostly.

    Also change some if its dependency headers' includes to use quotes
    instead of brackets so gcc can find them.

    Signed-off-by: Josh Poimboeuf
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Arnaldo Carvalho de Melo
    Cc: Arnaldo Carvalho de Melo
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Chris J Arges
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: live-patching@vger.kernel.org
    Link: http://lkml.kernel.org/r/be3bef72f6540d8a510515408119d968a0e18179.1457502970.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     

12 Jan, 2016

1 commit

  • Commit 7f5f873c6a07 ("rculist: Use WRITE_ONCE() when deleting from
    reader-visible list") added the use of the WRITE_ONCE macro to the
    kernel version of list.h, which broke the stacktool build because the
    tools list.h includes the kernel list.h.

    Avoid this type of situation in the future and make list.h
    self-sufficient by copying the kernel list.h routines directly into
    tools list.h.

    This is a straight copy except for adjustments to the include statements
    and copying of the tools-specific list routines (list_del_range and
    list_for_each_from).

    Signed-off-by: Josh Poimboeuf
    Cc: "H. Peter Anvin"
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Chris J Arges
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: live-patching@vger.kernel.org
    Cc: x86@kernel.org
    Link: http://lkml.kernel.org/r/59cdc19c6589d1b5ef43d83b0e2d5a4a40301374.1450442274.git.jpoimboe@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Josh Poimboeuf
     

08 Jan, 2016

1 commit


17 Dec, 2015

1 commit

  • strlcpy() will be needed by the subcmd library. Move it to the shared
    tools/lib/string.c file which can be used by other tools.

    Signed-off-by: Josh Poimboeuf
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/71e2804b973bf39ad3d3b9be10f99f2ea630be46.1450193761.git.jpoimboe@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Josh Poimboeuf
     

19 Nov, 2015

2 commits

  • Copying it to tools/lib/string.c, the counterpart to the kernel's
    lib/string.c.

    This is preparation for enhancing BPF program configuration, which will
    allow config string like 'inlines=yes'.

    Signed-off-by: Wang Nan
    Cc: Alexei Starovoitov
    Cc: Jonathan Cameron
    Cc: Masami Hiramatsu
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1447675815-166222-6-git-send-email-wangnan0@huawei.com
    [ Copied it to tools/lib/string.c instead, to make it usable by other tools/ ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • That will contain more string functions with counterparts, sometimes
    verbatim copies, in the kernel.

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

    Arnaldo Carvalho de Melo
     

12 Nov, 2015

1 commit

  • list.h needs WRITE_ONCE() since 7f5f873c6a07 ("rculist: Use WRITE_ONCE()
    when deleting from reader-visible list") add it before including the
    kernel's list.h file.

    This fixes builds of 'make perf-tar-src-pkg' perf tool tarball builds,
    i.e. out of tree builds.

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

    Arnaldo Carvalho de Melo
     

13 Oct, 2015

1 commit

  • Vinson reported build breakage with gcc 4.4 due to strict-aliasing.

    CC util/annotate.o
    cc1: warnings being treated as errors
    util/annotate.c: In function ‘disasm__purge’:
    linux-next/tools/include/linux/compiler.h:66: error: dereferencing
    pointer ‘res.41’ does break strict-aliasing rules

    The reason is READ_ONCE/WRITE_ONCE code we took from kernel sources. They
    intentionaly break aliasing rules. While this is ok for kernel because it's
    built with -fno-strict-aliasing, it breaks perf which is build with
    -Wstrict-aliasing=3.

    Using extra __may_alias__ type to allow aliasing in this case.

    Reported-and-tested-by: Vinson Lee
    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: Martin Liska
    Cc: Peter Zijlstra
    Cc: Rabin Vincent
    Cc: linux-next@vger.kernel.org
    Link: http://lkml.kernel.org/r/20151013085214.GB2705@krava.brq.redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

01 Oct, 2015

1 commit

  • The error variable breaks build on CentOS 6.7, due to collision with
    global error symbol:

    CC util/evlist.o
    cc1: warnings being treated as errors
    In file included from util/evlist.c:28:
    tools/include/linux/err.h: In function ‘ERR_PTR’:
    tools/include/linux/err.h:34: error: declaration of ‘error’ shadows a global declaration
    util/util.h:135: error: shadowed declaration is here

    Using 'error_' name instead to fix it.

    Signed-off-by: Jiri Olsa
    Link: http://lkml.kernel.org/n/tip-i9mdgdbrgauy3fe76s9rd125@git.kernel.org
    Reported-by: Vinson Lee
    [ Use 'error_' instead of 'err' to, visually, not diverge too much from include/linux/err.h ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

15 Sep, 2015

1 commit

  • Adding part of the kernel's interface:

    inline void * __must_check ERR_PTR(long error);
    inline long __must_check PTR_ERR(__force const void *ptr);
    inline bool __must_check IS_ERR(__force const void *ptr);

    It will be used to propagate error through pointers in following
    patches.

    Signed-off-by: Jiri Olsa
    Reviewed-by: Raphael Beamonte
    Cc: David Ahern
    Cc: Matt Fleming
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1441615087-13886-2-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

03 Sep, 2015

1 commit

  • This patch copies filter.h from include/linux/kernel.h to
    tools/include/linux/filter.h to enable other libraries to use macros in it,
    like libbpf which will be introduced by further patches.

    Currently, the filter.h copy only contains the useful macros needed by
    libbpf for not introducing too much dependence.

    tools/perf/MANIFEST is also updated for 'make perf-*-src-pkg'.

    One change:
    The 'imm' field of BPF_EMIT_CALL becomes ((FUNC) - BPF_FUNC_unspec) to
    suit user space code generator.

    Signed-off-by: He Kuang
    Cc: David Ahern
    Cc: Alexei Starovoitov
    Cc: Brendan Gregg
    Cc: Daniel Borkmann
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Kaixu Xia
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1440822125-52691-22-git-send-email-wangnan0@huawei.com
    Signed-off-by: Wang Nan
    [ Removed stylistic changes, so that a diff to the original file gets reduced ]
    Signed-off-by: Arnaldo Carvalho de Melo

    He Kuang
     

25 Aug, 2015

1 commit

  • Commit 3f735377b ("tools: Copy lib/rbtree.c to tools/lib/") has
    removed export.h, which was still in use by liblockdep. Restore
    it.

    Signed-off-by: Sasha Levin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1440479985-6696-1-git-send-email-sasha.levin@oracle.com
    Signed-off-by: Ingo Molnar

    Sasha Levin
     

06 Jul, 2015

3 commits

  • To complete the transitioning to not to share the same files with the
    kernel, also moving it from tools/perf/include/linux/ to
    tools/include/linux to make the whoke rbtree kit to other tools/ living
    codebases.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-5bxyehixafckqm6ez25alnfo@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The previous step, copying the contents minus the rcupdate.h parts, was
    done as a minimal fix, now do the move from tools/perf/.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-52fllxtsgmtke66pmv98mcma@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that we can remove kernel specific stuff we've been stubbing out via
    a tools/include/linux/export.h that gets removed in this patch and to
    avoid breakages in the future like the one fixed recently where
    rcupdate.h started being used in rbtree.h.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-rxuzfsozpb8hv1emwpx06rm6@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo