projects/linux·commit 48342fc0

Merge tag 'perf-tools-2020-12-19' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux

48342fc0 · Linus Torvalds <[email protected]> · 2020-12-20 11:21:06 -08:00

Pull perf tools updates from Arnaldo Carvalho de Melo:
 "perf record:
   - Fix memory leak when using '--user-regs=?' to list registers

  aarch64 support:
   - Add aarch64 registers to 'perf record's' --user-regs command line
     option

  aarch64 hw tracing support:
   - Decode memory tagging properties
   - Improve ARM's auxtrace support
   - Add support for ARMv8.3-SPE

  perf kvm:
   - Add kvm-stat for arm64

  perf stat:
   - Add --quiet option

  Cleanups:
   - Fixup function names wrt what is in libperf and what is in
     tools/perf

  Build:
   - Allow building without libbpf in older systems

  New kernel features:
   - Initial support for data/code page size sample type, more to come

  perf annotate:
   - Support MIPS instruction extended support

  perf stack unwinding:
   - Fix separate debug info files when using elfutils' libdw's unwinder

  perf vendor events:
   - Update Intel's Skylake client events to v50
   - Add JSON metrics for ARM's imx8mm DDR Perf
   - Support printing metric groups for system PMUs

  perf build id:
   - Prep work for supporting having the build id provided by the kernel
     in PERF_RECORD_MMAP2 metadata events

  perf stat:
   - Support regex pattern in --for-each-cgroup

  pipe mode:
   - Allow to use stdio functions for pipe mode
   - Support 'perf report's' --header-only for pipe mode
   - Support pipe mode display in 'perf evlist'

  Documentation:
   - Update information about CAP_PERFMON"

* tag 'perf-tools-2020-12-19' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (134 commits)
  perf mem: Factor out a function to generate sort order
  perf sort: Add sort option for data page size
  perf script: Support data page size
  tools headers UAPI: Update asm-generic/unistd.h
  tools headers cpufeatures: Sync with the kernel sources
  tools headers UAPI: Sync linux/prctl.h with the kernel sources
  tools headers UAPI: Sync linux/fscrypt.h with the kernel sources
  tools headers UAPI: Sync linux/const.h with the kernel headers
  tools arch x86: Sync the msr-index.h copy with the kernel sources
  perf trace beauty: Update copy of linux/socket.h with the kernel sources
  tools headers: Update linux/ctype.h with the kernel sources
  tools headers: Add conditional __has_builtin()
  tools headers: Get tools's linux/compiler.h closer to the kernel's
  tools headers UAPI: Sync linux/stat.h with the kernel sources
  tools headers: Syncronize linux/build_bug.h with the kernel sources
  perf tools: Reformat record's control fd man text
  perf config: Fix example command in manpage to conform to syntax specified in the SYNOPSIS section.
  perf test: Make sample-parsing test aware of PERF_SAMPLE_{CODE,DATA}_PAGE_SIZE
  perf tools: Add support to read build id from compressed elf
  perf debug: Add debug_set_file function
  ...
Commit
48342fc07272eec454fc5b400ed3ce3739c7e950
Parents
6a447b0e · 2e7f5450

Merge commit. Changes below are compared with the first parent: 6a447b0e.

Changes

168 files changed · +7686 −5892

