projects/linux·commit 35c8fad4

Merge tag 'perf-tools-for-v5.16-2021-11-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux

35c8fad4 · Linus Torvalds <[email protected]> · 2021-11-14 09:25:01 -08:00

Pull more perf tools updates from Arnaldo Carvalho de Melo:
 "Hardware tracing:

   - ARM:
      * Print the size of the buffer size consistently in hexadecimal in
        ARM Coresight.
      * Add Coresight snapshot mode support.
      * Update --switch-events docs in 'perf record'.
      * Support hardware-based PID tracing.
      * Track task context switch for cpu-mode events.

   - Vendor events:
      * Add metric events JSON file for power10 platform

  perf test:

   - Get 'perf test' unit tests closer to kunit.

   - Topology tests improvements.

   - Remove bashisms from some tests.

  perf bench:

   - Fix memory leak of perf_cpu_map__new() in the futex benchmarks.

  libbpf:

   - Add some more weak libbpf functions o allow building with the
     libbpf versions, old ones, present in distros.

  libbeauty:

   - Translate [gs]setsockopt 'level' argument integer values to
     strings.

  tools headers UAPI:

   - Sync futex_waitv, arch prctl, sound, i195_drm and msr-index files
     with the kernel sources.

  Documentation:

   - Add documentation to 'struct symbol'.

   - Synchronize the definition of enum perf_hw_id with code in
     tools/perf/design.txt"

* tag 'perf-tools-for-v5.16-2021-11-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (67 commits)
  perf tests: Remove bash constructs from stat_all_pmu.sh
  perf tests: Remove bash construct from record+zstd_comp_decomp.sh
  perf test: Remove bash construct from stat_bpf_counters.sh test
  perf bench futex: Fix memory leak of perf_cpu_map__new()
  tools arch x86: Sync the msr-index.h copy with the kernel sources
  tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
  tools headers UAPI: Sync sound/asound.h with the kernel sources
  tools headers UAPI: Sync linux/prctl.h with the kernel sources
  tools headers UAPI: Sync arch prctl headers with the kernel sources
  perf tools: Add more weak libbpf functions
  perf bpf: Avoid memory leak from perf_env__insert_btf()
  perf symbols: Factor out annotation init/exit
  perf symbols: Bit pack to save a byte
  perf symbols: Add documentation to 'struct symbol'
  tools headers UAPI: Sync files changed by new futex_waitv syscall
  perf test bpf: Use ARRAY_CHECK() instead of ad-hoc equivalent, addressing array_size.cocci warning
  perf arm-spe: Support hardware-based PID tracing
  perf arm-spe: Save context ID in record
  perf arm-spe: Update --switch-events docs in 'perf record'
  perf arm-spe: Track task context switch for cpu-mode events
  ...
Commit
35c8fad4a703fdfa009ed274f80bb64b49314cde
Parents
c8c10954 · ac96f463

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

Changes

131 files changed · +2639 −1148

