14 Oct, 2020

3 commits

  • Passing build_id object to build_id__sprintf function, so it can operate
    with the proper size of build id.

    This will create proper md5 build id readable names,
    like following:

    a50e350e97c43b4708d09bcd85ebfff7

    instead of:

    a50e350e97c43b4708d09bcd85ebfff700000000

    Signed-off-by: Jiri Olsa
    Acked-by: Ian Rogers
    Link: https://lore.kernel.org/r/20201013192441.1299447-5-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Pass a build_id object to filename__read_build_id function, so it can
    populate the size of the build_id object.

    Changing filename__read_build_id() code for both ELF/non-ELF code.

    Signed-off-by: Jiri Olsa
    Acked-by: Ian Rogers
    Link: https://lore.kernel.org/r/20201013192441.1299447-3-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Replace build_id byte array with struct build_id object and all the code
    that references it.

    The objective is to carry size together with build id array, so it's
    better to keep both together.

    This is preparatory change for following patches, and there's no
    functional change.

    Signed-off-by: Jiri Olsa
    Acked-by: Ian Rogers
    Link: https://lore.kernel.org/r/20201013192441.1299447-2-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

21 Sep, 2019

1 commit

  • This patch is to return error code of perf_new_session function on
    failure instead of NULL.

    Test Results:

    Before Fix:

    $ perf c2c report -input
    failed to open nput: No such file or directory

    $ echo $?
    0
    $

    After Fix:

    $ perf c2c report -input
    failed to open nput: No such file or directory

    $ echo $?
    254
    $

    Committer notes:

    Fix 'perf tests topology' case, where we use that TEST_ASSERT_VAL(...,
    session), i.e. we need to pass zero in case of failure, which was the
    case before when NULL was returned by perf_session__new() for failure,
    but now we need to negate the result of IS_ERR(session) to respect that
    TEST_ASSERT_VAL) expectation of zero meaning failure.

    Reported-by: Nageswara R Sastry
    Signed-off-by: Mamatha Inamdar
    Tested-by: Arnaldo Carvalho de Melo
    Tested-by: Nageswara R Sastry
    Acked-by: Ravi Bangoria
    Reviewed-by: Jiri Olsa
    Reviewed-by: Mukesh Ojha
    Cc: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Alexey Budankov
    Cc: Greg Kroah-Hartman
    Cc: Jeremie Galarneau
    Cc: Kate Stewart
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Shawn Landden
    Cc: Song Liu
    Cc: Thomas Gleixner
    Cc: Tzvetomir Stoyanov
    Link: http://lore.kernel.org/lkml/20190822071223.17892.45782.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Mamatha Inamdar
     

01 Sep, 2019

2 commits

  • Remove the last unneeded use of cache.h in a header, we can check where
    it is really needed, i.e. we can remove it and be sure that it isn't
    being obtained indirectly.

    This is an old file, used by now incorrectly in many places, so it was
    providing includes needed indirectly, fixup this fallout.

    Cc: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: https://lkml.kernel.org/n/tip-3x3l8gihoaeh7714os861ia7@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that we can reduce the header dependency tree further, in the process
    noticed that lots of places were getting even things like build-id
    routines and 'struct perf_tool' definition indirectly, so fix all those
    too.

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

    Arnaldo Carvalho de Melo
     

30 Aug, 2019

1 commit


29 Aug, 2019

1 commit


23 Feb, 2019