FileStatusAddDelContent
Documentation/admin-guide/perf-security.rstmodified+70−11View file
tools/arch/x86/include/asm/cpufeatures.hmodified+2−0View file
tools/arch/x86/include/asm/disabled-features.hmodified+7−1View file
tools/arch/x86/include/asm/msr-index.hmodified+11−1View file
tools/build/feature/Makefilemodified+1−1View file
tools/include/linux/build_bug.hmodified+5−0View file
tools/include/linux/compiler.hmodified+1−3View file
tools/include/linux/compiler_types.hadded+21−0View file
tools/include/linux/ctype.hmodified+12−5View file
tools/include/linux/string.hmodified+1−0View file
tools/include/uapi/asm-generic/unistd.hmodified+1−1View file
tools/include/uapi/linux/const.hmodified+5−0View file
tools/include/uapi/linux/fscrypt.hmodified+2−3View file
tools/include/uapi/linux/perf_event.hmodified+5−1View file
tools/include/uapi/linux/prctl.hmodified+5−0View file
tools/include/uapi/linux/stat.hmodified+6−3View file
tools/lib/string.cmodified+58−0View file
tools/perf/Documentation/itrace.txtmodified+1−0View file
tools/perf/Documentation/perf-config.txtmodified+1−1View file
tools/perf/Documentation/perf-record.txtmodified+14−5View file
tools/perf/Documentation/perf-report.txtmodified+1−0View file
tools/perf/Documentation/perf-script.txtmodified+3−2View file
tools/perf/Documentation/perf-stat.txtmodified+7−2View file
tools/perf/arch/arm/util/cs-etm.cmodified+2−2View file
tools/perf/arch/arm64/Makefilemodified+1−0View file
tools/perf/arch/arm64/util/Buildmodified+2−1View file
tools/perf/arch/arm64/util/arm-spe.cmodified+2−2View file
tools/perf/arch/arm64/util/arm64_exception_types.hadded+92−0View file
tools/perf/arch/arm64/util/kvm-stat.cadded+85−0View file
tools/perf/arch/arm64/util/mem-events.cadded+37−0View file
tools/perf/arch/arm64/util/perf_regs.cmodified+33−0View file
tools/perf/arch/mips/Buildmodified+1−1View file
tools/perf/arch/mips/annotate/instructions.cadded+46−0View file
tools/perf/arch/x86/include/arch-tests.hmodified+0−1View file
tools/perf/arch/x86/tests/Buildmodified+0−1View file
tools/perf/arch/x86/tests/arch-tests.cmodified+0−4View file
tools/perf/arch/x86/tests/intel-cqm.cmodified+1−1View file
tools/perf/arch/x86/util/intel-bts.cmodified+2−2View file
tools/perf/arch/x86/util/intel-pt.cmodified+3−3View file
tools/perf/builtin-annotate.cmodified+2−2View file
tools/perf/builtin-c2c.cmodified+33−6View file
tools/perf/builtin-diff.cmodified+2−2View file
tools/perf/builtin-evlist.cmodified+17−1View file
tools/perf/builtin-ftrace.cmodified+5−6View file
tools/perf/builtin-inject.cmodified+2−0View file
tools/perf/builtin-kmem.cmodified+2−5View file
tools/perf/builtin-kvm.cmodified+4−5View file
tools/perf/builtin-mem.cmodified+71−26View file
tools/perf/builtin-record.cmodified+25−27View file
tools/perf/builtin-report.cmodified+19−15View file
tools/perf/builtin-sched.cmodified+2−4View file
tools/perf/builtin-script.cmodified+19−6View file
tools/perf/builtin-stat.cmodified+25−20View file
tools/perf/builtin-top.cmodified+15−19View file
tools/perf/builtin-trace.cmodified+18−25View file
tools/perf/builtin-version.cmodified+1−0View file
tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.jsonadded+39−0View file
tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.jsonadded+18−0View file
tools/perf/pmu-events/arch/test/arch-std-events.jsonadded+8−0View file
tools/perf/pmu-events/arch/test/test_cpu/cache.jsonadded+5−0View file
tools/perf/pmu-events/arch/x86/skylake/cache.jsonmodified+2049−2051View file
tools/perf/pmu-events/arch/x86/skylake/floating-point.jsonmodified+38−38View file
tools/perf/pmu-events/arch/x86/skylake/frontend.jsonmodified+339−305View file
tools/perf/pmu-events/arch/x86/skylake/memory.jsonmodified+1143−1136View file
tools/perf/pmu-events/arch/x86/skylake/other.jsonmodified+34−26View file
tools/perf/pmu-events/arch/x86/skylake/pipeline.jsonmodified+634−632View file
tools/perf/pmu-events/arch/x86/skylake/skl-metrics.jsonmodified+136−135View file
tools/perf/pmu-events/arch/x86/skylake/virtual-memory.jsonmodified+187−187View file
tools/perf/pmu-events/jevents.cmodified+132−50View file
tools/perf/pmu-events/pmu-events.hmodified+6−0View file
tools/perf/tests/Buildmodified+1−0View file
tools/perf/tests/backward-ring-buffer.cmodified+2−2View file
tools/perf/tests/bpf.cmodified+6−6View file
tools/perf/tests/builtin-test.cmodified+6−0View file
tools/perf/tests/code-reading.cmodified+4−4View file
tools/perf/tests/event-times.cmodified+3−3View file
tools/perf/tests/event_update.cmodified+1−2View file
tools/perf/tests/evsel-tp-sched.cmodified+12−13View file
tools/perf/tests/expand-cgroup.cmodified+4−5View file
tools/perf/tests/keep-tracking.cmodified+1−1View file
tools/perf/tests/llvm.cmodified+19−11View file
tools/perf/tests/mmap-basic.cmodified+3−3View file
tools/perf/tests/openat-syscall-tp-fields.cmodified+3−3View file
tools/perf/tests/parse-events.cmodified+4−6View file
tools/perf/tests/parse-metric.cmodified+2−2View file
tools/perf/tests/parse-no-sample-id-all.cmodified+2−2View file
tools/perf/tests/perf-record.cmodified+9−9View file
tools/perf/arch/x86/tests/perf-time-to-tsc.c → tools/perf/tests/perf-time-to-tsc.crenamed+16−5View file
tools/perf/tests/pmu-events.cmodified+15−1View file
tools/perf/tests/sample-parsing.cmodified+5−1View file
tools/perf/tests/shell/stat+shadow_stat.shadded+80−0View file
tools/perf/tests/shell/trace+probe_vfs_getname.shmodified+1−1View file
tools/perf/tests/sw-clock.cmodified+1−1View file
tools/perf/tests/switch-tracking.cmodified+9−9View file
tools/perf/tests/task-exit.cmodified+6−7View file
tools/perf/tests/tests.hmodified+3−0View file
tools/perf/tests/topology.cmodified+1−1View file
tools/perf/tests/wp.cmodified+15−6View file
tools/perf/trace/beauty/include/linux/socket.hmodified+1−0View file
tools/perf/trace/beauty/mmap_flags.shmodified+2−2View file
tools/perf/trace/beauty/mmap_prot.shmodified+1−1View file
tools/perf/ui/browsers/hists.cmodified+22−39View file
tools/perf/ui/gtk/gtk.hmodified+2−3View file
tools/perf/ui/gtk/hists.cmodified+2−4View file
tools/perf/util/annotate.cmodified+12−4View file
tools/perf/util/arm-spe-decoder/arm-spe-decoder.cmodified+33−26View file
tools/perf/util/arm-spe-decoder/arm-spe-decoder.hmodified+0−17View file
tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.cmodified+336−265View file
tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.hmodified+109−13View file
tools/perf/util/arm-spe.cmodified+1−1View file
tools/perf/util/auxtrace.cmodified+10−9View file
tools/perf/util/auxtrace.hmodified+2−0View file
tools/perf/util/bpf-event.cmodified+1−1View file
tools/perf/util/bpf-loader.cmodified+1−2View file
tools/perf/util/bpf-loader.hmodified+3−0View file
tools/perf/util/build-id.cmodified+83−44View file
tools/perf/util/build-id.hmodified+8−0View file
tools/perf/util/cgroup.cmodified+177−25View file
tools/perf/util/data.cmodified+57−3View file
tools/perf/util/data.hmodified+11−1View file
tools/perf/util/debug.cmodified+8−1View file
tools/perf/util/debug.hmodified+2−0View file
tools/perf/util/dso.cmodified+29−16View file
tools/perf/util/dso.hmodified+2−0View file
tools/perf/util/env.cmodified+12−3View file
tools/perf/util/env.hmodified+2−2View file
tools/perf/util/event.hmodified+4−0View file
tools/perf/util/evlist.cmodified+159−129View file
tools/perf/util/evlist.hmodified+51−85View file
tools/perf/util/evsel.cmodified+33−27View file
tools/perf/util/evsel.hmodified+1−0View file
tools/perf/util/evswitch.cmodified+2−2View file
tools/perf/util/expr.cmodified+59−9View file
tools/perf/util/expr.hmodified+4−13View file
tools/perf/util/expr.ymodified+1−1View file
tools/perf/util/header.cmodified+22−34View file
tools/perf/util/hist.cmodified+4−1View file
tools/perf/util/hist.hmodified+12−14View file
tools/perf/util/intel-pt.cmodified+1−2View file
tools/perf/util/machine.cmodified+38−31View file
tools/perf/util/map_symbol.hmodified+1−0View file
tools/perf/util/mem-events.cmodified+34−11View file
tools/perf/util/mem-events.hmodified+2−1View file
tools/perf/util/mem2node.cmodified+2−1View file
tools/perf/util/metricgroup.cmodified+193−65View file
tools/perf/util/parse-events.cmodified+27−2View file
tools/perf/util/parse-regs-options.cmodified+1−1View file
tools/perf/util/perf_event_attr_fprintf.cmodified+1−1View file
tools/perf/util/pmu.cmodified+96−0View file
tools/perf/util/pmu.hmodified+3−0View file
tools/perf/util/python.cmodified+2−2View file
tools/perf/util/record.cmodified+4−5View file
tools/perf/util/record.hmodified+1−0View file
tools/perf/util/s390-cpumsf.cmodified+3−3View file
tools/perf/util/s390-sample-raw.cmodified+2−3View file
tools/perf/util/sample-raw.cmodified+2−2View file
tools/perf/util/sample-raw.hmodified+2−5View file
tools/perf/util/session.cmodified+32−25View file
tools/perf/util/sideband_evlist.cmodified+7−7View file
tools/perf/util/sort.cmodified+31−1View file
tools/perf/util/sort.hmodified+1−0View file
tools/perf/util/stat-display.cmodified+2−6View file
tools/perf/util/stat.cmodified+10−10View file
tools/perf/util/stat.hmodified+9−12View file
tools/perf/util/symbol-elf.cmodified+35−2View file
tools/perf/util/symbol.cmodified+16−0View file
tools/perf/util/synthetic-events.cmodified+9−1View file
tools/perf/util/unwind-libdw.cmodified+27−5View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/admin-guide/perf-security.rst