FileStatusAddDelContent
tools/arch/x86/include/asm/msr-index.hmodified+2−0View file
tools/arch/x86/include/uapi/asm/prctl.hmodified+4−0View file
tools/include/uapi/asm-generic/unistd.hmodified+4−1View file
tools/include/uapi/drm/i915_drm.hmodified+241−1View file
tools/include/uapi/linux/prctl.hmodified+3−0View file
tools/include/uapi/sound/asound.hmodified+1−1View file
tools/perf/Documentation/perf-record.txtmodified+1−1View file
tools/perf/Makefile.perfmodified+10−10View file
tools/perf/arch/arm/include/arch-tests.hmodified+1−1View file
tools/perf/arch/arm/tests/arch-tests.cmodified+4−12View file
tools/perf/arch/arm/tests/vectors-page.cmodified+3−2View file
tools/perf/arch/arm64/include/arch-tests.hmodified+1−1View file
tools/perf/arch/arm64/tests/arch-tests.cmodified+3−8View file
tools/perf/arch/arm64/util/arm-spe.cmodified+282−1View file
tools/perf/arch/powerpc/include/arch-tests.hmodified+1−1View file
tools/perf/arch/powerpc/tests/arch-tests.cmodified+4−8View file
tools/perf/arch/x86/entry/syscalls/syscall_64.tblmodified+1−0View file
tools/perf/arch/x86/include/arch-tests.hmodified+7−7View file
tools/perf/arch/x86/tests/arch-tests.cmodified+18−29View file
tools/perf/arch/x86/tests/bp-modify.cmodified+1−1View file
tools/perf/arch/x86/tests/insn-x86.cmodified+1−1View file
tools/perf/arch/x86/tests/intel-cqm.cmodified+1−1View file
tools/perf/arch/x86/tests/intel-pt-pkt-decoder-test.cmodified+1−1View file
tools/perf/arch/x86/tests/rdpmc.cmodified+1−1View file
tools/perf/arch/x86/tests/sample-parsing.cmodified+1−1View file
tools/perf/bench/futex-lock-pi.cmodified+1−0View file
tools/perf/bench/futex-requeue.cmodified+1−0View file
tools/perf/bench/futex-wake-parallel.cmodified+1−0View file
tools/perf/bench/futex-wake.cmodified+1−0View file
tools/perf/builtin-trace.cmodified+4−0View file
tools/perf/design.txtmodified+3−0View file
tools/perf/pmu-events/arch/powerpc/power10/metrics.jsonadded+676−0View file
tools/perf/tests/api-io.cmodified+4−2View file
tools/perf/tests/attr.cmodified+3−1View file
tools/perf/tests/backward-ring-buffer.cmodified+3−1View file
tools/perf/tests/bitmap.cmodified+3−1View file
tools/perf/tests/bp_account.cmodified+20−16View file
tools/perf/tests/bp_signal.cmodified+7−27View file
tools/perf/tests/bp_signal_overflow.cmodified+8−1View file
tools/perf/tests/bpf.cmodified+47−24View file
tools/perf/tests/builtin-test.cmodified+178−400View file
tools/perf/tests/clang.cmodified+20−34View file
tools/perf/tests/code-reading.cmodified+3−1View file
tools/perf/tests/cpumap.cmodified+7−3View file
tools/perf/tests/demangle-java-test.cmodified+3−1View file
tools/perf/tests/demangle-ocaml-test.cmodified+3−1View file
tools/perf/tests/dlfilter-test.cmodified+3−1View file
tools/perf/tests/dso-data.cmodified+7−3View file
tools/perf/tests/dwarf-unwind.cmodified+4−1View file
tools/perf/tests/event-times.cmodified+3−1View file
tools/perf/tests/event_update.cmodified+3−1View file
tools/perf/tests/evsel-roundtrip-name.cmodified+4−1View file
tools/perf/tests/evsel-tp-sched.cmodified+4−1View file
tools/perf/tests/expand-cgroup.cmodified+4−2View file
tools/perf/tests/expr.cmodified+36−2View file
tools/perf/tests/fdarray.cmodified+5−2View file
tools/perf/tests/genelf.cmodified+4−2View file
tools/perf/tests/hists_cumulate.cmodified+3−1View file
tools/perf/tests/hists_filter.cmodified+3−1View file
tools/perf/tests/hists_link.cmodified+3−1View file
tools/perf/tests/hists_output.cmodified+3−1View file
tools/perf/tests/is_printable_array.cmodified+3−1View file
tools/perf/tests/keep-tracking.cmodified+3−1View file
tools/perf/tests/kmod-path.cmodified+3−1View file
tools/perf/tests/llvm.cmodified+57−17View file
tools/perf/tests/maps.cmodified+3−1View file
tools/perf/tests/mem.cmodified+3−1View file
tools/perf/tests/mem2node.cmodified+3−1View file
tools/perf/tests/mmap-basic.cmodified+3−1View file
tools/perf/tests/mmap-thread-lookup.cmodified+3−1View file
tools/perf/tests/openat-syscall-all-cpus.cmodified+4−1View file
tools/perf/tests/openat-syscall-tp-fields.cmodified+4−1View file
tools/perf/tests/openat-syscall.cmodified+4−1View file
tools/perf/tests/parse-events.cmodified+3−1View file
tools/perf/tests/parse-metric.cmodified+3−1View file
tools/perf/tests/parse-no-sample-id-all.cmodified+4−1View file
tools/perf/tests/pe-file-parsing.cmodified+4−2View file
tools/perf/tests/perf-hooks.cmodified+3−1View file
tools/perf/tests/perf-record.cmodified+3−1View file
tools/perf/tests/perf-time-to-tsc.cmodified+17−13View file
tools/perf/tests/pfm.cmodified+22−41View file
tools/perf/tests/pmu-events.cmodified+19−54View file
tools/perf/tests/pmu.cmodified+3−1View file
tools/perf/tests/python-use.cmodified+3−1View file
tools/perf/tests/sample-parsing.cmodified+3−1View file
tools/perf/tests/sdt.cmodified+4−2View file
tools/perf/tests/shell/record+zstd_comp_decomp.shmodified+1−1View file
tools/perf/tests/shell/stat_all_pmu.shmodified+2−2View file
tools/perf/tests/shell/stat_bpf_counters.shmodified+1−1View file
tools/perf/tests/shell/test_arm_spe.shadded+89−0View file
tools/perf/tests/stat.cmodified+8−3View file
tools/perf/tests/sw-clock.cmodified+3−1View file
tools/perf/tests/switch-tracking.cmodified+3−1View file
tools/perf/tests/task-exit.cmodified+3−1View file
tools/perf/tests/tests.hmodified+136−102View file
tools/perf/tests/thread-map.cmodified+7−3View file
tools/perf/tests/thread-maps-share.cmodified+3−1View file
tools/perf/tests/time-utils-test.cmodified+3−1View file
tools/perf/tests/topology.cmodified+3−1View file
tools/perf/tests/unit_number__scnprintf.cmodified+3−1View file
tools/perf/tests/vmlinux-kallsyms.cmodified+4−1View file
tools/perf/tests/wp.cmodified+35−89View file
tools/perf/trace/beauty/beauty.hmodified+5−0View file
tools/perf/trace/beauty/sockaddr.cmodified+1−1View file
tools/perf/trace/beauty/sockaddr.shadded+24−0View file
tools/perf/trace/beauty/socket.cmodified+20−1View file
tools/perf/trace/beauty/socket.shmodified+21−17View file
tools/perf/trace/beauty/socket_ipproto.shdeleted+0−12View before deletion
tools/perf/util/annotate.cmodified+12−1View file
tools/perf/util/annotate.hmodified+3−0View file
tools/perf/util/arm-spe-decoder/arm-spe-decoder.cmodified+2−0View file
tools/perf/util/arm-spe-decoder/arm-spe-decoder.hmodified+1−0View file
tools/perf/util/arm-spe.cmodified+94−28View file
tools/perf/util/bpf-event.cmodified+32−1View file
tools/perf/util/c++/clang-c.hmodified+3−5View file
tools/perf/util/c++/clang-test.cppmodified+4−2View file
tools/perf/util/cputopo.cmodified+41−37View file
tools/perf/util/cputopo.hmodified+27−6View file
tools/perf/util/cs-etm.cmodified+1−1View file
tools/perf/util/env.cmodified+4−1View file
tools/perf/util/env.hmodified+1−1View file
tools/perf/util/evsel.cmodified+12−0View file
tools/perf/util/evsel.hmodified+1−0View file
tools/perf/util/expr.cmodified+60−5View file
tools/perf/util/expr.hmodified+4−0View file
tools/perf/util/expr.lmodified+15−1View file
tools/perf/util/expr.ymodified+42−31View file
tools/perf/util/header.cmodified+10−10View file
tools/perf/util/stat-shadow.cmodified+6−1View file
tools/perf/util/symbol.cmodified+8−1View file
tools/perf/util/symbol.hmodified+15−4View file

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

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 a7c4134..01e2650 100644
--- a/tools/arch/x86/include/asm/msr-index.h
+++ b/tools/arch/x86/include/asm/msr-index.h
@@ -625,6 +625,8 @@
#define MSR_IA32_BNDCFGS_RSVD 0x00000ffc
+#define MSR_IA32_XFD 0x000001c4
+#define MSR_IA32_XFD_ERR 0x000001c5
#define MSR_IA32_XSS 0x00000da0
#define MSR_IA32_APICBASE 0x0000001b

