1. 11 Aug, 2021 11 commits
    • Jin Yao's avatar
      perf tools: Create hybrid flag in target · b726e363
      Jin Yao authored
      The user may count or collect only on a cpu list via '-C/--cpus' option.
      
      Previously cpus for an evsel were retrieved from PMU's sysfs. But if the
      target cpu list is defined, the retrieved cpus are not kept and the
      target cpu list is used instead.
      
      But for hybrid system, we can't directly use target cpu list. The cpu
      list may not be available on hybrid pmu (e.g. cpu_core or cpu_atom).  So
      we should not set the 'has_user_cpus' flag for hybrid system.
      
      The difficulity is that we can't call perf_pmu__has_hybrid() in evlist.c
      to check hybrid system otherwise 'perf test python' would be failed
      (undefined symbol for perf_pmu__has_hybrid). If we add pmu.c to
      python-ext-sources, too many symbol dependencies are hard to resolve.
      
      We use an alternative method by using a new 'hybrid' flag in target
      for hybrid system checking.
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@intel.com>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210723063433.7318-3-yao.jin@linux.intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b726e363
    • Jin Yao's avatar
      libperf: Add perf_cpu_map__default_new() · 2696d6e5
      Jin Yao authored
      libperf already has a static function called 'cpu_map__default_new()'.
      
      Add a new API perf_cpu_map__default_new() to export the function.
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@intel.com>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210723063433.7318-2-yao.jin@linux.intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      2696d6e5
    • Riccardo Mancini's avatar
      perf test: Make --skip work on shell tests · ebdf90a4
      Riccardo Mancini authored
      perf-test has the option --skip to provide a list of tests to skip.
      However, this option does not work with shell scripts.
      
      This patch passes the skiplist to run_shell_tests, so that also shell
      scripts could be skipped using --skip.
      
      Committer tests:
      
      Tests 79 onwards are shell tests:
      
      Before:
      
        # perf test --skip 1,2,81,82,84,88,90
         1: vmlinux symtab matches kallsyms                                 : Skip (user override)
         2: Detect openat syscall event                                     : Skip (user override)
         3: Detect openat syscall event on all cpus                         : Ok
         4: Read samples using the mmap interface                           : Ok
         5: Test data source output                                         : Ok
        <SNIP>
        78: x86 Sample parsing                                              : Ok
        79: build id cache operations                                       : Ok
        80: daemon operations                                               : Ok
        81: perf pipe recording and injection test                          : Ok
        82: Add vfs_getname probe to get syscall args filenames             : FAILED!
        83: probe libc's inet_pton & backtrace it with ping                 : Ok
        84: Use vfs_getname probe to get syscall args filenames             : FAILED!
        85: Zstd perf.data compression/decompression                        : Ok
        86: perf stat csv summary test                                      : Ok
        87: perf stat metrics (shadow stat) test                            : Ok
        88: perf stat --bpf-counters test                                   : Ok
        89: Check Arm CoreSight trace data recording and synthesized samples: Skip
        90: Check open filename arg using perf trace + vfs_getname          : FAILED!
        #
      
      After:
      
        # perf test --skip 1,2,81,82,84,88,90
         1: vmlinux symtab matches kallsyms                                 : Skip (user override)
         2: Detect openat syscall event                                     : Skip (user override)
         3: Detect openat syscall event on all cpus                         : Ok
         4: Read samples using the mmap interface                           : Ok
         5: Test data source output                                         : Ok
        <SNIP>
        78: x86 Sample parsing                                              : Ok
        79: build id cache operations                                       : Ok
        80: daemon operations                                               : Ok
        81: perf pipe recording and injection test                          : Skip (user override)
        82: Add vfs_getname probe to get syscall args filenames             : Skip (user override)
        83: probe libc's inet_pton & backtrace it with ping                 : Ok
        84: Use vfs_getname probe to get syscall args filenames             : Skip (user override)
        85: Zstd perf.data compression/decompression                        : Ok
        86: perf stat csv summary test                                      : Ok
        87: perf stat metrics (shadow stat) test                            : Ok
        88: perf stat --bpf-counters test                                   : Skip (user override)
        89: Check Arm CoreSight trace data recording and synthesized samples: Skip
        90: Check open filename arg using perf trace + vfs_getname          : Skip (user override)
        #
      Signed-off-by: default avatarRiccardo Mancini <rickyman7@gmail.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210811180625.160944-1-rickyman7@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ebdf90a4
    • Arnaldo Carvalho de Melo's avatar
      Merge remote-tracking branch 'torvalds/master' into perf/core · 5e9cfa71
      Arnaldo Carvalho de Melo authored
      To get in sync with upstream to help people developing in this branch.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5e9cfa71
    • Adrian Hunter's avatar
      perf tests: Add dlfilter test · 9f9c9a8d
      Adrian Hunter authored
      Add a perf test to test the dlfilter C API.
      
      A perf.data file is synthesized and then processed by perf script with a
      dlfilter named dlfilter-test-api-v0.so. Also a C file is compiled to
      provide a dso to match the synthesized perf.data file.
      
      Committer testing:
      
        [root@five ~]# perf test dlfilter
        72: dlfilter C API                                                  : Ok
        [root@five ~]# perf test -v dlfilter
        72: dlfilter C API                                                  :
        --- start ---
        test child forked, pid 3387712
        Checking for gcc
        Command: gcc --version
        gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
        Copyright (C) 2021 Free Software Foundation, Inc.
        This is free software; see the source for copying conditions.  There is NO
        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      
        dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
        Command: gcc -g -o /tmp/dlfilter-test-3387712-prog /tmp/dlfilter-test-3387712-prog.c
        Creating new host machine structure
        Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3387712-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 1 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
        start API
        filter_event_early API
        filter_event API
        stop API
        Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3387712-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 1 --dlarg 4198669 --dlarg 4198662 --dlarg 1 --dlarg last
        start API
        filter_event_early API
        filter_event API
        stop API
        Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3387712-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 1 --dlarg 4198669 --dlarg 4198662 --dlarg 2 --dlarg last
        start API
        filter_event_early API
        stop API
        test child finished with 0
        ---- end ----
        dlfilter C API: Ok
        [root@five ~]#
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: https //lore.kernel.org/r/20210811101036.17986-7-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9f9c9a8d
    • Adrian Hunter's avatar
      perf build: Move perf_dlfilters.h in the source tree · 3af1dfdd
      Adrian Hunter authored
      Move perf_dlfilters.h in the source tree so that it will be found when
      building dlfilters as part of the perf build.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: https //lore.kernel.org/r/20210811101036.17986-6-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3af1dfdd
    • Adrian Hunter's avatar
      perf dlfilter: Amend documentation wrt library dependencies · b29edf35
      Adrian Hunter authored
      Like all locally-built programs, dlfilters may need to be re-built if
      shared libraries they use change. Also there may be unexpected results
      if the dfilter uses different versions of the shared libraries that perf
      uses.
      
      Note those things in the documentation.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: https //lore.kernel.org/r/20210811101036.17986-5-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b29edf35
    • Adrian Hunter's avatar
      perf script: Fix --list-dlfilters documentation · 3e8e2263
      Adrian Hunter authored
      The option --list-dlfilters does use a string value.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Fixes: 638e2b99 ("perf script Add option to list dlfilters")
      Link: https //lore.kernel.org/r/20210811101036.17986-4-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3e8e2263
    • Adrian Hunter's avatar
      perf script: Fix unnecessary machine_resolve() · 29159727
      Adrian Hunter authored
      machine_resolve() may have already been called. Test for that to avoid
      calling it again unnecessarily.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: https //lore.kernel.org/r/20210811101036.17986-3-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      29159727
    • Adrian Hunter's avatar
      perf script: Fix documented const'ness of perf_dlfilter_fns · 988db179
      Adrian Hunter authored
      perf_dlfilter_fns must not be const, because it is not.
      
      Declaring it const can result in it being mapped read-only, causing a
      segfaullt when it is written. Update documentation accordingly.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Fixes: 8defa7147d5572 ("perf script Add API for filtering via dynamically loaded shared object")
      Link: https //lore.kernel.org/r/20210811101036.17986-2-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      988db179
    • Linus Torvalds's avatar
      Merge tag 'arc-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 761c6d7e
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
      
       - Fix FPU_STATUS update
      
       - Update my email address
      
       - Other spellos and fixes
      
      * tag 'arc-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        MAINTAINERS: update Vineet's email address
        ARC: fp: set FPU_STATUS.FWE to enable FPU_STATUS update on context switch
        ARC: Fix CONFIG_STACKDEPOT
        arc: Fix spelling mistake and grammar in Kconfig
        arc: Prefer unsigned int to bare use of unsigned
      761c6d7e
  2. 10 Aug, 2021 26 commits
    • Jin Yao's avatar
      perf vendor events: Update metrics for SkyLake Server · c4ad8fab
      Jin Yao authored
      Update JSON metrics for SkyLake Server.
      
      Based on TMA metrics 4.21 at 01.org.
      https://download.01.org/perfmon/
      
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Linux-kernel@vger.kernel.org
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210810020508.31261-7-yao.jin@linux.intel.com
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      c4ad8fab
    • Jin Yao's avatar
      perf vendor events intel: Update uncore event list for SkyLake Server · d5c0a8d5
      Jin Yao authored
      Update JSON uncore events for SkyLake Server.
      
      Based on JSON list v1.24:
      
      https://download.01.org/perfmon/SKX/
      
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Linux-kernel@vger.kernel.org
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210810020508.31261-6-yao.jin@linux.intel.com
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      d5c0a8d5
    • Jin Yao's avatar
      perf vendor events intel: Update core event list for SkyLake Server · 2c72404e
      Jin Yao authored
      Update JSON core events for SkyLake Server.
      
      Based on JSON list v1.24:
      
      https://download.01.org/perfmon/SKX/
      
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Linux-kernel@vger.kernel.org
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210810020508.31261-5-yao.jin@linux.intel.com
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      2c72404e
    • Jin Yao's avatar
      perf vendor events: Update metrics for CascadeLake Server · ed97cc6c
      Jin Yao authored
      Update JSON metrics for CascadeLake Server.
      
      Based on TMA metrics 4.21 at 01.org.
      https://download.01.org/perfmon/
      
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Linux-kernel@vger.kernel.org
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210810020508.31261-4-yao.jin@linux.intel.com
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      ed97cc6c
    • Jin Yao's avatar
      perf vendor events intel: Update uncore event list for CascadeLake Server · 96fe584f
      Jin Yao authored
      Update JSON uncore events for CascadeLake Server.
      
      Based on JSON list v1.11:
      
      https://download.01.org/perfmon/CLX/
      
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Linux-kernel@vger.kernel.org
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210810020508.31261-3-yao.jin@linux.intel.com
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      96fe584f
    • Jin Yao's avatar
      perf vendor events intel: Update core event list for CascadeLake Server · e0ddfd8d
      Jin Yao authored
      Update JSON core events for CascadeLake Server.
      
      Based on JSON list v1.11:
      
      https://download.01.org/perfmon/CLX/Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Linux-kernel@vger.kernel.org
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https //lore.kernel.org/r/20210810020508.31261-2-yao.jin@linux.intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e0ddfd8d
    • John Garry's avatar
      perf test: Add pmu-events sys event support · 8ee465a1
      John Garry authored
      Add support for system events, along with core and uncore events.
      
      Support for a sample PMU is also added.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-12-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8ee465a1
    • John Garry's avatar
      perf jevents: Print SoC name per system event table · 5abd3988
      John Garry authored
      Print the SoC name per system event table, which will allow the test SoC be
      identified by the pmu-events test.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-11-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5abd3988
    • John Garry's avatar
      perf pmu: Make pmu_add_sys_aliases() public · e199f47f
      John Garry authored
      Function pmu_add_sys_aliases() will be required for the PMU events test
      for system events aliases, so make it public.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-10-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e199f47f
    • John Garry's avatar
      perf test: Add more pmu-events uncore aliases · 6a86657f
      John Garry authored
      Add more events to cover the scenarios fixed and also inadvertently
      broken by commit c47a5599 ("perf tools: Fix pattern matching for
      same substring in different PMU type")
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-9-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6a86657f
    • John Garry's avatar
      perf test: Re-add pmu-event uncore PMU alias test · 5a65c0c8
      John Garry authored
      Add support to match aliases for uncore PMUs.
      
      Since we cannot rely on the PMUs being present on the host system, use
      fake PMUs.
      
      The following conditions in the test are ensures:
      
      - Expected count of aliases created
      
      - All aliases can be matched to an expected alias in
        perf_pmu_test_pmu.aliases
      
      This will catch the condition fixed in commit c47a5599 ("perf tools:
      Fix pattern matching for same substring in different PMU type"), where
      excess events were created for a PMU. It will also fix the scenario
      inadvertently broken there, where no aliases were created for aliases
      with multiple tokens.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-8-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5a65c0c8
    • John Garry's avatar
      perf pmu: Check .is_uncore field in pmu_add_cpu_aliases_map() · 5806099a
      John Garry authored
      Calling pmu_is_uncore() for fake PMUs does not work, as it checks sysfs
      for the PMU details (which won't exist).
      
      Check .is_uncore field instead, which makes sense anyway.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-7-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5806099a
    • John Garry's avatar
      perf test: Test pmu-events core aliases separately · 3bc4526b
      John Garry authored
      The current method to test uncore event aliasing is limited, as it
      relies on the uncore PMU being present in the host system to test.
      
      As such, breakages of uncore PMU aliases goes unnoticed. To make this
      more robust, a new method of testing uncore PMUs with fake PMUs will be
      used in future. This will be separate to testing core PMU aliases.
      
      So make the current test function core PMU only. Uncore PMU alias
      support will be re-added later.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-6-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3bc4526b
    • John Garry's avatar
      perf test: Factor out pmu-events alias comparison · e386acd7
      John Garry authored
      Factor out alias test which will be used in multiple places.
      
      Also test missing fields.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-5-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e386acd7
    • John Garry's avatar
      perf test: Declare pmu-events test events separately · c81e823f
      John Garry authored
      Currently all test events are put into arrays of test events.
      
      Create pointer arrays of test events instead, so the test events may be
      referenced later for tighter alias verification.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-4-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c81e823f
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.14-3' of... · 9e723c53
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v5.14-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Hans de Goede:
       "Small set of pdx86 fixes for 5.14"
      
      * tag 'platform-drivers-x86-v5.14-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-lookup tables
        platform/x86: Make dual_accel_detect() KIOX010A + KIOX020A detect more robust
        platform/x86: Add and use a dual_accel_detect() helper
      9e723c53
    • Linus Torvalds's avatar
      Merge tag 'ovl-fixes-5.14-rc6-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · b3f0ccc5
      Linus Torvalds authored
      Pull overlayfs fixes from Miklos Szeredi:
       "Fix several bugs in overlayfs"
      
      * tag 'ovl-fixes-5.14-rc6-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: prevent private clone if bind mount is not allowed
        ovl: fix uninitialized pointer read in ovl_lookup_real_one()
        ovl: fix deadlock in splice write
        ovl: skip stale entries in merge dir cache iteration
      b3f0ccc5
    • John Garry's avatar
      perf jevents: Relocate test events to cpu folder · 35267cea
      John Garry authored
      In future to add support for sys events, relocate the core and uncore
      events to a cpu folder.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-3-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      35267cea
    • John Garry's avatar
      perf test: Factor out pmu-events event comparison · 19ac3df3
      John Garry authored
      Factor out event comparison which will be used in multiple places.
      
      Also test "pmu" and "compat" fields.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: https //lore.kernel.org/r/1627566986-30605-2-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      19ac3df3
    • John Garry's avatar
      perf jevents: Make build dependency on test JSONs · 517db3b5
      John Garry authored
      Currently all JSONs and the mapfile for an arch are dependencies for
      building pmu-events.c
      
      The test JSONs are missing as a dependency, so add them.
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Reported-by: default avatarArnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linuxarm@huawei.com
      Link: http://lore.kernel.org/lkml/90094733-741c-50e5-ac7d-f5640b5f0bdd@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      517db3b5
    • Riccardo Mancini's avatar
      perf bench: Add benchmark for evlist open/close operations · 4241eabf
      Riccardo Mancini authored
      This new benchmark finds the total time that is taken to open, mmap,
      enable, disable, munmap, close an evlist (time taken for new,
      create_maps, config, delete is not counted in).
      
      The evlist can be configured as in perf-record using the
      -a,-C,-e,-u,--per-thread,-t,-p options.
      
      The events can be duplicated in the evlist to quickly test performance
      with many events using the -n options.
      
      Furthermore, also the number of iterations used to calculate the
      statistics is customizable.
      
      Examples:
      - Open one dummy event system-wide:
      
        $ sudo ./perf bench internals evlist-open-close
          Number of cpus:       4
          Number of threads:    1
          Number of events:     1 (4 fds)
          Number of iterations: 100
          Average open-close took: 613.870 usec (+- 32.852 usec)
      
      - Open the group '{cs,cycles}' on CPU 0
      
        $ sudo ./perf bench internals evlist-open-close -e '{cs,cycles}' -C 0
          Number of cpus:       1
          Number of threads:    1
          Number of events:     2 (2 fds)
          Number of iterations: 100
          Average open-close took: 8503.220 usec (+- 252.652 usec)
      
      - Open 10 'cycles' events for user 0, calculate average over 100 runs
      
        $ sudo ./perf bench internals evlist-open-close -e cycles -n 10 -u 0 -i 100
          Number of cpus:       4
          Number of threads:    328
          Number of events:     10 (13120 fds)
          Number of iterations: 100
          Average open-close took: 180043.140 usec (+- 2295.889 usec)
      
      Committer notes:
      
      Replaced a deprecated bzero() call with designated initialized zeroing.
      
      Added some missing evlist allocation checks, one noted by Riccardo on
      the mailing list.
      
      Minor cosmetic changes (sent in private).
      Signed-off-by: default avatarRiccardo Mancini <rickyman7@gmail.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210809201101.277594-1-rickyman7@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      4241eabf
    • Alyssa Ross's avatar
      perf docs: Fix accidental em-dashes · f2c24eba
      Alyssa Ross authored
      " -- " is an em dash (—) in asciidoc, so all these examples that were
      supposed to be producing a literal two dashes were being misrendered.
      Signed-off-by: default avatarAlyssa Ross <hi@alyssa.is>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210809153226.332545-1-hi@alyssa.isSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f2c24eba
    • Miklos Szeredi's avatar
      ovl: prevent private clone if bind mount is not allowed · 427215d8
      Miklos Szeredi authored
      Add the following checks from __do_loopback() to clone_private_mount() as
      well:
      
       - verify that the mount is in the current namespace
      
       - verify that there are no locked children
      Reported-by: default avatarAlois Wohlschlager <alois1@gmx-topmail.de>
      Fixes: c771d683 ("vfs: introduce clone_private_mount()")
      Cc: <stable@vger.kernel.org> # v3.18
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      427215d8
    • Miklos Szeredi's avatar
      ovl: fix uninitialized pointer read in ovl_lookup_real_one() · 580c6104
      Miklos Szeredi authored
      One error path can result in release_dentry_name_snapshot() being called
      before "name" was initialized by take_dentry_name_snapshot().
      
      Fix by moving the release_dentry_name_snapshot() to immediately after the
      only use.
      Reported-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      580c6104
    • Miklos Szeredi's avatar
      ovl: fix deadlock in splice write · 9b91b6b0
      Miklos Szeredi authored
      There's possibility of an ABBA deadlock in case of a splice write to an
      overlayfs file and a concurrent splice write to a corresponding real file.
      
      The call chain for splice to an overlay file:
      
       -> do_splice                     [takes sb_writers on overlay file]
         -> do_splice_from
           -> iter_file_splice_write    [takes pipe->mutex]
             -> vfs_iter_write
               ...
               -> ovl_write_iter        [takes sb_writers on real file]
      
      And the call chain for splice to a real file:
      
       -> do_splice                     [takes sb_writers on real file]
         -> do_splice_from
           -> iter_file_splice_write    [takes pipe->mutex]
      
      Syzbot successfully bisected this to commit 82a763e6 ("ovl: simplify
      file splice").
      
      Fix by reverting the write part of the above commit and by adding missing
      bits from ovl_write_iter() into ovl_splice_write().
      
      Fixes: 82a763e6 ("ovl: simplify file splice")
      Reported-and-tested-by: syzbot+579885d1a9a833336209@syzkaller.appspotmail.com
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      9b91b6b0
    • Amir Goldstein's avatar
      ovl: skip stale entries in merge dir cache iteration · 9011c279
      Amir Goldstein authored
      On the first getdents call, ovl_iterate() populates the readdir cache
      with a list of entries, but for upper entries with origin lower inode,
      p->ino remains zero.
      
      Following getdents calls traverse the readdir cache list and call
      ovl_cache_update_ino() for entries with zero p->ino to lookup the entry
      in the overlay and return d_ino that is consistent with st_ino.
      
      If the upper file was unlinked between the first getdents call and the
      getdents call that lists the file entry, ovl_cache_update_ino() will not
      find the entry and fall back to setting d_ino to the upper real st_ino,
      which is inconsistent with how this object was presented to users.
      
      Instead of listing a stale entry with inconsistent d_ino, simply skip
      the stale entry, which is better for users.
      
      xfstest overlay/077 is failing without this patch.
      Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
      Link: https://lore.kernel.org/fstests/CAOQ4uxgR_cLnC_vdU5=seP3fwqVkuZM_-WfD6maFTMbMYq=a9w@mail.gmail.com/Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      9011c279
  3. 09 Aug, 2021 3 commits