View file
diff --git a/Documentation/admin-guide/perf-security.rst b/Documentation/admin-guide/perf-security.rst
index 1307b52..904e4eb 100644
--- a/Documentation/admin-guide/perf-security.rst
+++ b/Documentation/admin-guide/perf-security.rst
@@ -84,11 +84,14 @@ capabilities then providing the process with CAP_PERFMON capability singly
is recommended as the preferred secure approach to resolve double access
denial logging related to usage of performance monitoring and observability.
-Unprivileged processes using perf_events system call are also subject
-for PTRACE_MODE_READ_REALCREDS ptrace access mode check [7]_ , whose
-outcome determines whether monitoring is permitted. So unprivileged
-processes provided with CAP_SYS_PTRACE capability are effectively
-permitted to pass the check.
+Prior Linux v5.9 unprivileged processes using perf_events system call
+are also subject for PTRACE_MODE_READ_REALCREDS ptrace access mode check
+[7]_ , whose outcome determines whether monitoring is permitted.
+So unprivileged processes provided with CAP_SYS_PTRACE capability are
+effectively permitted to pass the check. Starting from Linux v5.9
+CAP_SYS_PTRACE capability is not required and CAP_PERFMON is enough to
+be provided for processes to make performance monitoring and observability
+operations.
Other capabilities being granted to unprivileged processes can
effectively enable capturing of additional data required for later
@@ -99,11 +102,11 @@ CAP_SYSLOG capability permits reading kernel space memory addresses from
Privileged Perf users groups
---------------------------------
-Mechanisms of capabilities, privileged capability-dumb files [6]_ and
-file system ACLs [10]_ can be used to create dedicated groups of
-privileged Perf users who are permitted to execute performance monitoring
-and observability without scope limits. The following steps can be
-taken to create such groups of privileged Perf users.
+Mechanisms of capabilities, privileged capability-dumb files [6]_,
+file system ACLs [10]_ and sudo [15]_ utility can be used to create
+dedicated groups of privileged Perf users who are permitted to execute
+performance monitoring and observability without limits. The following
+steps can be taken to create such groups of privileged Perf users.
1. Create perf_users group of privileged Perf users, assign perf_users
group to Perf tool executable and limit access to the executable for
@@ -133,7 +136,7 @@ taken to create such groups of privileged Perf users.
# getcap perf
perf = cap_sys_ptrace,cap_syslog,cap_perfmon+ep
-If the libcap installed doesn't yet support "cap_perfmon", use "38" instead,
+If the libcap [16]_ installed doesn't yet support "cap_perfmon", use "38" instead,
i.e.:
::
@@ -159,6 +162,60 @@ performance monitoring and observability by using functionality of the
configured Perf tool executable that, when executes, passes perf_events
subsystem scope checks.
+In case Perf tool executable can't be assigned required capabilities (e.g.
+file system is mounted with nosuid option or extended attributes are
+not supported by the file system) then creation of the capabilities
+privileged environment, naturally shell, is possible. The shell provides
+inherent processes with CAP_PERFMON and other required capabilities so that
+performance monitoring and observability operations are available in the
+environment without limits. Access to the environment can be open via sudo
+utility for members of perf_users group only. In order to create such
+environment:
+
+1. Create shell script that uses capsh utility [16]_ to assign CAP_PERFMON
+ and other required capabilities into ambient capability set of the shell
+ process, lock the process security bits after enabling SECBIT_NO_SETUID_FIXUP,
+ SECBIT_NOROOT and SECBIT_NO_CAP_AMBIENT_RAISE bits and then change
+ the process identity to sudo caller of the script who should essentially
+ be a member of perf_users group:
+
+::
+
+ # ls -alh /usr/local/bin/perf.shell
+ -rwxr-xr-x. 1 root root 83 Oct 13 23:57 /usr/local/bin/perf.shell
+ # cat /usr/local/bin/perf.shell
+ exec /usr/sbin/capsh --iab=^cap_perfmon --secbits=239 --user=$SUDO_USER -- -l
+
+2. Extend sudo policy at /etc/sudoers file with a rule for perf_users group:
+
+::
+
+ # grep perf_users /etc/sudoers
+ %perf_users ALL=/usr/local/bin/perf.shell
+
+3. Check that members of perf_users group have access to the privileged
+ shell and have CAP_PERFMON and other required capabilities enabled
+ in permitted, effective and ambient capability sets of an inherent process:
+
+::
+
+ $ id
+ uid=1003(capsh_test) gid=1004(capsh_test) groups=1004(capsh_test),1000(perf_users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
+ $ sudo perf.shell
+ [sudo] password for capsh_test:
+ $ grep Cap /proc/self/status
+ CapInh: 0000004000000000
+ CapPrm: 0000004000000000
+ CapEff: 0000004000000000
+ CapBnd: 000000ffffffffff
+ CapAmb: 0000004000000000
+ $ capsh --decode=0000004000000000
+ 0x0000004000000000=cap_perfmon
+
+As a result, members of perf_users group have access to the privileged
+environment where they can use tools employing performance monitoring APIs
+governed by CAP_PERFMON Linux capability.
+
This specific access control management is only available to superuser
or root running processes with CAP_SETPCAP, CAP_SETFCAP [6]_
capabilities.
@@ -264,3 +321,5 @@ Bibliography
.. [12] `<http://man7.org/linux/man-pages/man5/limits.conf.5.html>`_
.. [13] `<https://sites.google.com/site/fullycapable>`_
.. [14] `<http://man7.org/linux/man-pages/man8/auditd.8.html>`_
+.. [15] `<https://man7.org/linux/man-pages/man8/sudo.8.html>`_
+.. [16] `<https://git.kernel.org/pub/scm/libs/libcap/libcap.git/>`_

tools/arch/x86/include/asm/cpufeatures.h

View file
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
index dad350d..f5ef2d5 100644
--- a/tools/arch/x86/include/asm/cpufeatures.h
+++ b/tools/arch/x86/include/asm/cpufeatures.h
@@ -241,6 +241,7 @@
/* Intel-defined CPU features, CPUID level 0x00000007:0 (EBX), word 9 */
#define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* RDFSBASE, WRFSBASE, RDGSBASE, WRGSBASE instructions*/
#define X86_FEATURE_TSC_ADJUST ( 9*32+ 1) /* TSC adjustment MSR 0x3B */
+#define X86_FEATURE_SGX ( 9*32+ 2) /* Software Guard Extensions */
#define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
#define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
#define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
@@ -356,6 +357,7 @@
#define X86_FEATURE_MOVDIRI (16*32+27) /* MOVDIRI instruction */
#define X86_FEATURE_MOVDIR64B (16*32+28) /* MOVDIR64B instruction */
#define X86_FEATURE_ENQCMD (16*32+29) /* ENQCMD and ENQCMDS instructions */
+#define X86_FEATURE_SGX_LC (16*32+30) /* Software Guard Extensions Launch Control */
/* AMD-defined CPU features, CPUID level 0x80000007 (EBX), word 17 */
#define X86_FEATURE_OVERFLOW_RECOV (17*32+ 0) /* MCA overflow recovery support */

tools/arch/x86/include/asm/disabled-features.h

View file
diff --git a/tools/arch/x86/include/asm/disabled-features.h b/tools/arch/x86/include/asm/disabled-features.h
index 5861d34..7947cb1 100644
--- a/tools/arch/x86/include/asm/disabled-features.h
+++ b/tools/arch/x86/include/asm/disabled-features.h
@@ -62,6 +62,12 @@
# define DISABLE_ENQCMD (1 << (X86_FEATURE_ENQCMD & 31))
#endif
+#ifdef CONFIG_X86_SGX
+# define DISABLE_SGX 0
+#else
+# define DISABLE_SGX (1 << (X86_FEATURE_SGX & 31))
+#endif
+
/*
* Make sure to add features to the correct mask
*/
@@ -74,7 +80,7 @@
#define DISABLED_MASK6 0
#define DISABLED_MASK7 (DISABLE_PTI)
#define DISABLED_MASK8 0
-#define DISABLED_MASK9 (DISABLE_SMAP)
+#define DISABLED_MASK9 (DISABLE_SMAP|DISABLE_SGX)
#define DISABLED_MASK10 0
#define DISABLED_MASK11 0
#define DISABLED_MASK12 0

tools/arch/x86/include/asm/msr-index.h

View file
diff --git a/tools/arch/x86/include/asm/msr-index.h b/tools/arch/x86/include/asm/msr-index.h
index 972a34d..2b5fc9a 100644
--- a/tools/arch/x86/include/asm/msr-index.h
+++ b/tools/arch/x86/include/asm/msr-index.h
@@ -139,6 +139,7 @@
#define MSR_IA32_MCG_CAP 0x00000179
#define MSR_IA32_MCG_STATUS 0x0000017a
#define MSR_IA32_MCG_CTL 0x0000017b
+#define MSR_ERROR_CONTROL 0x0000017f
#define MSR_IA32_MCG_EXT_CTL 0x000004d0
#define MSR_OFFCORE_RSP_0 0x000001a6
@@ -326,8 +327,9 @@
#define MSR_PP1_ENERGY_STATUS 0x00000641
#define MSR_PP1_POLICY 0x00000642
-#define MSR_AMD_PKG_ENERGY_STATUS 0xc001029b
#define MSR_AMD_RAPL_POWER_UNIT 0xc0010299
+#define MSR_AMD_CORE_ENERGY_STATUS 0xc001029a
+#define MSR_AMD_PKG_ENERGY_STATUS 0xc001029b
/* Config TDP MSRs */
#define MSR_CONFIG_TDP_NOMINAL 0x00000648
@@ -609,6 +611,8 @@
#define FEAT_CTL_LOCKED BIT(0)
#define FEAT_CTL_VMX_ENABLED_INSIDE_SMX BIT(1)
#define FEAT_CTL_VMX_ENABLED_OUTSIDE_SMX BIT(2)
+#define FEAT_CTL_SGX_LC_ENABLED BIT(17)
+#define FEAT_CTL_SGX_ENABLED BIT(18)
#define FEAT_CTL_LMCE_ENABLED BIT(20)
#define MSR_IA32_TSC_ADJUST 0x0000003b
@@ -628,6 +632,12 @@
#define MSR_IA32_UCODE_WRITE 0x00000079
#define MSR_IA32_UCODE_REV 0x0000008b
+/* Intel SGX Launch Enclave Public Key Hash MSRs */
+#define MSR_IA32_SGXLEPUBKEYHASH0 0x0000008C
+#define MSR_IA32_SGXLEPUBKEYHASH1 0x0000008D
+#define MSR_IA32_SGXLEPUBKEYHASH2 0x0000008E
+#define MSR_IA32_SGXLEPUBKEYHASH3 0x0000008F
+
#define MSR_IA32_SMM_MONITOR_CTL 0x0000009b
#define MSR_IA32_SMBASE 0x0000009e

tools/build/feature/Makefile

View file
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index cdde783..89ba522 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -90,7 +90,7 @@ __BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(
###############################
$(OUTPUT)test-all.bin:
- $(BUILD) -fstack-protector-all -O2 -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -I/usr/include/slang -lslang $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl -lz -llzma -lzstd
+ $(BUILD) -fstack-protector-all -O2 -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -I/usr/include/slang -lslang $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl -lz -llzma -lzstd -lcap
$(OUTPUT)test-hello.bin:
$(BUILD)

tools/include/linux/build_bug.h

View file
diff --git a/tools/include/linux/build_bug.h b/tools/include/linux/build_bug.h
index cc7070c..ce365d2 100644
--- a/tools/include/linux/build_bug.h
+++ b/tools/include/linux/build_bug.h
@@ -79,4 +79,9 @@
#define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
#endif // static_assert
+#ifdef __GENKSYMS__
+/* genksyms gets confused by _Static_assert */
+#define _Static_assert(expr, ...)
+#endif
+
#endif /* _LINUX_BUILD_BUG_H */

tools/include/linux/compiler.h

View file
diff --git a/tools/include/linux/compiler.h b/tools/include/linux/compiler.h
index d22a974..ff872dc 100644
--- a/tools/include/linux/compiler.h
+++ b/tools/include/linux/compiler.h
@@ -2,9 +2,7 @@
#ifndef _TOOLS_LINUX_COMPILER_H_
#define _TOOLS_LINUX_COMPILER_H_
-#ifdef __GNUC__
-#include <linux/compiler-gcc.h>
-#endif
+#include <linux/compiler_types.h>
#ifndef __compiletime_error
# define __compiletime_error(message)

tools/include/linux/compiler_types.h

View file
diff --git a/tools/include/linux/compiler_types.h b/tools/include/linux/compiler_types.h
new file mode 100644
index 0000000..feea090
--- /dev/null
+++ b/tools/include/linux/compiler_types.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __LINUX_COMPILER_TYPES_H
+#define __LINUX_COMPILER_TYPES_H
+
+/* Builtins */
+
+/*
+ * __has_builtin is supported on gcc >= 10, clang >= 3 and icc >= 21.
+ * In the meantime, to support gcc < 10, we implement __has_builtin
+ * by hand.
+ */
+#ifndef __has_builtin
+#define __has_builtin(x) (0)
+#endif
+
+/* Compiler specific macros. */
+#ifdef __GNUC__
+#include <linux/compiler-gcc.h>
+#endif
+
+#endif /* __LINUX_COMPILER_TYPES_H */

tools/include/linux/ctype.h

View file
diff --git a/tools/include/linux/ctype.h b/tools/include/linux/ctype.h
index 310090b..29ed3fe 100644
--- a/tools/include/linux/ctype.h
+++ b/tools/include/linux/ctype.h
@@ -2,6 +2,8 @@
#ifndef _LINUX_CTYPE_H
#define _LINUX_CTYPE_H
+#include <linux/compiler.h>
+
/*
* NOTE! This ctype does not handle EOF like the standard C
* library is required to.
@@ -23,11 +25,6 @@ extern const unsigned char _ctype[];
#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0)
#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0)
#define iscntrl(c) ((__ismask(c)&(_C)) != 0)
-static inline int __isdigit(int c)
-{
- return '0' <= c && c <= '9';
-}
-#define isdigit(c) __isdigit(c)
#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0)
#define islower(c) ((__ismask(c)&(_L)) != 0)
#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
@@ -40,6 +37,16 @@ static inline int __isdigit(int c)
#define isascii(c) (((unsigned char)(c))<=0x7f)
#define toascii(c) (((unsigned char)(c))&0x7f)
+#if __has_builtin(__builtin_isdigit)
+#define isdigit(c) __builtin_isdigit(c)
+#else
+static inline int __isdigit(int c)
+{
+ return '0' <= c && c <= '9';
+}
+#define isdigit(c) __isdigit(c)
+#endif
+
static inline unsigned char __tolower(unsigned char c)
{
if (isupper(c))

tools/include/linux/string.h

View file
diff --git a/tools/include/linux/string.h b/tools/include/linux/string.h
index 5e9e781..db5c993 100644
--- a/tools/include/linux/string.h
+++ b/tools/include/linux/string.h
@@ -46,4 +46,5 @@ extern char * __must_check skip_spaces(const char *);
extern char *strim(char *);
+extern void *memchr_inv(const void *start, int c, size_t bytes);
#endif /* _TOOLS_LINUX_STRING_H_ */

tools/include/uapi/asm-generic/unistd.h

View file
diff --git a/tools/include/uapi/asm-generic/unistd.h b/tools/include/uapi/asm-generic/unistd.h
index 2056318..fc48c64 100644
--- a/tools/include/uapi/asm-generic/unistd.h
+++ b/tools/include/uapi/asm-generic/unistd.h
@@ -517,7 +517,7 @@ __SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday)
__SC_3264(__NR_adjtimex, sys_adjtimex_time32, sys_adjtimex)
#endif
-/* kernel/timer.c */
+/* kernel/sys.c */
#define __NR_getpid 172
__SYSCALL(__NR_getpid, sys_getpid)
#define __NR_getppid 173

tools/include/uapi/linux/const.h

View file
diff --git a/tools/include/uapi/linux/const.h b/tools/include/uapi/linux/const.h
index 5ed721a..af2a44c 100644
--- a/tools/include/uapi/linux/const.h
+++ b/tools/include/uapi/linux/const.h
@@ -28,4 +28,9 @@
#define _BITUL(x) (_UL(1) << (x))
#define _BITULL(x) (_ULL(1) << (x))
+#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
+#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
+
+#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
+
#endif /* _UAPI_LINUX_CONST_H */

tools/include/uapi/linux/fscrypt.h

View file
diff --git a/tools/include/uapi/linux/fscrypt.h b/tools/include/uapi/linux/fscrypt.h
index e5de603..9f4428b 100644
--- a/tools/include/uapi/linux/fscrypt.h
+++ b/tools/include/uapi/linux/fscrypt.h
@@ -20,7 +20,6 @@
#define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x04
#define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 0x08
#define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 0x10
-#define FSCRYPT_POLICY_FLAGS_VALID 0x1F
/* Encryption algorithms */
#define FSCRYPT_MODE_AES_256_XTS 1
@@ -28,7 +27,7 @@
#define FSCRYPT_MODE_AES_128_CBC 5
#define FSCRYPT_MODE_AES_128_CTS 6
#define FSCRYPT_MODE_ADIANTUM 9
-#define __FSCRYPT_MODE_MAX 9
+/* If adding a mode number > 9, update FSCRYPT_MODE_MAX in fscrypt_private.h */
/*
* Legacy policy version; ad-hoc KDF and no key verification.
@@ -177,7 +176,7 @@ struct fscrypt_get_key_status_arg {
#define FS_POLICY_FLAGS_PAD_32 FSCRYPT_POLICY_FLAGS_PAD_32
#define FS_POLICY_FLAGS_PAD_MASK FSCRYPT_POLICY_FLAGS_PAD_MASK
#define FS_POLICY_FLAG_DIRECT_KEY FSCRYPT_POLICY_FLAG_DIRECT_KEY
-#define FS_POLICY_FLAGS_VALID FSCRYPT_POLICY_FLAGS_VALID
+#define FS_POLICY_FLAGS_VALID 0x07 /* contains old flags only */
#define FS_ENCRYPTION_MODE_INVALID 0 /* never used */
#define FS_ENCRYPTION_MODE_AES_256_XTS FSCRYPT_MODE_AES_256_XTS
#define FS_ENCRYPTION_MODE_AES_256_GCM 2 /* never used */

tools/include/uapi/linux/perf_event.h

View file
diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
index b95d3c4..b15e344 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -143,8 +143,10 @@ enum perf_event_sample_format {
PERF_SAMPLE_PHYS_ADDR = 1U << 19,
PERF_SAMPLE_AUX = 1U << 20,
PERF_SAMPLE_CGROUP = 1U << 21,
+ PERF_SAMPLE_DATA_PAGE_SIZE = 1U << 22,
+ PERF_SAMPLE_CODE_PAGE_SIZE = 1U << 23,
- PERF_SAMPLE_MAX = 1U << 22, /* non-ABI */
+ PERF_SAMPLE_MAX = 1U << 24, /* non-ABI */
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
};
@@ -896,6 +898,8 @@ enum perf_event_type {
* { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
* { u64 size;
* char data[size]; } && PERF_SAMPLE_AUX
+ * { u64 data_page_size;} && PERF_SAMPLE_DATA_PAGE_SIZE
+ * { u64 code_page_size;} && PERF_SAMPLE_CODE_PAGE_SIZE
* };
*/
PERF_RECORD_SAMPLE = 9,

tools/include/uapi/linux/prctl.h

View file
diff --git a/tools/include/uapi/linux/prctl.h b/tools/include/uapi/linux/prctl.h
index 7f08277..90deb41 100644
--- a/tools/include/uapi/linux/prctl.h
+++ b/tools/include/uapi/linux/prctl.h
@@ -247,4 +247,9 @@ struct prctl_mm_map {
#define PR_SET_IO_FLUSHER 57
#define PR_GET_IO_FLUSHER 58
+/* Dispatch syscalls to a userspace handler */
+#define PR_SET_SYSCALL_USER_DISPATCH 59
+# define PR_SYS_DISPATCH_OFF 0
+# define PR_SYS_DISPATCH_ON 1
+
#endif /* _LINUX_PRCTL_H */

tools/include/uapi/linux/stat.h

View file
diff --git a/tools/include/uapi/linux/stat.h b/tools/include/uapi/linux/stat.h
index 82cc58f..1500a0f 100644
--- a/tools/include/uapi/linux/stat.h
+++ b/tools/include/uapi/linux/stat.h
@@ -171,9 +171,12 @@ struct statx {
* be of use to ordinary userspace programs such as GUIs or ls rather than
* specialised tools.
*
- * Note that the flags marked [I] correspond to generic FS_IOC_FLAGS
+ * Note that the flags marked [I] correspond to the FS_IOC_SETFLAGS flags
* semantically. Where possible, the numerical value is picked to correspond
- * also.
+ * also. Note that the DAX attribute indicates that the file is in the CPU
+ * direct access state. It does not correspond to the per-inode flag that
+ * some filesystems support.
+ *
*/
#define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */
#define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */
@@ -183,7 +186,7 @@ struct statx {
#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
#define STATX_ATTR_MOUNT_ROOT 0x00002000 /* Root of a mount */
#define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */
-#define STATX_ATTR_DAX 0x00002000 /* [I] File is DAX */
+#define STATX_ATTR_DAX 0x00200000 /* File is currently in DAX state */
#endif /* _UAPI_LINUX_STAT_H */

tools/lib/string.c

View file
diff --git a/tools/lib/string.c b/tools/lib/string.c
index f645343..8b6892f 100644
--- a/tools/lib/string.c
+++ b/tools/lib/string.c
@@ -168,3 +168,61 @@ char *strreplace(char *s, char old, char new)
*s = new;
return s;
}
+
+static void *check_bytes8(const u8 *start, u8 value, unsigned int bytes)
+{
+ while (bytes) {
+ if (*start != value)
+ return (void *)start;
+ start++;
+ bytes--;
+ }
+ return NULL;
+}
+
+/**
+ * memchr_inv - Find an unmatching character in an area of memory.
+ * @start: The memory area
+ * @c: Find a character other than c
+ * @bytes: The size of the area.
+ *
+ * returns the address of the first character other than @c, or %NULL
+ * if the whole buffer contains just @c.
+ */
+void *memchr_inv(const void *start, int c, size_t bytes)
+{
+ u8 value = c;
+ u64 value64;
+ unsigned int words, prefix;
+
+ if (bytes <= 16)
+ return check_bytes8(start, value, bytes);
+
+ value64 = value;
+ value64 |= value64 << 8;
+ value64 |= value64 << 16;
+ value64 |= value64 << 32;
+
+ prefix = (unsigned long)start % 8;
+ if (prefix) {
+ u8 *r;
+
+ prefix = 8 - prefix;
+ r = check_bytes8(start, value, prefix);
+ if (r)
+ return r;
+ start += prefix;
+ bytes -= prefix;
+ }
+
+ words = bytes / 8;
+
+ while (words) {
+ if (*(u64 *)start != value64)
+ return check_bytes8(start, value, 8);
+ start += 8;
+ words--;
+ }
+
+ return check_bytes8(start, value, bytes % 8);
+}

tools/perf/Documentation/itrace.txt

View file
diff --git a/tools/perf/Documentation/itrace.txt b/tools/perf/Documentation/itrace.txt
index d3740c8..079cdfa 100644
--- a/tools/perf/Documentation/itrace.txt
+++ b/tools/perf/Documentation/itrace.txt
@@ -11,6 +11,7 @@
d create a debug log
f synthesize first level cache events
m synthesize last level cache events
+ M synthesize memory events
t synthesize TLB events
a synthesize remote access events
g synthesize a call chain (use with i or x)

tools/perf/Documentation/perf-config.txt

View file
diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
index 31069d8..5c379ad 100644
--- a/tools/perf/Documentation/perf-config.txt
+++ b/tools/perf/Documentation/perf-config.txt
@@ -138,7 +138,7 @@ If you want to add or modify several config items, you can do like
To modify the sort order of report functionality in user config file(i.e. `~/.perfconfig`), do
- % perf config --user report sort-order=srcline
+ % perf config --user report.sort-order=srcline
To change colors of selected line to other foreground and background colors
in system config file (i.e. `$(sysconf)/perfconfig`), do

tools/perf/Documentation/perf-record.txt

View file
diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
index 768888b..34cf651 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -293,6 +293,9 @@ OPTIONS
--phys-data::
Record the sample physical addresses.
+--data-page-size::
+ Record the sampled data address data page size.
+
-T::
--timestamp::
Record the sample timestamps. Use it with 'perf report -D' to see the
@@ -634,11 +637,17 @@ endif::HAVE_LIBPFM[]
--control=fifo:ctl-fifo[,ack-fifo]::
--control=fd:ctl-fd[,ack-fd]::
ctl-fifo / ack-fifo are opened and used as ctl-fd / ack-fd as follows.
-Listen on ctl-fd descriptor for command to control measurement ('enable': enable events,
-'disable': disable events, 'snapshot': AUX area tracing snapshot). Measurements can be
-started with events disabled using --delay=-1 option. Optionally send control command
-completion ('ack\n') to ack-fd descriptor to synchronize with the controlling process.
-Example of bash shell script to enable and disable events during measurements:
+Listen on ctl-fd descriptor for command to control measurement.
+
+Available commands:
+ 'enable' : enable events
+ 'disable' : disable events
+ 'snapshot': AUX area tracing snapshot).
+
+Measurements can be started with events disabled using --delay=-1 option. Optionally
+send control command completion ('ack\n') to ack-fd descriptor to synchronize with the
+controlling process. Example of bash shell script to enable and disable events during
+measurements:
#!/bin/bash

tools/perf/Documentation/perf-report.txt

View file
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index d068103..8f7f4e9 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -150,6 +150,7 @@ OPTIONS
- snoop: type of snoop (if any) for the data at the time of the sample
- dcacheline: the cacheline the data address is on at the time of the sample
- phys_daddr: physical address of data being executed on at the time of sample
+ - data_page_size: the data page size of data being executed on at the time of sample
And the default sort keys are changed to local_weight, mem, sym, dso,
symbol_daddr, dso_daddr, snoop, tlb, locked, see '--mem-mode'.

tools/perf/Documentation/perf-script.txt

View file
diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index 4f712fb..44d3721 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -116,8 +116,9 @@ OPTIONS
--fields::
Comma separated list of fields to print. Options are:

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-stat.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm/util/cs-etm.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/arm-spe.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/arm64_exception_types.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/kvm-stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/mem-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/arm64/util/perf_regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/mips/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/mips/annotate/instructions.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/include/arch-tests.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/tests/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/tests/arch-tests.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/tests/intel-cqm.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/intel-bts.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/util/intel-pt.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-c2c.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-diff.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-evlist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-ftrace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-inject.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-kmem.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-kvm.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-mem.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-record.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-report.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-sched.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-script.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-top.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-trace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-version.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/test/arch-std-events.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/test/test_cpu/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/cache.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/floating-point.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/frontend.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/other.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/pipeline.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/x86/skylake/virtual-memory.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/jevents.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/pmu-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/Build

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/backward-ring-buffer.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/builtin-test.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/code-reading.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/event-times.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/event_update.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/evsel-tp-sched.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/expand-cgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/keep-tracking.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/llvm.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/mmap-basic.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/openat-syscall-tp-fields.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/parse-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/parse-metric.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/parse-no-sample-id-all.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/perf-record.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/perf-time-to-tsc.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/pmu-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/sample-parsing.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat+shadow_stat.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/trace+probe_vfs_getname.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/sw-clock.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/switch-tracking.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/task-exit.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/tests.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/topology.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/wp.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/include/linux/socket.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/mmap_flags.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/mmap_prot.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/browsers/hists.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/gtk/gtk.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/ui/gtk/hists.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe-decoder/arm-spe-decoder.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe-decoder/arm-spe-decoder.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/arm-spe.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/auxtrace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/auxtrace.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf-event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf-loader.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/bpf-loader.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/build-id.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/build-id.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/data.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/data.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/debug.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/debug.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/dso.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/dso.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/env.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/env.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/event.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evlist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evlist.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evsel.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evsel.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/evswitch.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/expr.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/expr.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/expr.y

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/header.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/hist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/hist.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/intel-pt.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/machine.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/map_symbol.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/mem-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/mem-events.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/mem2node.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/metricgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-regs-options.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/perf_event_attr_fprintf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/pmu.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/python.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/record.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/record.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/s390-cpumsf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/s390-sample-raw.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sample-raw.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sample-raw.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/session.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sideband_evlist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sort.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sort.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat-display.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/stat.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol-elf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/synthetic-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/unwind-libdw.c

View file

This diff is incomplete. Download the complete patch.