tools/arch/x86/include/uapi/asm/prctl.h

View file
diff --git a/tools/arch/x86/include/uapi/asm/prctl.h b/tools/arch/x86/include/uapi/asm/prctl.h
index 5a6aac9..754a078 100644
--- a/tools/arch/x86/include/uapi/asm/prctl.h
+++ b/tools/arch/x86/include/uapi/asm/prctl.h
@@ -10,6 +10,10 @@
#define ARCH_GET_CPUID 0x1011
#define ARCH_SET_CPUID 0x1012
+#define ARCH_GET_XCOMP_SUPP 0x1021
+#define ARCH_GET_XCOMP_PERM 0x1022
+#define ARCH_REQ_XCOMP_PERM 0x1023
+
#define ARCH_MAP_VDSO_X32 0x2001
#define ARCH_MAP_VDSO_32 0x2002
#define ARCH_MAP_VDSO_64 0x2003

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 1c5fb86..4557a8b 100644
--- a/tools/include/uapi/asm-generic/unistd.h
+++ b/tools/include/uapi/asm-generic/unistd.h
@@ -880,8 +880,11 @@ __SYSCALL(__NR_memfd_secret, sys_memfd_secret)
#define __NR_process_mrelease 448
__SYSCALL(__NR_process_mrelease, sys_process_mrelease)
+#define __NR_futex_waitv 449
+__SYSCALL(__NR_futex_waitv, sys_futex_waitv)
+
#undef __NR_syscalls
-#define __NR_syscalls 449
+#define __NR_syscalls 450
/*
* 32 bit systems traditionally used different

tools/include/uapi/drm/i915_drm.h

View file
diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h
index bde5860..914ebd9 100644
--- a/tools/include/uapi/drm/i915_drm.h
+++ b/tools/include/uapi/drm/i915_drm.h
@@ -1522,6 +1522,12 @@ struct drm_i915_gem_caching {
#define I915_TILING_NONE 0
#define I915_TILING_X 1
#define I915_TILING_Y 2
+/*
+ * Do not add new tiling types here. The I915_TILING_* values are for
+ * de-tiling fence registers that no longer exist on modern platforms. Although
+ * the hardware may support new types of tiling in general (e.g., Tile4), we
+ * do not need to add them to the uapi that is specific to now-defunct ioctls.
+ */
#define I915_TILING_LAST I915_TILING_Y
#define I915_BIT_6_SWIZZLE_NONE 0
@@ -1824,6 +1830,7 @@ struct drm_i915_gem_context_param {
* Extensions:
* i915_context_engines_load_balance (I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE)
* i915_context_engines_bond (I915_CONTEXT_ENGINES_EXT_BOND)
+ * i915_context_engines_parallel_submit (I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT)
*/
#define I915_CONTEXT_PARAM_ENGINES 0xa
@@ -1846,6 +1853,55 @@ struct drm_i915_gem_context_param {
* attempted to use it, never re-use this context param number.
*/
#define I915_CONTEXT_PARAM_RINGSIZE 0xc
+
+/*
+ * I915_CONTEXT_PARAM_PROTECTED_CONTENT:
+ *
+ * Mark that the context makes use of protected content, which will result
+ * in the context being invalidated when the protected content session is.
+ * Given that the protected content session is killed on suspend, the device
+ * is kept awake for the lifetime of a protected context, so the user should
+ * make sure to dispose of them once done.
+ * This flag can only be set at context creation time and, when set to true,
+ * must be preceded by an explicit setting of I915_CONTEXT_PARAM_RECOVERABLE
+ * to false. This flag can't be set to true in conjunction with setting the
+ * I915_CONTEXT_PARAM_BANNABLE flag to false. Creation example:
+ *
+ * .. code-block:: C
+ *
+ * struct drm_i915_gem_context_create_ext_setparam p_protected = {
+ * .base = {
+ * .name = I915_CONTEXT_CREATE_EXT_SETPARAM,
+ * },
+ * .param = {
+ * .param = I915_CONTEXT_PARAM_PROTECTED_CONTENT,
+ * .value = 1,
+ * }
+ * };
+ * struct drm_i915_gem_context_create_ext_setparam p_norecover = {
+ * .base = {
+ * .name = I915_CONTEXT_CREATE_EXT_SETPARAM,
+ * .next_extension = to_user_pointer(&p_protected),
+ * },
+ * .param = {
+ * .param = I915_CONTEXT_PARAM_RECOVERABLE,
+ * .value = 0,
+ * }
+ * };
+ * struct drm_i915_gem_context_create_ext create = {
+ * .flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
+ * .extensions = to_user_pointer(&p_norecover);
+ * };
+ *
+ * ctx_id = gem_context_create_ext(drm_fd, &create);
+ *
+ * In addition to the normal failure cases, setting this flag during context
+ * creation can result in the following errors:
+ *
+ * -ENODEV: feature not available
+ * -EPERM: trying to mark a recoverable or not bannable context as protected
+ */
+#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
/* Must be kept compact -- no holes and well documented */
__u64 value;
@@ -2050,6 +2106,135 @@ struct i915_context_engines_bond {
} __attribute__((packed)) name__
/**
+ * struct i915_context_engines_parallel_submit - Configure engine for
+ * parallel submission.
+ *
+ * Setup a slot in the context engine map to allow multiple BBs to be submitted
+ * in a single execbuf IOCTL. Those BBs will then be scheduled to run on the GPU
+ * in parallel. Multiple hardware contexts are created internally in the i915 to
+ * run these BBs. Once a slot is configured for N BBs only N BBs can be
+ * submitted in each execbuf IOCTL and this is implicit behavior e.g. The user
+ * doesn't tell the execbuf IOCTL there are N BBs, the execbuf IOCTL knows how
+ * many BBs there are based on the slot's configuration. The N BBs are the last
+ * N buffer objects or first N if I915_EXEC_BATCH_FIRST is set.
+ *
+ * The default placement behavior is to create implicit bonds between each
+ * context if each context maps to more than 1 physical engine (e.g. context is
+ * a virtual engine). Also we only allow contexts of same engine class and these
+ * contexts must be in logically contiguous order. Examples of the placement
+ * behavior are described below. Lastly, the default is to not allow BBs to be
+ * preempted mid-batch. Rather insert coordinated preemption points on all
+ * hardware contexts between each set of BBs. Flags could be added in the future
+ * to change both of these default behaviors.
+ *
+ * Returns -EINVAL if hardware context placement configuration is invalid or if
+ * the placement configuration isn't supported on the platform / submission
+ * interface.
+ * Returns -ENODEV if extension isn't supported on the platform / submission
+ * interface.
+ *
+ * .. code-block:: none
+ *
+ * Examples syntax:
+ * CS[X] = generic engine of same class, logical instance X
+ * INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE
+ *
+ * Example 1 pseudo code:
+ * set_engines(INVALID)
+ * set_parallel(engine_index=0, width=2, num_siblings=1,
+ * engines=CS[0],CS[1])
+ *
+ * Results in the following valid placement:
+ * CS[0], CS[1]
+ *
+ * Example 2 pseudo code:
+ * set_engines(INVALID)
+ * set_parallel(engine_index=0, width=2, num_siblings=2,
+ * engines=CS[0],CS[2],CS[1],CS[3])
+ *
+ * Results in the following valid placements:
+ * CS[0], CS[1]
+ * CS[2], CS[3]
+ *
+ * This can be thought of as two virtual engines, each containing two
+ * engines thereby making a 2D array. However, there are bonds tying the
+ * entries together and placing restrictions on how they can be scheduled.
+ * Specifically, the scheduler can choose only vertical columns from the 2D
+ * array. That is, CS[0] is bonded to CS[1] and CS[2] to CS[3]. So if the
+ * scheduler wants to submit to CS[0], it must also choose CS[1] and vice
+ * versa. Same for CS[2] requires also using CS[3].
+ * VE[0] = CS[0], CS[2]
+ * VE[1] = CS[1], CS[3]
+ *
+ * Example 3 pseudo code:
+ * set_engines(INVALID)
+ * set_parallel(engine_index=0, width=2, num_siblings=2,
+ * engines=CS[0],CS[1],CS[1],CS[3])
+ *
+ * Results in the following valid and invalid placements:
+ * CS[0], CS[1]
+ * CS[1], CS[3] - Not logically contiguous, return -EINVAL
+ */
+struct i915_context_engines_parallel_submit {
+ /**
+ * @base: base user extension.
+ */
+ struct i915_user_extension base;
+
+ /**
+ * @engine_index: slot for parallel engine
+ */
+ __u16 engine_index;
+
+ /**
+ * @width: number of contexts per parallel engine or in other words the
+ * number of batches in each submission
+ */
+ __u16 width;
+
+ /**
+ * @num_siblings: number of siblings per context or in other words the
+ * number of possible placements for each submission
+ */
+ __u16 num_siblings;
+
+ /**
+ * @mbz16: reserved for future use; must be zero
+ */
+ __u16 mbz16;
+
+ /**
+ * @flags: all undefined flags must be zero, currently not defined flags
+ */
+ __u64 flags;
+
+ /**
+ * @mbz64: reserved for future use; must be zero
+ */
+ __u64 mbz64[3];
+
+ /**
+ * @engines: 2-d array of engine instances to configure parallel engine
+ *
+ * length = width (i) * num_siblings (j)
+ * index = j + i * num_siblings
+ */
+ struct i915_engine_class_instance engines[0];
+
+} __packed;
+
+#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__, N__) struct { \
+ struct i915_user_extension base; \
+ __u16 engine_index; \
+ __u16 width; \
+ __u16 num_siblings; \
+ __u16 mbz16; \
+ __u64 flags; \
+ __u64 mbz64[3]; \
+ struct i915_engine_class_instance engines[N__]; \
+} __attribute__((packed)) name__
+
+/**
* DOC: Context Engine Map uAPI
*
* Context engine map is a new way of addressing engines when submitting batch-
@@ -2108,6 +2293,7 @@ struct i915_context_param_engines {
__u64 extensions; /* linked chain of extension blocks, 0 terminates */
#define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0 /* see i915_context_engines_load_balance */
#define I915_CONTEXT_ENGINES_EXT_BOND 1 /* see i915_context_engines_bond */
+#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2 /* see i915_context_engines_parallel_submit */
struct i915_engine_class_instance engines[0];
} __attribute__((packed));
@@ -2726,14 +2912,20 @@ struct drm_i915_engine_info {
/** @flags: Engine flags. */
__u64 flags;
+#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0)
/** @capabilities: Capabilities of this engine. */
__u64 capabilities;
#define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0)
#define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1)
+ /** @logical_instance: Logical instance of engine */
+ __u16 logical_instance;
+
/** @rsvd1: Reserved fields. */
- __u64 rsvd1[4];
+ __u16 rsvd1[3];
+ /** @rsvd2: Reserved fields. */
+ __u64 rsvd2[3];
};
/**
@@ -2979,8 +3171,12 @@ struct drm_i915_gem_create_ext {
*
* For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see
* struct drm_i915_gem_create_ext_memory_regions.
+ *
+ * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see
+ * struct drm_i915_gem_create_ext_protected_content.
*/
#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
+#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
__u64 extensions;
};
@@ -3038,6 +3234,50 @@ struct drm_i915_gem_create_ext_memory_regions {
__u64 regions;
};
+/**
+ * struct drm_i915_gem_create_ext_protected_content - The
+ * I915_OBJECT_PARAM_PROTECTED_CONTENT extension.
+ *
+ * If this extension is provided, buffer contents are expected to be protected
+ * by PXP encryption and require decryption for scan out and processing. This
+ * is only possible on platforms that have PXP enabled, on all other scenarios
+ * using this extension will cause the ioctl to fail and return -ENODEV. The
+ * flags parameter is reserved for future expansion and must currently be set
+ * to zero.
+ *
+ * The buffer contents are considered invalid after a PXP session teardown.
+ *
+ * The encryption is guaranteed to be processed correctly only if the object
+ * is submitted with a context created using the
+ * I915_CONTEXT_PARAM_PROTECTED_CONTENT flag. This will also enable extra checks
+ * at submission time on the validity of the objects involved.
+ *
+ * Below is an example on how to create a protected object:
+ *
+ * .. code-block:: C
+ *
+ * struct drm_i915_gem_create_ext_protected_content protected_ext = {
+ * .base = { .name = I915_GEM_CREATE_EXT_PROTECTED_CONTENT },
+ * .flags = 0,
+ * };
+ * struct drm_i915_gem_create_ext create_ext = {
+ * .size = PAGE_SIZE,
+ * .extensions = (uintptr_t)&protected_ext,
+ * };
+ *
+ * int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext);
+ * if (err) ...
+ */
+struct drm_i915_gem_create_ext_protected_content {
+ /** @base: Extension link. See struct i915_user_extension. */
+ struct i915_user_extension base;
+ /** @flags: reserved for future usage, currently MBZ */
+ __u32 flags;
+};
+
+/* ID of the protected content session managed by i915 when PXP is active */
+#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
+
#if defined(__cplusplus)
}
#endif

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 de45fcd..bb73e9a 100644
--- a/tools/include/uapi/linux/prctl.h
+++ b/tools/include/uapi/linux/prctl.h
@@ -268,5 +268,8 @@ struct prctl_mm_map {
# define PR_SCHED_CORE_SHARE_TO 2 /* push core_sched cookie to pid */
# define PR_SCHED_CORE_SHARE_FROM 3 /* pull core_sched cookie to pid */
# define PR_SCHED_CORE_MAX 4
+# define PR_SCHED_CORE_SCOPE_THREAD 0
+# define PR_SCHED_CORE_SCOPE_THREAD_GROUP 1
+# define PR_SCHED_CORE_SCOPE_PROCESS_GROUP 2
#endif /* _LINUX_PRCTL_H */

tools/include/uapi/sound/asound.h

View file
diff --git a/tools/include/uapi/sound/asound.h b/tools/include/uapi/sound/asound.h
index 5859ca0..5fbb79e 100644
--- a/tools/include/uapi/sound/asound.h
+++ b/tools/include/uapi/sound/asound.h
@@ -1002,7 +1002,7 @@ typedef int __bitwise snd_ctl_elem_iface_t;
#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)
#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */
-// (1 << 3) is unused.
+/* (1 << 3) is unused. */
#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */
#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */
#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)

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 2d7df87..3cf7bac 100644
--- a/tools/perf/Documentation/perf-record.txt
+++ b/tools/perf/Documentation/perf-record.txt
@@ -469,7 +469,7 @@ This option sets the time out limit. The default value is 500 ms.
--switch-events::
Record context switch events i.e. events of type PERF_RECORD_SWITCH or
-PERF_RECORD_SWITCH_CPU_WIDE. In some cases (e.g. Intel PT or CoreSight)
+PERF_RECORD_SWITCH_CPU_WIDE. In some cases (e.g. Intel PT, CoreSight or Arm SPE)
switch events will be enabled automatically, which can be suppressed by
by the option --no-switch-events.

tools/perf/Makefile.perf

View file
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 0777748..80522bc 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -516,17 +516,17 @@ kvm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/kvm_ioctl.sh
$(kvm_ioctl_array): $(kvm_hdr_dir)/kvm.h $(kvm_ioctl_tbl)
$(Q)$(SHELL) '$(kvm_ioctl_tbl)' $(kvm_hdr_dir) > $@
-socket_ipproto_array := $(beauty_outdir)/socket_ipproto_array.c
-socket_ipproto_tbl := $(srctree)/tools/perf/trace/beauty/socket_ipproto.sh
+socket_arrays := $(beauty_outdir)/socket.c
+socket_tbl := $(srctree)/tools/perf/trace/beauty/socket.sh
-$(socket_ipproto_array): $(linux_uapi_dir)/in.h $(socket_ipproto_tbl)
- $(Q)$(SHELL) '$(socket_ipproto_tbl)' $(linux_uapi_dir) > $@
+$(socket_arrays): $(linux_uapi_dir)/in.h $(beauty_linux_dir)/socket.h $(socket_tbl)
+ $(Q)$(SHELL) '$(socket_tbl)' $(linux_uapi_dir) $(beauty_linux_dir) > $@
-socket_arrays := $(beauty_outdir)/socket_arrays.c
-socket_tbl := $(srctree)/tools/perf/trace/beauty/socket.sh
+sockaddr_arrays := $(beauty_outdir)/sockaddr.c
+sockaddr_tbl := $(srctree)/tools/perf/trace/beauty/sockaddr.sh
-$(socket_arrays): $(beauty_linux_dir)/socket.h $(socket_tbl)
- $(Q)$(SHELL) '$(socket_tbl)' $(beauty_linux_dir) > $@
+$(sockaddr_arrays): $(beauty_linux_dir)/socket.h $(sockaddr_tbl)
+ $(Q)$(SHELL) '$(sockaddr_tbl)' $(beauty_linux_dir) > $@
vhost_virtio_ioctl_array := $(beauty_ioctl_outdir)/vhost_virtio_ioctl_array.c
vhost_virtio_hdr_dir := $(srctree)/tools/include/uapi/linux
@@ -736,8 +736,8 @@ prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders $(drm_ioc
$(sndrv_ctl_ioctl_array) \
$(kcmp_type_array) \
$(kvm_ioctl_array) \
- $(socket_ipproto_array) \
$(socket_arrays) \
+ $(sockaddr_arrays) \
$(vhost_virtio_ioctl_array) \
$(madvise_behavior_array) \
$(mmap_flags_array) \
@@ -1113,8 +1113,8 @@ clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clea
$(OUTPUT)$(sndrv_pcm_ioctl_array) \
$(OUTPUT)$(kvm_ioctl_array) \
$(OUTPUT)$(kcmp_type_array) \
- $(OUTPUT)$(socket_ipproto_array) \
$(OUTPUT)$(socket_arrays) \
+ $(OUTPUT)$(sockaddr_arrays) \
$(OUTPUT)$(vhost_virtio_ioctl_array) \
$(OUTPUT)$(perf_ioctl_array) \
$(OUTPUT)$(prctl_option_array) \

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

View file
diff --git a/tools/perf/arch/arm/include/arch-tests.h b/tools/perf/arch/arm/include/arch-tests.h
index c625380..452b3d9 100644
--- a/tools/perf/arch/arm/include/arch-tests.h
+++ b/tools/perf/arch/arm/include/arch-tests.h
@@ -2,6 +2,6 @@
#ifndef ARCH_TESTS_H
#define ARCH_TESTS_H
-extern struct test arch_tests[];
+extern struct test_suite *arch_tests[];
#endif

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

View file
diff --git a/tools/perf/arch/arm/tests/arch-tests.c b/tools/perf/arch/arm/tests/arch-tests.c
index 6848101..6956111 100644
--- a/tools/perf/arch/arm/tests/arch-tests.c
+++ b/tools/perf/arch/arm/tests/arch-tests.c
@@ -3,18 +3,10 @@
#include "tests/tests.h"
#include "arch-tests.h"
-struct test arch_tests[] = {
+struct test_suite *arch_tests[] = {
#ifdef HAVE_DWARF_UNWIND_SUPPORT
- {
- .desc = "DWARF unwind",
- .func = test__dwarf_unwind,
- },
+ &suite__dwarf_unwind,
#endif
- {
- .desc = "Vectors page",
- .func = test__vectors_page,
- },
- {
- .func = NULL,
- },
+ &suite__vectors_page,
+ NULL,
};

tools/perf/arch/arm/tests/vectors-page.c

View file
diff --git a/tools/perf/arch/arm/tests/vectors-page.c b/tools/perf/arch/arm/tests/vectors-page.c
index 7ffdd79..55a8358 100644
--- a/tools/perf/arch/arm/tests/vectors-page.c
+++ b/tools/perf/arch/arm/tests/vectors-page.c
@@ -9,8 +9,7 @@
#define VECTORS__MAP_NAME "[vectors]"
-int test__vectors_page(struct test *test __maybe_unused,
- int subtest __maybe_unused)
+static int test__vectors_page(struct test_suite *test __maybe_unused, int subtest __maybe_unused)
{
void *start, *end;
@@ -22,3 +21,5 @@ int test__vectors_page(struct test *test __maybe_unused,
return TEST_OK;
}
+
+DEFINE_SUITE("Vectors page", vectors_page);

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

View file
diff --git a/tools/perf/arch/arm64/include/arch-tests.h b/tools/perf/arch/arm64/include/arch-tests.h
index c625380..452b3d9 100644
--- a/tools/perf/arch/arm64/include/arch-tests.h
+++ b/tools/perf/arch/arm64/include/arch-tests.h
@@ -2,6 +2,6 @@
#ifndef ARCH_TESTS_H
#define ARCH_TESTS_H
-extern struct test arch_tests[];
+extern struct test_suite *arch_tests[];
#endif

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

View file
diff --git a/tools/perf/arch/arm64/tests/arch-tests.c b/tools/perf/arch/arm64/tests/arch-tests.c
index 5b1543c..ad16b4f 100644
--- a/tools/perf/arch/arm64/tests/arch-tests.c
+++ b/tools/perf/arch/arm64/tests/arch-tests.c
@@ -3,14 +3,9 @@
#include "tests/tests.h"
#include "arch-tests.h"
-struct test arch_tests[] = {
+struct test_suite *arch_tests[] = {
#ifdef HAVE_DWARF_UNWIND_SUPPORT
- {
- .desc = "DWARF unwind",
- .func = test__dwarf_unwind,
- },
+ &suite__dwarf_unwind,
#endif
- {
- .func = NULL,
- },
+ NULL,
};

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

View file
diff --git a/tools/perf/arch/arm64/util/arm-spe.c b/tools/perf/arch/arm64/util/arm-spe.c
index a4420d4..2100d46 100644
--- a/tools/perf/arch/arm64/util/arm-spe.c
+++ b/tools/perf/arch/arm64/util/arm-spe.c
@@ -23,6 +23,7 @@
#include "../../../util/auxtrace.h"
#include "../../../util/record.h"
#include "../../../util/arm-spe.h"
+#include <tools/libc_compat.h> // reallocarray
#define KiB(x) ((x) * 1024)
#define MiB(x) ((x) * 1024 * 1024)
@@ -31,6 +32,8 @@ struct arm_spe_recording {
struct auxtrace_record itr;
struct perf_pmu *arm_spe_pmu;
struct evlist *evlist;
+ int wrapped_cnt;
+ bool *wrapped;
};
static void arm_spe_set_timestamp(struct auxtrace_record *itr,
@@ -84,6 +87,55 @@ static int arm_spe_info_fill(struct auxtrace_record *itr,
return 0;
}
+static void
+arm_spe_snapshot_resolve_auxtrace_defaults(struct record_opts *opts,
+ bool privileged)
+{
+ /*
+ * The default snapshot size is the auxtrace mmap size. If neither auxtrace mmap size nor
+ * snapshot size is specified, then the default is 4MiB for privileged users, 128KiB for
+ * unprivileged users.
+ *
+ * The default auxtrace mmap size is 4MiB/page_size for privileged users, 128KiB for
+ * unprivileged users. If an unprivileged user does not specify mmap pages, the mmap pages
+ * will be reduced from the default 512KiB/page_size to 256KiB/page_size, otherwise the
+ * user is likely to get an error as they exceed their mlock limmit.
+ */
+
+ /*
+ * No size were given to '-S' or '-m,', so go with the default
+ */
+ if (!opts->auxtrace_snapshot_size && !opts->auxtrace_mmap_pages) {
+ if (privileged) {
+ opts->auxtrace_mmap_pages = MiB(4) / page_size;
+ } else {
+ opts->auxtrace_mmap_pages = KiB(128) / page_size;
+ if (opts->mmap_pages == UINT_MAX)
+ opts->mmap_pages = KiB(256) / page_size;
+ }
+ } else if (!opts->auxtrace_mmap_pages && !privileged && opts->mmap_pages == UINT_MAX) {
+ opts->mmap_pages = KiB(256) / page_size;
+ }
+
+ /*
+ * '-m,xyz' was specified but no snapshot size, so make the snapshot size as big as the
+ * auxtrace mmap area.
+ */
+ if (!opts->auxtrace_snapshot_size)
+ opts->auxtrace_snapshot_size = opts->auxtrace_mmap_pages * (size_t)page_size;
+

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/entry/syscalls/syscall_64.tbl

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/arch-tests.c

View file

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/x86/tests/insn-x86.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/tests/intel-pt-pkt-decoder-test.c

View file

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

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

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-lock-pi.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-requeue.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-wake-parallel.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/bench/futex-wake.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/design.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/pmu-events/arch/powerpc/power10/metrics.json

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/api-io.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/attr.c

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/bitmap.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/bp_account.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/bp_signal.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/bp_signal_overflow.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/clang.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/cpumap.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/demangle-java-test.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/demangle-ocaml-test.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/dlfilter-test.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/dso-data.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/dwarf-unwind.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-roundtrip-name.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/expr.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/fdarray.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/genelf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_cumulate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_filter.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_link.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/hists_output.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/is_printable_array.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/kmod-path.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/maps.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/mem.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/mem2node.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/mmap-thread-lookup.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/openat-syscall-all-cpus.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/openat-syscall.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/pe-file-parsing.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/perf-hooks.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/pfm.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/pmu.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/python-use.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/sdt.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/record+zstd_comp_decomp.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat_all_pmu.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/stat_bpf_counters.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/shell/test_arm_spe.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/stat.c

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/thread-map.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/thread-maps-share.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/time-utils-test.c

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/unit_number__scnprintf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/tests/vmlinux-kallsyms.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/beauty.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/sockaddr.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/sockaddr.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/socket.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/socket.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/trace/beauty/socket_ipproto.sh

View before deletion

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/annotate.h

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.c

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/c++/clang-c.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/c++/clang-test.cpp

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cputopo.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cputopo.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cs-etm.c

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/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/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.l

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/stat-shadow.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/symbol.h

View file

This diff is incomplete. Download the complete patch.