1. 02 8月, 2021 23 次提交
    • N
      perf tools: Remove repipe argument from perf_session__new() · 2681bd85
      Namhyung Kim 提交于
      The repipe argument is only used by perf inject and the all others
      passes 'false'.  Let's remove it from the function signature and add
      __perf_session__new() to be called from perf inject directly.
      
      This is a preparation of the change the pipe input/output.
      Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
      Acked-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210719223153.1618812-2-namhyung@kernel.org
      [ Fixed up some trivial conflicts as this patchset fell thru the cracks ;-( ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      2681bd85
    • E
      perf test: Handle fd gaps in test__dso_data_reopen · 88056929
      Eirik Fuller 提交于
      https://github.com/beaker-project/restraint/issues/215 describes a file
      descriptor leak which revealed the test failure described here.
      
      The 'DSO data reopen' perf test assumes that RLIMIT_NOFILE limits the
      number of open file descriptors, but it actually limits newly opened
      file descriptors. When the file descriptor limit is reduced, file
      descriptors already open remain open regardless of the new limit. This
      test failure does not occur if open file descriptors are contiguous,
      beginning at zero.
      
      The following command triggers this perf test failure.
      
      perf test 'DSO data reopen' 3>/dev/null 8>/dev/null
      
      This patch determines the file descriptor limit by opening four files
      and then closing them. The limit is set to the fourth file descriptor,
      leaving only the first three available because any newly opened file
      descriptor must be less than the limit.
      Signed-off-by: NEirik Fuller <efuller@redhat.com>
      Acked-by: NJiri Olsa <jolsa@redhat.com>
      Acked-by: NMichael Petlan <mpetlan@redhat.com>
      LPU-Reference: 20210626023825.1398547-1-efuller@redhat.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      88056929
    • J
      perf vendor events intel: Add basic metrics for Elkhartlake · 43c117d8
      Jin Yao 提交于
      Add JSON metrics for Elkhartlake to perf.
      Signed-off-by: NJin Yao <yao.jin@linux.intel.com>
      Reviewed-by: NAndi Kleen <ak@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210802053440.21035-3-yao.jin@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      43c117d8
    • J
      perf vendor events intel: Add core event list for Elkhartlake · aa1bd892
      Jin Yao 提交于
      Add JSON core events for Elkhartlake to perf.
      
      Based on JSON list v1.02:
      
      https://download.01.org/perfmon/EHL/Signed-off-by: NJin Yao <yao.jin@linux.intel.com>
      Reviewed-by: NAndi Kleen <ak@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210802053440.21035-2-yao.jin@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      aa1bd892
    • J
      perf vendor events: Add metrics for Tigerlake · b9efd75b
      Jin Yao 提交于
      Add JSON metrics for Tigerlake to perf.
      
      Based on TMA metrics 4.21 at 01.org.
      https://download.01.org/perfmon/Reviewed-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NJin Yao <yao.jin@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210719070058.4159-2-yao.jin@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b9efd75b
    • J
      perf vendor events intel: Add core event list for Tigerlake · 4babba55
      Jin Yao 提交于
      Add JSON core events for Tigerlake to perf.
      
      Based on JSON list v1.03:
      
      https://download.01.org/perfmon/TGL/Reviewed-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NJin Yao <yao.jin@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210719070058.4159-1-yao.jin@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      4babba55
    • L
      perf annotate: Add error log in symbol__annotate() · c4db54be
      Li Huafei 提交于
      When users use 'perf annotate' on unsupported machines, error logs
      should be printed for user feedback.
      Signed-off-by: NLi Huafei <lihuafei1@huawei.com>
      Reviewed-by: NJames Clark <james.clark@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Dengcheng Zhu <dzhu@wavecomp.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Martin Liška <mliska@suse.cz>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Zhang Jinhao <zhangjinhao2@huawei.com>
      Link: http://lore.kernel.org/lkml/20210726123854.13463-2-lihuafei1@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      c4db54be
    • L
      perf env: Normalize aarch64.* and arm64.* to arm64 in normalize_arch() · 4502da0e
      Li Huafei 提交于
      On my aarch64 big endian machine, the perf annotate does not work.
      
       # perf annotate
        Percent |      Source code & Disassembly of [kernel.kallsyms] for cycles (253 samples, percent: local period)
       --------------------------------------------------------------------------------------------------------------
        Percent |      Source code & Disassembly of [kernel.kallsyms] for cycles (1 samples, percent: local period)
       ------------------------------------------------------------------------------------------------------------
        Percent |      Source code & Disassembly of [kernel.kallsyms] for cycles (47 samples, percent: local period)
       -------------------------------------------------------------------------------------------------------------
       ...
      
      This is because the arch_find() function uses the normalized architecture
      name provided by normalize_arch(), and my machine's architecture name
      aarch64_be is not normalized to arm64.  Like other architectures such as
      arm and powerpc, we can fuzzy match the architecture names associated with
      aarch64.* and normalize them.
      
      It seems that there is also arm64_be architecture name, which we also
      normalize to arm64.
      Signed-off-by: NLi Huafei <lihuafei1@huawei.com>
      Reviewed-by: NJames Clark <james.clark@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Dengcheng Zhu <dzhu@wavecomp.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Martin Liška <mliska@suse.cz>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Zhang Jinhao <zhangjinhao2@huawei.com>
      Link: http //lore.kernel.org/lkml/20210726123854.13463-1-lihuafei1@huawei.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      4502da0e
    • I
      perf beauty: Reuse the generic arch errno switch · f463ad7f
      Ian Rogers 提交于
      Previously the code would see if, for example,
      tools/perf/arch/arm/include/uapi/asm/errno.h exists and if not generate
      a "generic" switch statement using the asm-generic/errno.h.
      
      This creates multiple identical "generic" switch statements before the
      default generic switch statement for an unknown architecture.
      
      By simplifying the archlist to be only for architectures that are not
      "generic" the amount of generated code can be reduced from 14 down to 6
      functions.
      
      Remove the special case of x86, instead reverse the architecture names
      so that it comes first.
      
      Committer testing:
      
        $ tools/perf/trace/beauty/arch_errno_names.sh gcc tools > before
      
      Apply this patch and:
      
        $ tools/perf/trace/beauty/arch_errno_names.sh gcc tools > after
      
      14 arches down to 6, that are the ones with an explicit errno.h file:
      
        $ ls -1 tools/arch/*/include/uapi/asm/errno.h
        tools/arch/alpha/include/uapi/asm/errno.h
        tools/arch/mips/include/uapi/asm/errno.h
        tools/arch/parisc/include/uapi/asm/errno.h
        tools/arch/powerpc/include/uapi/asm/errno.h
        tools/arch/sparc/include/uapi/asm/errno.h
        tools/arch/x86/include/uapi/asm/errno.h
        $
      
        $ diff -u4 before after
        @@ -2099,32 +987,16 @@
         const char *arch_syscalls__strerrno(const char *arch, int err)
         {
         	if (!strcmp(arch, "x86"))
         		return errno_to_name__x86(err);
        -	if (!strcmp(arch, "alpha"))
        -		return errno_to_name__alpha(err);
        -	if (!strcmp(arch, "arc"))
        -		return errno_to_name__arc(err);
        -	if (!strcmp(arch, "arm"))
        -		return errno_to_name__arm(err);
        -	if (!strcmp(arch, "arm64"))
        -		return errno_to_name__arm64(err);
        -	if (!strcmp(arch, "csky"))
        -		return errno_to_name__csky(err);
        -	if (!strcmp(arch, "mips"))
        -		return errno_to_name__mips(err);
        -	if (!strcmp(arch, "parisc"))
        -		return errno_to_name__parisc(err);
        -	if (!strcmp(arch, "powerpc"))
        -		return errno_to_name__powerpc(err);
        -	if (!strcmp(arch, "riscv"))
        -		return errno_to_name__riscv(err);
        -	if (!strcmp(arch, "s390"))
        -		return errno_to_name__s390(err);
        -	if (!strcmp(arch, "sh"))
        -		return errno_to_name__sh(err);
         	if (!strcmp(arch, "sparc"))
         		return errno_to_name__sparc(err);
        -	if (!strcmp(arch, "xtensa"))
        -		return errno_to_name__xtensa(err);
        +	if (!strcmp(arch, "powerpc"))
        +		return errno_to_name__powerpc(err);
        +	if (!strcmp(arch, "parisc"))
        +		return errno_to_name__parisc(err);
        +	if (!strcmp(arch, "mips"))
        +		return errno_to_name__mips(err);
        +	if (!strcmp(arch, "alpha"))
        +		return errno_to_name__alpha(err);
         	return errno_to_name__generic(err);
         }
      
      The rest of the patch is the removal of the errno_to_name__generic()
      unneeded clones.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      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/20210513060441.408507-1-irogers@google.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f463ad7f
    • I
      perf doc: Reorganize ARTICLES variables. · c44fc5af
      Ian Rogers 提交于
      Place early, as they are in the git Makefile. Remove references to a
      'technical` directory that doesn't exist in perf.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https //lore.kernel.org/r/20210715013343.2286699-8-irogers@google.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      c44fc5af
    • I
      perf doc: Remove howto-index.sh related references. · 17ef1f14
      Ian Rogers 提交于
      howto-index.sh exists in git but not in perf, as such targets that
      depend upon it fail. Remove such failing targets.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https //lore.kernel.org/r/20210715013343.2286699-7-irogers@google.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      17ef1f14
    • I
      perf doc: Remove cmd-list.perl references · e30b992f
      Ian Rogers 提交于
      cmd-list.perl exists in git but not in perf. As such these targets fail
      with missing dependencies. Remove them.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https //lore.kernel.org/r/20210715013343.2286699-6-irogers@google.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      e30b992f
    • I
      perf doc: Add info pages to all target. · 361ac7b4
      Ian Rogers 提交于
      Enabled to ensure that info pages build.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https //lore.kernel.org/r/20210715013343.2286699-5-irogers@google.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      361ac7b4
    • I
      perf doc: Remove references to user-manual · 33e53610
      Ian Rogers 提交于
      Perf doesn't have a user-manual.txt, but git does and this explains why
      there are references here. Having these references breaks 'make info' as
      user-manual.info can't be created given the missing dependency. Remove
      all references to user-manual so that 'make info' can succeed.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https //lore.kernel.org/r/20210715013343.2286699-4-irogers@google.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      33e53610
    • I
      perf doc: Fix doc.dep · a81df63a
      Ian Rogers 提交于
      The doc.dep dependencies for the Makefile fail to build as
      build-docdep.perl is missing. Add this file from git.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https //lore.kernel.org/r/20210715013343.2286699-3-irogers@google.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      a81df63a
    • I
      perf doc: Fix perfman.info build · 6f6e7f06
      Ian Rogers 提交于
      Before this change 'make perfman.info' fails as cat-texi.perl is
      missing. It also fails as the makeinfo output isn't written into the
      appropriate file. Add cat-texi.perl from git. Add missing output file
      flag for makeinfo.
      Signed-off-by: NIan Rogers <irogers@google.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https //lore.kernel.org/r/20210715013343.2286699-2-irogers@google.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      6f6e7f06
    • J
      perf cs-etm: Pass unformatted flag to decoder · 9182f04a
      James Clark 提交于
      The TRBE (Trace Buffer Extension) feature allows a separate trace buffer
      for each trace source, therefore the trace wouldn't need to be
      formatted. The driver was introduced in commit 3fbf7f01
      ("coresight: sink: Add TRBE driver").
      
      The formatted/unformatted mode is encoded in one of the flags of the
      AUX record. The first AUX record encountered for each event is used to
      determine the mode, and this will persist for the remaining trace that
      is either decoded or dumped.
      Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NJames Clark <james.clark@arm.com>
      Cc: Al Grant <al.grant@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: coresight@lists.linaro.org
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https //lore.kernel.org/r/20210721150202.32065-7-james.clark@arm.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9182f04a
    • J
      perf cs-etm: Use existing decoder instead of resetting it · 04aaad26
      James Clark 提交于
      When dumping trace, the decoder is continually deleted and recreated to
      decode each buffer. To support both formatted and unformatted trace in
      a later commit, the decoder will be configured in advance.
      
      This commit removes the deletion of the decoder and allows the
      formatted/unformatted setting to persist.
      Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NJames Clark <james.clark@arm.com>
      Cc: Al Grant <al.grant@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: coresight@lists.linaro.org
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https //lore.kernel.org/r/20210721150202.32065-6-james.clark@arm.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      04aaad26
    • J
      perf cs-etm: Suppress printing when resetting decoder · b8324f49
      James Clark 提交于
      The decoder is quite noisy when being reset. In a future commit,
      dump-raw-trace will use a code path that resets the decoder rather than
      creating a new one, so printing has to be suppressed to not flood the
      output.
      Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NJames Clark <james.clark@arm.com>
      Cc: Al Grant <al.grant@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: coresight@lists.linaro.org
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https //lore.kernel.org/r/20210721150202.32065-5-james.clark@arm.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b8324f49
    • J
      perf cs-etm: Only setup queues when they are modified · ca50db59
      James Clark 提交于
      Continually creating queues in cs_etm__process_event() is unnecessary.
      They only need to be created when a buffer for a new CPU or thread is
      encountered. This can be in two places, when building the queues in
      advance in cs_etm__process_auxtrace_info(), or in
      cs_etm__process_auxtrace_event() when data_queued is false and the
      index wasn't available (pipe mode).
      
      This change will allow the 'formatted' decoder setting to applied when
      iterating over aux records in a later commit.
      Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NJames Clark <james.clark@arm.com>
      Cc: Al Grant <al.grant@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: coresight@lists.linaro.org
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https //lore.kernel.org/r/20210721150202.32065-4-james.clark@arm.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ca50db59
    • J
      perf cs-etm: Split setup and timestamp search functions · 9ac8afd5
      James Clark 提交于
      This refactoring has some benefits:
      
       * Decoding is done to find the timestamp. If we want to print errors
         when maps aren't available, then doing it from cs_etm__setup_queue()
         may cause warnings to be printed.
      
       * The cs_etm__setup_queue() flow is shared between timed and timeless
         modes, so it needs to be guarded by an if statement which can now
         be removed.
      
       * Allows moving the setup queues function earlier.
      
       * If data was piped in, then not all queues would be filled so it
         wouldn't have worked properly anyway. Now it waits for flush so
         data in all queues will be available.
      
      The motivation for this is to decouple setup functions with ones that
      involve decoding. That way we can move the setup function earlier when
      the formatted/unformatted trace information is available.
      Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NJames Clark <james.clark@arm.com>
      Cc: Al Grant <al.grant@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: coresight@lists.linaro.org
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https //lore.kernel.org/r/20210721150202.32065-3-james.clark@arm.com
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9ac8afd5
    • J
      perf cs-etm: Refactor initialisation of kernel start address · 6f38e115
      James Clark 提交于
      The kernel start address is already cached in the machine struct once it
      is initialised, so storing it in the cs_etm struct is unnecessary.
      
      It also depends on kernel maps being available to be initialised.
      Therefore cs_etm__setup_queues() isn't an appropriate place to call it
      because it could be called before processing starts. It would be better
      to initialise it at the point when it is needed, then we can be sure
      that all the necessary maps are available. Also by calling
      machine__kernel_start() multiple times it can be initialised at some
      point, even if it failed to initialise previously due to missing maps.
      
      In a later commit cs_etm__setup_queues() will be moved which is the
      motivation for this change.
      Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NJames Clark <james.clark@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Al Grant <al.grant@arm.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: coresight@lists.linaro.org
      Link: https://lore.kernel.org/r/20210721150202.32065-2-james.clark@arm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      6f38e115
    • W
      perf trace: Update cmd string table to decode sys_bpf first arg · ea0056f0
      Wei Li 提交于
      As 'enum bpf_cmd' has been extended a lot, update the cmd string table to
      decode sys_bpf first arg clearly in perf-trace.
      Signed-off-by: NWei Li <liwei391@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Andrii Nakryiko <andrii@kernel.org>
      Cc: Daniel Borkmann <daniel@iogearbox.net>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Fastabend <john.fastabend@gmail.com>
      Cc: KP Singh <kpsingh@kernel.org>
      Cc: Li Bin <huawei.libin@huawei.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Martin KaFai Lau <kafai@fb.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Yonghong Song <yhs@fb.com>
      Cc: bpf@vger.kernel.org
      Link: http://lore.kernel.org/lkml/20210714015000.2844867-1-liwei391@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ea0056f0
  2. 31 7月, 2021 1 次提交
    • A
      Revert "perf map: Fix dso->nsinfo refcounting" · 9bac1bd6
      Arnaldo Carvalho de Melo 提交于
      This makes 'perf top' abort in some cases, and the right fix will
      involve surgery that is too much to do at this stage, so revert for now
      and fix it in the next merge window.
      
      This reverts commit 2d6b74ba.
      
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Krister Johansen <kjlx@templeofstupid.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9bac1bd6
  3. 28 7月, 2021 3 次提交
    • D
      KVM: selftests: Introduce access_tracking_perf_test · c33e05d9
      David Matlack 提交于
      This test measures the performance effects of KVM's access tracking.
      Access tracking is driven by the MMU notifiers test_young, clear_young,
      and clear_flush_young. These notifiers do not have a direct userspace
      API, however the clear_young notifier can be triggered by marking a
      pages as idle in /sys/kernel/mm/page_idle/bitmap. This test leverages
      that mechanism to enable access tracking on guest memory.
      
      To measure performance this test runs a VM with a configurable number of
      vCPUs that each touch every page in disjoint regions of memory.
      Performance is measured in the time it takes all vCPUs to finish
      touching their predefined region.
      
      Example invocation:
      
        $ ./access_tracking_perf_test -v 8
        Testing guest mode: PA-bits:ANY, VA-bits:48,  4K pages
        guest physical test memory offset: 0xffdfffff000
      
        Populating memory             : 1.337752570s
        Writing to populated memory   : 0.010177640s
        Reading from populated memory : 0.009548239s
        Mark memory idle              : 23.973131748s
        Writing to idle memory        : 0.063584496s
        Mark memory idle              : 24.924652964s
        Reading from idle memory      : 0.062042814s
      
      Breaking down the results:
      
       * "Populating memory": The time it takes for all vCPUs to perform the
         first write to every page in their region.
      
       * "Writing to populated memory" / "Reading from populated memory": The
         time it takes for all vCPUs to write and read to every page in their
         region after it has been populated. This serves as a control for the
         later results.
      
       * "Mark memory idle": The time it takes for every vCPU to mark every
         page in their region as idle through page_idle.
      
       * "Writing to idle memory" / "Reading from idle memory": The time it
         takes for all vCPUs to write and read to every page in their region
         after it has been marked idle.
      
      This test should be portable across architectures but it is only enabled
      for x86_64 since that's all I have tested.
      Reviewed-by: NBen Gardon <bgardon@google.com>
      Signed-off-by: NDavid Matlack <dmatlack@google.com>
      Message-Id: <20210713220957.3493520-7-dmatlack@google.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      c33e05d9
    • D
      KVM: selftests: Fix missing break in dirty_log_perf_test arg parsing · 15b7b737
      David Matlack 提交于
      There is a missing break statement which causes a fallthrough to the
      next statement where optarg will be null and a segmentation fault will
      be generated.
      
      Fixes: 9e965bb7 ("KVM: selftests: Add backing src parameter to dirty_log_perf_test")
      Reviewed-by: NBen Gardon <bgardon@google.com>
      Signed-off-by: NDavid Matlack <dmatlack@google.com>
      Message-Id: <20210713220957.3493520-6-dmatlack@google.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      15b7b737
    • J
      perf pmu: Fix alias matching · c07d5c92
      John Garry 提交于
      Commit c47a5599 ("perf tools: Fix pattern matching for same
      substring in different PMU type"), may have fixed some alias matching,
      but has broken some others.
      
      Firstly it cannot handle the simple scenario of PMU name in form
      pmu_name{digits} - it can only handle pmu_name_{digits}.
      
      Secondly it cannot handle more complex matching in the case where we
      have multiple tokens. In this scenario, the code failed to realise that
      we may examine multiple substrings in the PMU name.
      
      Fix in two ways:
      
      - Change perf_pmu__valid_suffix() to accept a PMU name without '_' in the
        suffix
      
      - Only pay attention to perf_pmu__valid_suffix() for the final token
      
      Also add const qualifiers as necessary to avoid casting.
      
      Fixes: c47a5599 ("perf tools: Fix pattern matching for same substring in different PMU type")
      Signed-off-by: NJohn Garry <john.garry@huawei.com>
      Tested-by: NJin Yao <yao.jin@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kajol Jain <kjain@linux.ibm.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/1626793819-79090-1-git-send-email-john.garry@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      c07d5c92
  4. 27 7月, 2021 1 次提交
    • J
      perf cs-etm: Split --dump-raw-trace by AUX records · 48e8a7b5
      James Clark 提交于
      Currently --dump-raw-trace skips queueing and splitting buffers because
      of an early exit condition in cs_etm__process_auxtrace_info(). Once
      that is removed we can print the split data by using the queues
      and searching for split buffers with the same reference as the
      one that is currently being processed.
      
      This keeps the same behaviour of dumping in file order when an AUXTRACE
      event appears, rather than moving trace dump to where AUX records are in
      the file.
      
      There will be a newline and size printout for each fragment. For example
      this buffer is comprised of two AUX records, but was printed as one:
      
        0 0 0x8098 [0x30]: PERF_RECORD_AUXTRACE size: 0xa0  offset: 0  ref: 0x491a4dfc52fc0e6e  idx: 0  t
      
        . ... CoreSight ETM Trace data: size 160 bytes
                Idx:0; ID:10;   I_ASYNC : Alignment Synchronisation.
                Idx:12; ID:10;  I_TRACE_INFO : Trace Info.; INFO=0x0 { CC.0 }
                Idx:17; ID:10;  I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.; Addr=0x0000000000000000;
                Idx:80; ID:10;  I_ASYNC : Alignment Synchronisation.
                Idx:92; ID:10;  I_TRACE_INFO : Trace Info.; INFO=0x0 { CC.0 }
                Idx:97; ID:10;  I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.; Addr=0xFFFFDE2AD3FD76D4;
      
      But is now printed as two fragments:
      
        0 0 0x8098 [0x30]: PERF_RECORD_AUXTRACE size: 0xa0  offset: 0  ref: 0x491a4dfc52fc0e6e  idx: 0  t
      
        . ... CoreSight ETM Trace data: size 80 bytes
                Idx:0; ID:10;   I_ASYNC : Alignment Synchronisation.
                Idx:12; ID:10;  I_TRACE_INFO : Trace Info.; INFO=0x0 { CC.0 }
                Idx:17; ID:10;  I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.; Addr=0x0000000000000000;
      
        . ... CoreSight ETM Trace data: size 80 bytes
                Idx:80; ID:10;  I_ASYNC : Alignment Synchronisation.
                Idx:92; ID:10;  I_TRACE_INFO : Trace Info.; INFO=0x0 { CC.0 }
                Idx:97; ID:10;  I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.; Addr=0xFFFFDE2AD3FD76D4;
      
      Decoding errors that appeared in problematic files are now not present,
      for example:
      
              Idx:808; ID:1c; I_BAD_SEQUENCE : Invalid Sequence in packet.[I_ASYNC]
              ...
              PKTP_ETMV4I_0016 : 0x0014 (OCSD_ERR_INVALID_PCKT_HDR) [Invalid packet header]; TrcIdx=822
      Signed-off-by: NJames Clark <james.clark@arm.com>
      Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Tested-by: NLeo Yan <leo.yan@linaro.org>
      Cc: Al Grant <al.grant@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Branislav Rankov <branislav.rankov@arm.com>
      Cc: Denis Nikitin <denik@chromium.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: coresight@lists.linaro.org
      Cc: linux-arm-kernel@lists.infradead.org
      Link: http://lore.kernel.org/lkml/20210624164303.28632-3-james.clark@arm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      48e8a7b5
  5. 24 7月, 2021 1 次提交
  6. 21 7月, 2021 1 次提交
  7. 18 7月, 2021 4 次提交
    • Y
      perf sched: Fix record failure when CONFIG_SCHEDSTATS is not set · b0f00855
      Yang Jihong 提交于
      The tracepoints trace_sched_stat_{wait, sleep, iowait} are not exposed to user
      if CONFIG_SCHEDSTATS is not set, "perf sched record" records the three events.
      As a result, the command fails.
      
      Before:
      
        #perf sched record sleep 1
        event syntax error: 'sched:sched_stat_wait'
                             \___ unknown tracepoint
      
        Error:  File /sys/kernel/tracing/events/sched/sched_stat_wait not found.
        Hint:   Perhaps this kernel misses some CONFIG_ setting to enable this feature?.
      
        Run 'perf list' for a list of valid events
      
         Usage: perf record [<options>] [<command>]
            or: perf record [<options>] -- <command> [<options>]
      
            -e, --event <event>   event selector. use 'perf list' to list available events
      
      Solution:
        Check whether schedstat tracepoints are exposed. If no, these events are not recorded.
      
      After:
        # perf sched record sleep 1
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.163 MB perf.data (1091 samples) ]
        # perf sched report
        run measurement overhead: 4736 nsecs
        sleep measurement overhead: 9059979 nsecs
        the run test took 999854 nsecs
        the sleep test took 8945271 nsecs
        nr_run_events:        716
        nr_sleep_events:      785
        nr_wakeup_events:     0
        ...
        ------------------------------------------------------------
      
      Fixes: 2a09b5de ("sched/fair: do not expose some tracepoints to user if CONFIG_SCHEDSTATS is not set")
      Signed-off-by: NYang Jihong <yangjihong1@huawei.com>
      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>
      Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
      Cc: Yafang Shao <laoar.shao@gmail.com>
      Link: http://lore.kernel.org/lkml/20210713112358.194693-1-yangjihong1@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b0f00855
    • Y
      perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel · 22a66551
      Yang Jihong 提交于
      The "address" member of "struct probe_trace_point" uses long data type.
      If kernel is 64-bit and perf program is 32-bit, size of "address"
      variable is 32 bits.
      
      As a result, upper 32 bits of address read from kernel are truncated, an
      error occurs during address comparison in kprobe_warn_out_range().
      
      Before:
      
        # perf probe -a schedule
        schedule is out of .text, skip it.
          Error: Failed to add events.
      
      Solution:
        Change data type of "address" variable to u64 and change corresponding
      address printing and value assignment.
      
      After:
      
        # perf.new.new probe -a schedule
        Added new event:
          probe:schedule       (on schedule)
      
        You can now use it in all perf tools, such as:
      
                perf record -e probe:schedule -aR sleep 1
      
        # perf probe -l
          probe:schedule       (on schedule@kernel/sched/core.c)
        # perf record -e probe:schedule -aR sleep 1
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.156 MB perf.data (1366 samples) ]
        # perf report --stdio
        # To display the perf.data header info, please use --header/--header-only options.
        #
        #
        # Total Lost Samples: 0
        #
        # Samples: 1K of event 'probe:schedule'
        # Event count (approx.): 1366
        #
        # Overhead  Command          Shared Object      Symbol
        # ........  ...............  .................  ............
        #
             6.22%  migration/0      [kernel.kallsyms]  [k] schedule
             6.22%  migration/1      [kernel.kallsyms]  [k] schedule
             6.22%  migration/2      [kernel.kallsyms]  [k] schedule
             6.22%  migration/3      [kernel.kallsyms]  [k] schedule
             6.15%  migration/10     [kernel.kallsyms]  [k] schedule
             6.15%  migration/11     [kernel.kallsyms]  [k] schedule
             6.15%  migration/12     [kernel.kallsyms]  [k] schedule
             6.15%  migration/13     [kernel.kallsyms]  [k] schedule
             6.15%  migration/14     [kernel.kallsyms]  [k] schedule
             6.15%  migration/15     [kernel.kallsyms]  [k] schedule
             6.15%  migration/4      [kernel.kallsyms]  [k] schedule
             6.15%  migration/5      [kernel.kallsyms]  [k] schedule
             6.15%  migration/6      [kernel.kallsyms]  [k] schedule
             6.15%  migration/7      [kernel.kallsyms]  [k] schedule
             6.15%  migration/8      [kernel.kallsyms]  [k] schedule
             6.15%  migration/9      [kernel.kallsyms]  [k] schedule
             0.22%  rcu_sched        [kernel.kallsyms]  [k] schedule
        ...
        #
        # (Cannot load tips.txt file, please install perf!)
        #
      Signed-off-by: NYang Jihong <yangjihong1@huawei.com>
      Acked-by: NMasami Hiramatsu <mhiramat@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Frank Ch. Eigler <fche@redhat.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jianlin Lv <jianlin.lv@arm.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Li Huafei <lihuafei1@huawei.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Link: http://lore.kernel.org/lkml/20210715063723.11926-1-yangjihong1@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      22a66551
    • R
      perf data: Close all files in close_dir() · d4b3eedc
      Riccardo Mancini 提交于
      When using 'perf report' in directory mode, the first file is not closed
      on exit, causing a memory leak.
      
      The problem is caused by the iterating variable never reaching 0.
      
      Fixes: 14552063 ("perf data: Add perf_data__(create_dir|close_dir) functions")
      Signed-off-by: NRiccardo Mancini <rickyman7@gmail.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Zhen Lei <thunder.leizhen@huawei.com>
      Link: http://lore.kernel.org/lkml/20210716141122.858082-1-rickyman7@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      d4b3eedc
    • R
      perf probe-file: Delete namelist in del_events() on the error path · e0fa7ab4
      Riccardo Mancini 提交于
      ASan reports some memory leaks when running:
      
        # perf test "42: BPF filter"
      
      This second leak is caused by a strlist not being dellocated on error
      inside probe_file__del_events.
      
      This patch adds a goto label before the deallocation and makes the error
      path jump to it.
      Signed-off-by: NRiccardo Mancini <rickyman7@gmail.com>
      Fixes: e7895e42 ("perf probe: Split del_perf_probe_events()")
      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/174963c587ae77fa108af794669998e4ae558338.1626343282.git.rickyman7@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      e0fa7ab4
  8. 17 7月, 2021 1 次提交
  9. 16 7月, 2021 5 次提交