1 commit

  • Add a 'path' member to 'struct perf_data'. It will keep the configured
    path for the data (const char *). The path in struct perf_data_file is
    now dynamically allocated (duped) from it.

    This scheme is useful/used in following patches where struct
    perf_data::path holds the 'configure' directory path and struct
    perf_data_file::path holds the allocated path for specific files.

    Also it actually makes the code little simpler.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Alexey Budankov
    Cc: Andi Kleen
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/20190221094145.9151-3-jolsa@kernel.org
    [ Fixup data-convert-bt.c missing conversion ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

15 May, 2018

1 commit

  • Warn perf buildid-cache --purge-all failures in non verbose mode.

    Ex.:

    $ sudo chown root:root /home/ravi/.debug -R
    $ sudo chmod 700 /home/ravi/.debug/ -R
    $ ./perf buildid-cache -P
    Couldn't remove some caches. Error: Permission denied.

    Suggested-by: Masami Hiramatsu
    Signed-off-by: Ravi Bangoria
    Acked-by: Masami Hiramatsu
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/20180510043651.12189-1-ravi.bangoria@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ravi Bangoria
     

26 Apr, 2018

2 commits

  • User can remove files from cache using --remove/--purge options but both
    needs list of files as an argument. It's not convenient when you want to
    flush out entire cache. Add an option to purge all files from cache.

    Ex,
    # perf buildid-cache -l
    8a86ef73e44067bca52cc3f6cd3e5446c783391c /tmp/a.out
    ebe71fdcf4b366518cc154d570a33cd461a51c36 /tmp/a.out.1
    # perf buildid-cache -P -v
    Removing /tmp/a.out (8a86ef73e44067bca52cc3f6cd3e5446c783391c): Ok
    Removing /tmp/a.out.1 (ebe71fdcf4b366518cc154d570a33cd461a51c36): Ok
    Purged all: Ok

    Signed-off-by: Ravi Bangoria
    Acked-by: Jiri Olsa
    Cc: Alexander Shishkin
    Cc: Kate Stewart
    Cc: Krister Johansen
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Philippe Ombredanne
    Cc: Sihyeon Jang
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20180417041346.5617-4-ravi.bangoria@linux.vnet.ibm.com
    [ Initialize 'err' in build_id_cache__purge_all(), to fix build on debian:7, as it can be used uninitialized ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Ravi Bangoria
     
  • 'perf buildid-cache' allows to add/remove files into cache but there is
    no option to list all cached files. Add --list option to list all
    _valid_ cached files.

    Ex,
    # perf buildid-cache --add /tmp/a.out
    # perf buildid-cache -l
    8a86ef73e44067bca52cc3f6cd3e5446c783391c /tmp/a.out

    Signed-off-by: Ravi Bangoria
    Acked-by: Jiri Olsa
    Cc: Alexander Shishkin
    Cc: Kate Stewart
    Cc: Krister Johansen
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Philippe Ombredanne
    Cc: Sihyeon Jang
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20180417041346.5617-3-ravi.bangoria@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ravi Bangoria
     

17 Nov, 2017

1 commit

  • Clarify the perf buildid-cache help text for the purge operation. The
    purge subcommand takes a list of files (binaries) as option parameter.
    Make the wording the same as for the add and remove operation.

    Signed-off-by: Thomas-Mich Richter
    Reviewed-by: Hendrik Brueckner
    Acked-by: Masami Hiramatsu
    Cc: Martin Schwidefsky
    LPU-Reference: 20171107144853.12925-1-tmricht@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Thomas-Mich Richter
     

07 Nov, 2017

1 commit

  • Conflicts:
    tools/perf/arch/arm/annotate/instructions.c
    tools/perf/arch/arm64/annotate/instructions.c
    tools/perf/arch/powerpc/annotate/instructions.c
    tools/perf/arch/s390/annotate/instructions.c
    tools/perf/arch/x86/tests/intel-cqm.c
    tools/perf/ui/tui/progress.c
    tools/perf/util/zlib.c

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

31 Oct, 2017

2 commits

  • Add struct perf_data_file to represent a single file within a perf_data
    struct.

    Signed-off-by: Jiri Olsa
    Cc: Andi Kleen
    Cc: Changbin Du
    Cc: David Ahern
    Cc: Jin Yao
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-c3f9p4xzykr845ktqcek6p4t@git.kernel.org
    [ Fixup recent changes in 'perf script --per-event-dump' ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Rename struct perf_data_file to perf_data, because we will add the
    possibility to have multiple files under perf.data, so the 'perf_data'
    name fits better.

    Signed-off-by: Jiri Olsa
    Cc: Andi Kleen
    Cc: Changbin Du
    Cc: David Ahern
    Cc: Jin Yao
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-39wn4d77phel3dgkzo3lyan0@git.kernel.org
    [ Fixup recent changes in 'perf script --per-event-dump' ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

19 Jul, 2017

2 commits

  • If a stripped binary is placed in the cache, the user is in a situation
    where there's a cached elf file present, but it doesn't have any symtab
    to use for name resolution. Grab the debuginfo for binaries that don't
    end in .ko. This yields a better chance of resolving symbols from older
    traces.

    Signed-off-by: Krister Johansen
    Cc: Alexander Shishkin
    Cc: Brendan Gregg
    Cc: Peter Zijlstra
    Cc: Thomas-Mich Richter
    Link: http://lkml.kernel.org/r/1499305693-1599-7-git-send-email-kjlx@templeofstupid.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Krister Johansen
     
  • Teach buildid-cache how to add, remove, and update binary objects from
    other mount namespaces. Allow probe events tracing binaries in
    different namespaces to add their objects to the probe and build-id
    caches too. As a handy side effect, this also lets us access SDT probes
    in binaries from alternate mount namespaces.

    Signed-off-by: Krister Johansen
    Tested-by: Brendan Gregg
    Cc: Alexander Shishkin
    Cc: Peter Zijlstra
    Cc: Thomas-Mich Richter
    Link: http://lkml.kernel.org/r/1499305693-1599-5-git-send-email-kjlx@templeofstupid.com
    [ Add util/namespaces.c to tools/perf/util/python-ext-sources, to fix the python binding 'perf test' ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Krister Johansen
     

03 May, 2017

1 commit

  • That is the case of _text on s390, and we have some functions that return an
    address, using address zero to report problems, oops.

    This would lead the symbol loading routines to not use "_text" as the reference
    relocation symbol, or the first symbol for the kernel, but use instead
    "_stext", that is at the same address on x86_64 and others, but not on s390:

    [acme@localhost perf-4.11.0-rc6]$ head -15 /proc/kallsyms
    0000000000000000 T _text
    0000000000000418 t iplstart
    0000000000000800 T start
    000000000000080a t .base
    000000000000082e t .sk8x8
    0000000000000834 t .gotr
    0000000000000842 t .cmd
    0000000000000846 t .parm
    000000000000084a t .lowcase
    0000000000010000 T startup
    0000000000010010 T startup_kdump
    0000000000010214 t startup_kdump_relocated
    0000000000011000 T startup_continue
    00000000000112a0 T _ehead
    0000000000100000 T _stext
    [acme@localhost perf-4.11.0-rc6]$

    Which in turn would make 'perf test vmlinux' to fail because it wouldn't find
    the symbols before "_stext" in kallsyms.

    Fix it by using the return value only for errors and storing the
    address, when the symbol is successfully found, in a provided pointer
    arg.

    Before this patch:

    After:

    [acme@localhost perf-4.11.0-rc6]$ tools/perf/perf test -v 1
    1: vmlinux symtab matches kallsyms :
    --- start ---
    test child forked, pid 40693
    Looking at the vmlinux_path (8 entries long)
    Using /usr/lib/debug/lib/modules/3.10.0-654.el7.s390x/vmlinux for symbols
    ERR : 0: _text not on kallsyms
    ERR : 0x418: iplstart not on kallsyms
    ERR : 0x800: start not on kallsyms
    ERR : 0x80a: .base not on kallsyms
    ERR : 0x82e: .sk8x8 not on kallsyms
    ERR : 0x834: .gotr not on kallsyms
    ERR : 0x842: .cmd not on kallsyms
    ERR : 0x846: .parm not on kallsyms
    ERR : 0x84a: .lowcase not on kallsyms
    ERR : 0x10000: startup not on kallsyms
    ERR : 0x10010: startup_kdump not on kallsyms
    ERR : 0x10214: startup_kdump_relocated not on kallsyms
    ERR : 0x11000: startup_continue not on kallsyms
    ERR : 0x112a0: _ehead not on kallsyms

    test child finished with -1
    ---- end ----
    vmlinux symtab matches kallsyms: FAILED!
    [acme@localhost perf-4.11.0-rc6]$

    After:

    [acme@localhost perf-4.11.0-rc6]$ tools/perf/perf test -v 1
    1: vmlinux symtab matches kallsyms :
    --- start ---
    test child forked, pid 47160

    test child finished with 0
    ---- end ----
    vmlinux symtab matches kallsyms: Ok
    [acme@localhost perf-4.11.0-rc6]$

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

    Arnaldo Carvalho de Melo
     

21 Apr, 2017

1 commit


20 Apr, 2017

1 commit

  • Removing it from util.h, part of an effort to disentangle the includes
    hell, that makes changes to util.h or something included by it to cause
    a complete rebuild of the tools.

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

    Arnaldo Carvalho de Melo
     

27 Mar, 2017

1 commit

  • We got it from the git sources but never used it for anything, with the
    place where this would be somehow used remaining:

    static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
    {
    prefix = NULL;
    if (p->option & RUN_SETUP)
    prefix = NULL; /* setup_perf_directory(); */

    Ditch it.

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

    Arnaldo Carvalho de Melo
     

13 Jul, 2016

1 commit

  • 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
     

23 Jun, 2016

1 commit


22 Jun, 2016

1 commit

  • And do nothing, just like free(), to avoid having to test it in callers,
    usually in error paths.

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

    Arnaldo Carvalho de Melo
     

17 May, 2016

1 commit

  • Instead of using a raw string, use DSO__NAME_KALLSYMS and
    DSO__NAME_KCORE macros for kallsyms and kcore.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Brendan Gregg
    Cc: Hemant Kumar
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20160515031935.4017.50971.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

30 Jan, 2016

1 commit

  • Timestamp generation becomes a public available helper. Which will
    be used by 'perf record', help it output to split output file based
    on time.

    For example:

    perf.data.2015122620363710
    perf.data.2015122620364092
    perf.data.2015122620365423
    ...

    Signed-off-by: Wang Nan
    Cc: Alexei Starovoitov
    Cc: Brendan Gregg
    Cc: Daniel Borkmann
    Cc: He Kuang
    Cc: Jiri Olsa
    Cc: Li Zefan
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Will Deacon
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1453715801-7732-27-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

18 Dec, 2015

1 commit

  • Move the subcommand-related files from perf to a new library named
    libsubcmd.a.

    Since we're moving files anyway, go ahead and rename 'exec_cmd.*' to
    'exec-cmd.*' to be consistent with the naming of all the other files.

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

    Josh Poimboeuf
     

29 Aug, 2015

1 commit

  • Introduce sysfs/filename__sprintf_build_id for consolidating similar
    code.

    Signed-off-by: Masami Hiramatsu
    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150815114259.13642.34685.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

21 Jul, 2015

1 commit

  • Introduce SBUILD_ID_SIZE macro and use it instead of using BUILD_ID_SIZE
    * 2 + 1.

    Signed-off-by: Masami Hiramatsu
    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150715091428.8915.75265.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

20 Jul, 2015

1 commit

  • So that we can pass more info to strlist__new() without having to change
    its function signature, just adding entries to the strlist_config struct
    with sensible defaults for when those fields are not specified.

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

    Arnaldo Carvalho de Melo
     

28 Feb, 2015

3 commits

  • Show usage if no action is specified or unexpected parameter is given.
    In other words, be more user friendly.

    Signed-off-by: Masami Hiramatsu
    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150227045030.1999.44006.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Use pr_debug instead of the combination of verbose and pr_info.

    "if (verbose) pr_info(...)" is same as "pr_debug(...)", replace it.

    Signed-off-by: Masami Hiramatsu
    Suggested-by: Namhyung Kim
    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150227045028.1999.93137.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Add --purge FILE to remove all caches of FILE.

    Since the current --remove FILE removes a cache which has
    same build-id of given FILE. Since the command takes a
    FILE path, it can confuse user who tries to remove cache
    about FILE path.

    -----
    # ./perf buildid-cache -v --add ./perf
    Adding 133b7b5486d987a5ab5c3ebf4ea14941f45d4d4f ./perf: Ok
    # (update the ./perf binary)
    # ./perf buildid-cache -v --remove ./perf
    Removing 305bbd1be68f66eca7e2d78db294653031edfa79 ./perf: FAIL
    ./perf wasn't in the cache
    -----
    Actually, the --remove's FAIL is not shown, it just silently fails.

    So, this patch adds --purge FILE action for such usecase.

    perf buildid-cache --purge FILE removes all caches which has same FILE
    path.

    In other words, it removes all caches including old binaries.

    -----
    # ./perf buildid-cache -v --add ./perf
    Adding 133b7b5486d987a5ab5c3ebf4ea14941f45d4d4f ./perf: Ok
    # (update the ./perf binary)
    # ./perf buildid-cache -v --purge ./perf
    Removing 133b7b5486d987a5ab5c3ebf4ea14941f45d4d4f ./perf: Ok
    -----

    BTW, if you want to purge all the caches, remove ~/.debug/* .

    Signed-off-by: Masami Hiramatsu
    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150227045026.1999.64084.stgit@localhost.localdomain
    [ s/dirname/dir_name/g to fix build on fedora14, where dirname is a global ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

27 Feb, 2015

1 commit

  • Add new buildid cache if the update target file is not cached.

    This can happen when an old binary is replaced by new one after caching
    the old one. In this case, user sees his operation just failed.

    But it does not look straight, since user just pass the binary "path",
    not "build-id".

    ----
    # ./perf buildid-cache --add ./perf
    (update ./perf to new binary)
    # ./perf buildid-cache --update ./perf
    ./perf wasn't in the cache
    #
    ----

    This patch adds given new binary to cache if the new binary is
    not cached. So we'll not see the above error.

    ----
    # ./perf buildid-cache --add ./perf
    (update ./perf to new binary)
    # ./perf buildid-cache --update ./perf
    #
    ----

    Signed-off-by: Masami Hiramatsu
    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: Hemant Kumar
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150226065440.23912.1494.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

11 Feb, 2015

1 commit

  • Functions related to buildid-cache subcommand use debugdir parameters
    for passing buildid cache directory path. However all callers just pass
    buildid_dir global variable. Moreover, other functions which refer
    buildid cache use buildid_dir directly.

    This removes unneeded debugdir parameters from those functions and use
    buildid_dir if needed.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Namhyung Kim
    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150210091851.19264.72741.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     

22 Jan, 2015

1 commit

  • Janitorial stuff: boredom moment.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Don Zickus
    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/n/tip-u70i7shys3kths4hzru72bha@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

09 Dec, 2014

2 commits

  • The kcore_filename is uninitialized and trash value could trigger
    build_id_cache__add_kcore function ending up with segfault.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Corey Ashford
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1417460789-13874-7-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • There's no need to copy over the buildid_dir into separate variable with
    no change.

    This is leftover from commit:
    45de34bbe3e1 perf buildid: add perfconfig option to specify buildid cache dir

    that added global buildid_dir variable that holds cache directory, but
    did not cleanup the debugdir copies.

    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
    Cc: Stephane Eranian
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1417460789-13874-3-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa