[GIT PULL] perf events updates for v5.9

From: Ingo Molnar
Date: Mon Aug 03 2020 - 08:37:47 EST


Please pull the latest perf/core git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-core-2020-08-03

# HEAD: d903b6d029d66e6478562d75ea18d89098f7b7e8 perf/x86/rapl: Add Hygon Fam18h RAPL support

- HW support updates:

- Add uncore support for Intel Comet Lake

- Add RAPL support for Hygon Fam18h

- Add Intel "IIO stack to PMON mapping" support on Skylake-SP CPUs,
which enumerates per device performance counters via sysfs and enables
the perf stat --iiostat functionality

- Add support for Intel "Architectural LBRs", which generalized the model
specific LBR hardware tracing feature into a model-independent, architected
performance monitoring feature. Usage is mostly seamless to tooling, as the
pre-existing LBR features are kept, but there's a couple of advantages
under the hood, such as faster context-switching, faster LBR reads,
cleaner exposure of LBR features to guest kernels, etc.

( Since architectural LBRs are supported via XSAVE, there's related
changes to the x86 FPU code as well. )

- ftrace/perf updates: Add support to add a text poke event to record changes
to kernel text (i.e. self-modifying code) in order to
support tracers like Intel PT decoding through
jump labels, kprobes and ftrace trampolines.

- Misc cleanups, smaller fixes.



Adrian Hunter (8):
perf: Add perf text poke event
perf/x86: Add support for perf text poke event for text_poke_bp_batch() callers
kprobes: Add symbols for kprobe insn pages
kprobes: Add perf ksymbol events for kprobe insn pages
perf/x86: Add perf text poke events for kprobes
ftrace: Add symbols for ftrace trampolines
ftrace: Add perf ksymbol events for ftrace trampolines
ftrace: Add perf text poke events for ftrace trampolines

Hu Haowen (1):
x86/perf: Fix a typo

Kan Liang (27):
perf/x86/intel/uncore: Add Comet Lake support
perf/x86/intel/uncore: Fix oops when counting IMC uncore events on some TGL
perf/x86/intel/uncore: Record the size of mapped area
perf/x86/intel/uncore: Validate MMIO address before accessing
x86/cpufeatures: Add Architectural LBRs feature bit
perf/x86/intel/lbr: Add a function pointer for LBR reset
perf/x86/intel/lbr: Add a function pointer for LBR read
perf/x86/intel/lbr: Add the function pointers for LBR save and restore
perf/x86/intel/lbr: Factor out a new struct for generic optimization
perf/x86/intel/lbr: Use dynamic data structure for task_ctx
x86/msr-index: Add bunch of MSRs for Arch LBR
perf/x86: Expose CPUID enumeration bits for arch LBR
perf/x86/intel/lbr: Support LBR_CTL
perf/x86/intel/lbr: Unify the stored format of LBR information
perf/x86/intel/lbr: Mark the {rd,wr}lbr_{to,from} wrappers __always_inline
perf/x86/intel/lbr: Factor out rdlbr_all() and wrlbr_all()
perf/x86/intel/lbr: Factor out intel_pmu_store_lbr
perf/x86/intel/lbr: Support Architectural LBR
perf/core: Factor out functions to allocate/free the task_ctx_data
perf/core: Use kmem_cache to allocate the PMU specific data
perf/x86/intel/lbr: Create kmem_cache for the LBR context data
perf/x86: Remove task_ctx_size
x86/fpu: Use proper mask to replace full instruction mask
x86/fpu/xstate: Support dynamic supervisor feature for LBR
x86/fpu/xstate: Add helpers for LBR dynamic supervisor feature
perf/x86/intel/lbr: Support XSAVES/XRSTORS for LBR context switch
perf/x86/intel/lbr: Support XSAVES for arch LBR read

Like Xu (4):
perf/x86/core: Refactor hw->idx checks and cleanup
perf/x86/lbr: Add interface to get LBR information
perf/x86: Add constraint to create guest LBR event without hw counter
perf/x86: Keep LBR records unchanged in host context for guest usage

Masami Hiramatsu (1):
kprobes: Remove unnecessary module_mutex locking from kprobe_optimizer()

Pu Wen (1):
perf/x86/rapl: Add Hygon Fam18h RAPL support

Randy Dunlap (1):
perf: <linux/perf_event.h>: drop a duplicated word

Roman Sudarikov (3):
perf/x86/intel/uncore: Expose an Uncore unit to PMON mapping
perf/x86/intel/uncore: Wrap the max dies calculation into an accessor
perf/x86/intel/uncore: Expose an Uncore unit to IIO PMON mapping

Wei Wang (1):
perf/x86: Fix variable types for LBR registers

Documentation/ABI/testing/sysfs-devices-mapping | 33 ++
arch/x86/events/core.c | 28 +-
arch/x86/events/intel/core.c | 127 ++--
arch/x86/events/intel/ds.c | 6 +-
arch/x86/events/intel/lbr.c | 733 ++++++++++++++++++++----
arch/x86/events/intel/uncore.c | 26 +-
arch/x86/events/intel/uncore.h | 37 ++
arch/x86/events/intel/uncore_snb.c | 80 ++-
arch/x86/events/intel/uncore_snbep.c | 208 ++++++-
arch/x86/events/perf_event.h | 125 +++-
arch/x86/events/rapl.c | 3 +-
arch/x86/events/zhaoxin/core.c | 2 +-
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/fpu/internal.h | 47 +-
arch/x86/include/asm/fpu/types.h | 27 +
arch/x86/include/asm/fpu/xstate.h | 36 ++
arch/x86/include/asm/kprobes.h | 2 +
arch/x86/include/asm/msr-index.h | 16 +
arch/x86/include/asm/perf_event.h | 82 ++-
arch/x86/kernel/alternative.c | 37 +-
arch/x86/kernel/fpu/core.c | 39 ++
arch/x86/kernel/fpu/xstate.c | 89 ++-
arch/x86/kernel/kprobes/core.c | 15 +-
arch/x86/kernel/kprobes/opt.c | 38 +-
include/linux/ftrace.h | 12 +-
include/linux/kprobes.h | 15 +
include/linux/perf_event.h | 15 +-
include/uapi/linux/perf_event.h | 26 +-
kernel/events/core.c | 115 +++-
kernel/kallsyms.c | 42 +-
kernel/kprobes.c | 60 +-
kernel/trace/ftrace.c | 101 +++-
32 files changed, 1943 insertions(+), 280 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-devices-mapping