[GIT PULL] perf changes for v5.7

From: Ingo Molnar
Date: Mon Mar 30 2020 - 13:03:00 EST


Linus,

Please pull the latest perf-core-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-core-for-linus

# HEAD: 629b3df7ecb01fddfdf71cb5d3c563d143117c33 Merge branch 'x86/cpu' into perf/core, to resolve conflict

The main changes in this cycle were:

Kernel side changes:

- A couple of x86/cpu cleanups and changes were grandfathered in due to
patch dependencies. These clean up the set of CPU model/family
matching macros with a consistent namespace and C99 initializer style.

- A bunch of updates to various low level PMU drivers:
- AMD Family 19h L3 uncore PMU
- Intel Tiger Lake uncore support
- misc fixes to LBR TOS sampling

- optprobe fixes

- perf/cgroup: optimize cgroup event sched-in processing

- misc cleanups and fixes

Tooling side changes are to:

- perf annotate,
- perf expr,
- perf record,
- perf report,
- perf stat,
- perf test,
- perl scripting,
- libapi, libperf and libtraceevent,
- vendor events on Intel and S390, ARM cs-etm
- Intel PT updates
- Documentation changes and updates to core facilities
- misc cleanups, fixes and other enhancements.

Thanks,

Ingo

------------------>
Adrian Hunter (3):
perf intel-pt: Rename intel-pt.txt and put it in man page format
perf intel-pt: Add Intel PT man page references
perf intel-pt: Update intel-pt.txt file with new location of the documentation

Alexey Budankov (1):
perf record: Fix binding of AIO user space buffers to nodes

Arnaldo Carvalho de Melo (3):
perf llvm: Add debug hint message about missing kernel-devel package
tools headers UAPI: Update tools's copy of linux/perf_event.h
perf map: Use strstarts() to look for Android libraries

Borislav Petkov (1):
x86/amd_nb, char/amd64-agp: Use amd_nb_num() accessor

Dan Carpenter (1):
perf/core: Fix reversed NULL check in perf_event_groups_less()

Ian Rogers (8):
lib: Introduce generic min-heap
perf/core: Use min_heap in visit_groups_merge()
perf/core: Add per perf_cpu_context min_heap storage
perf/cgroup: Grow per perf_cpu_context heap storage
perf/cgroup: Order events in RB tree by cgroup id
perf doc: Set man page date to last git commit
perf test: Print if shell directory isn't present
perf tools: Give synthetic mmap events an inode generation

Jin Yao (6):
perf stat: Show percore counts in per CPU output
perf block-info: Fix wrong block address comparison in block_info__cmp()
perf diff: Use __block_info__cmp() to replace block_pair_cmp()
perf block-info: Allow selecting which columns to report and its order
perf block-info: Support color ops to print block percents in color
perf report: Fix no branch type statistics report issue

Jiri Olsa (6):
perf expr: Add expr.c object
perf expr: Move expr lexer to flex
perf expr: Increase EXPR_MAX_OTHER to support metrics with more than 15 variables
perf expr: Straighten expr__parse()/expr__find_other() interface
perf expr: Make expr__parse() return -1 on error
perf expr: Fix copy/paste mistake

Kan Liang (14):
perf/x86/intel: Avoid unnecessary PEBS_ENABLE MSR access in PMI
perf/core: Add new branch sample type for HW index of raw branch records
perf/x86/intel: Output LBR TOS information correctly
perf/x86: Add Intel Tiger Lake uncore support
perf tools: Add hw_idx in struct branch_stack
perf evsel: Support PERF_SAMPLE_BRANCH_HW_INDEX
perf header: Add check for unexpected use of reserved membrs in event attr
perf jevents: Support metric constraint
perf metricgroup: Factor out metricgroup__add_metric_weak_group()
perf util: Factor out sysctl__nmi_watchdog_enabled()
perf metricgroup: Support metric constraint
perf vendor events intel: Add NO_NMI_WATCHDOG metric constraint
perf/x86/intel/uncore: Add box_offsets for free-running counters
perf/x86/intel/uncore: Factor out __snr_uncore_mmio_init_box

Kim Phillips (4):
x86/cpu/amd: Call init_amd_zn() om Family 19h processors too
perf/amd/uncore: Prepare L3 thread mask code for Family 19h
perf/amd/uncore: Make L3 thread mask code more readable
perf/amd/uncore: Add support for Family 19h L3 PMU

Leo Yan (5):
perf cs-etm: Swap packets for instruction samples
perf cs-etm: Continuously record last branch
perf cs-etm: Correct synthesizing instruction samples
perf cs-etm: Optimize copying last branches
perf cs-etm: Fix unsigned variable comparison to zero

Michael Petlan (2):
libperf: Add counting example
perf scripting perl: Add common_callchain to fix argument order

Namhyung Kim (1):
tools lib api fs: Move cgroupsfs_find_mountpoint()

Nick Desaulniers (1):
perf diff: Fix undefined string comparison spotted by clang's -Wstring-compare

Peter Zijlstra (5):
perf/core: Unify {pinned,flexible}_sched_in()
perf/core: Remove 'struct sched_in_data'
perf/cgroup: Reorder perf_cgroup_connect()
x86/optprobe: Fix OPTPROBE vs UACCESS
perf/core: Fix endless multiplex timer

Ravi Bangoria (1):
perf annotate: Get rid of annotation->nr_jumps

Steven Rostedt (VMware) (1):
tools lib traceevent: Remove extra '\n' in print_event_time()

Thomas Gleixner (23):
x86/devicetable: Move x86 specific macro out of generic code
x86/cpu: Add consistent CPU match macros
x86/cpu/bugs: Convert to new matching macros
x86/perf/events: Convert to new CPU match macros
x86/kvm: Convert to new CPU match macros
x86/kernel: Convert to new CPU match macros
x86/platform: Convert to new CPU match macros
ACPI: Convert to new X86 CPU match macros
cpufreq: Convert to new X86 CPU match macros
EDAC: Convert to new X86 CPU match macros
platform/x86: Convert to new CPU match macros
hwmon: Convert to new X86 CPU match macros
thermal: Convert to new X86 CPU match macros
extcon: axp288: Convert to new X86 CPU match macros
intel_idle: Convert to new X86 CPU match macros
mmc: sdhci-acpi: Convert to new X86 CPU match macros
PCI: intel-mid: Convert to new X86 CPU match macros
powercap/intel_rapl: Convert to new X86 CPU match macros
ASoC: Intel: Convert to new X86 CPU match macros
crypto: Convert to new CPU match macros
hwrng: via_rng: Convert to new X86 CPU match macros
x86/cpu: Cleanup the now unused CPU match macros
cpufreq/intel_pstate: Fix wrong macro conversion

Thomas Richter (1):
perf vendor events s390: Add new deflate counters for IBM z15

Tony W Wang-oc (1):
x86/Kconfig: Drop vendor dependency for X86_UMIP

disconnect3d (1):
perf map: Fix off by one in strncpy() size argument


arch/powerpc/perf/core-book3s.c | 1 +
arch/x86/Kconfig | 1 -
arch/x86/crypto/aesni-intel_glue.c | 2 +-
arch/x86/crypto/crc32-pclmul_glue.c | 2 +-
arch/x86/crypto/crc32c-intel_glue.c | 2 +-
arch/x86/crypto/crct10dif-pclmul_glue.c | 2 +-
arch/x86/crypto/ghash-clmulni-intel_glue.c | 2 +-
arch/x86/events/amd/power.c | 2 +-
arch/x86/events/amd/uncore.c | 44 +-
arch/x86/events/intel/core.c | 25 +-
arch/x86/events/intel/cstate.c | 83 +-
arch/x86/events/intel/lbr.c | 9 +
arch/x86/events/intel/rapl.c | 58 +-
arch/x86/events/intel/uncore.c | 75 +-
arch/x86/events/intel/uncore.h | 7 +-
arch/x86/events/intel/uncore_snb.c | 159 ++++
arch/x86/events/intel/uncore_snbep.c | 12 +-
arch/x86/include/asm/amd_nb.h | 1 -
arch/x86/include/asm/cpu_device_id.h | 132 ++-
arch/x86/include/asm/cpufeatures.h | 2 +-
arch/x86/include/asm/intel-family.h | 17 +-
arch/x86/include/asm/kprobes.h | 1 +
arch/x86/include/asm/perf_event.h | 15 +-
arch/x86/kernel/amd_nb.c | 4 +-
arch/x86/kernel/apic/apic.c | 32 +-
arch/x86/kernel/cpu/amd.c | 3 +-
arch/x86/kernel/cpu/common.c | 4 +-
arch/x86/kernel/cpu/match.c | 13 +-
arch/x86/kernel/kprobes/opt.c | 25 +
arch/x86/kernel/smpboot.c | 2 +-
arch/x86/kernel/tsc_msr.c | 14 +-
arch/x86/kvm/svm.c | 3 +-
arch/x86/kvm/vmx/vmx.c | 3 +-
arch/x86/platform/atom/punit_atom_debug.c | 13 +-
arch/x86/platform/efi/quirks.c | 7 +-
.../platform/intel-mid/device_libs/platform_bt.c | 5 +-
arch/x86/platform/intel-quark/imr.c | 2 +-
arch/x86/platform/intel-quark/imr_selftest.c | 2 +-
arch/x86/power/cpu.c | 16 +-
drivers/acpi/acpi_lpss.c | 6 +-
drivers/acpi/x86/utils.c | 20 +-
drivers/char/agp/amd64-agp.c | 2 +-
drivers/char/hw_random/via-rng.c | 7 +-
drivers/cpufreq/acpi-cpufreq.c | 5 +-
drivers/cpufreq/amd_freq_sensitivity.c | 3 +-
drivers/cpufreq/e_powersaver.c | 2 +-
drivers/cpufreq/elanfreq.c | 2 +-
drivers/cpufreq/intel_pstate.c | 71 +-
drivers/cpufreq/longhaul.c | 2 +-
drivers/cpufreq/longrun.c | 3 +-
drivers/cpufreq/p4-clockmod.c | 2 +-
drivers/cpufreq/powernow-k6.c | 4 +-
drivers/cpufreq/powernow-k7.c | 2 +-
drivers/cpufreq/powernow-k8.c | 2 +-
drivers/cpufreq/sc520_freq.c | 2 +-
drivers/cpufreq/speedstep-centrino.c | 14 +-
drivers/cpufreq/speedstep-ich.c | 10 +-
drivers/cpufreq/speedstep-smi.c | 10 +-
drivers/crypto/padlock-aes.c | 2 +-
drivers/crypto/padlock-sha.c | 2 +-
drivers/edac/amd64_edac.c | 14 +-
drivers/edac/i10nm_base.c | 8 +-
drivers/edac/pnd2_edac.c | 4 +-
drivers/edac/sb_edac.c | 14 +-
drivers/edac/skx_base.c | 2 +-
drivers/extcon/extcon-axp288.c | 2 +-
drivers/hwmon/coretemp.c | 2 +-
drivers/hwmon/via-cputemp.c | 8 +-
drivers/idle/intel_idle.c | 79 +-
drivers/mmc/host/sdhci-acpi.c | 4 +-
drivers/pci/pci-mid.c | 6 +-
drivers/platform/x86/intel-uncore-frequency.c | 14 +-
drivers/platform/x86/intel_int0002_vgpio.c | 4 +-
drivers/platform/x86/intel_mid_powerbtn.c | 4 +-
drivers/platform/x86/intel_pmc_core.c | 24 +-
drivers/platform/x86/intel_pmc_core_pltdrv.c | 16 +-
.../x86/intel_speed_select_if/isst_if_mbox_msr.c | 4 +-
drivers/platform/x86/intel_telemetry_debugfs.c | 5 +-
drivers/platform/x86/intel_telemetry_pltdrv.c | 7 +-
drivers/platform/x86/intel_turbo_max_3.c | 6 +-
drivers/powercap/intel_rapl_common.c | 87 +-
drivers/thermal/intel/intel_powerclamp.c | 2 +-
drivers/thermal/intel/intel_quark_dts_thermal.c | 5 +-
drivers/thermal/intel/intel_soc_dts_thermal.c | 3 +-
drivers/thermal/intel/x86_pkg_temp_thermal.c | 2 +-
include/linux/min_heap.h | 134 +++
include/linux/mod_devicetable.h | 4 +-
include/linux/perf_event.h | 19 +
include/uapi/linux/perf_event.h | 8 +-
kernel/events/core.c | 357 +++++--
lib/Kconfig.debug | 10 +
lib/Makefile | 1 +
lib/test_min_heap.c | 194 ++++
sound/soc/intel/common/soc-intel-quirks.h | 14 +-
tools/include/uapi/linux/perf_event.h | 8 +-
tools/lib/api/fs/Build | 1 +
tools/lib/api/fs/cgroup.c | 67 ++
tools/lib/api/fs/fs.h | 2 +
tools/lib/perf/Documentation/examples/counting.c | 83 ++
tools/lib/traceevent/event-parse.c | 2 +-
tools/perf/Documentation/Makefile | 5 +-
tools/perf/Documentation/intel-pt.txt | 992 +------------------
tools/perf/Documentation/perf-inject.txt | 3 +-
tools/perf/Documentation/perf-intel-pt.txt | 1007 ++++++++++++++++++++
tools/perf/Documentation/perf-record.txt | 2 +-
tools/perf/Documentation/perf-report.txt | 3 +-
tools/perf/Documentation/perf-script.txt | 2 +-
tools/perf/Documentation/perf-stat.txt | 9 +
tools/perf/builtin-diff.c | 21 +-
tools/perf/builtin-report.c | 30 +-
tools/perf/builtin-script.c | 70 +-
tools/perf/builtin-stat.c | 4 +
.../perf/pmu-events/arch/s390/cf_z15/crypto6.json | 8 +-
.../perf/pmu-events/arch/s390/cf_z15/extended.json | 30 +-
.../arch/x86/cascadelakex/clx-metrics.json | 3 +-
.../pmu-events/arch/x86/skylake/skl-metrics.json | 3 +-
.../pmu-events/arch/x86/skylakex/skx-metrics.json | 3 +-
tools/perf/pmu-events/jevents.c | 19 +-
tools/perf/pmu-events/jevents.h | 2 +-
tools/perf/pmu-events/pmu-events.h | 1 +
tools/perf/scripts/perl/check-perf-trace.pl | 6 +-
tools/perf/scripts/perl/failed-syscalls.pl | 2 +-
tools/perf/scripts/perl/rw-by-file.pl | 6 +-
tools/perf/scripts/perl/rw-by-pid.pl | 10 +-
tools/perf/scripts/perl/rwtop.pl | 10 +-
tools/perf/scripts/perl/wakeup-latency.pl | 6 +-
tools/perf/tests/builtin-test.c | 5 +-
tools/perf/tests/expr.c | 10 +-
tools/perf/tests/sample-parsing.c | 7 +-
tools/perf/util/Build | 11 +-
tools/perf/util/annotate.c | 2 -
tools/perf/util/annotate.h | 1 -
tools/perf/util/block-info.c | 106 ++-
tools/perf/util/block-info.h | 9 +-
tools/perf/util/branch.h | 22 +
tools/perf/util/cgroup.c | 63 +-
tools/perf/util/cs-etm.c | 159 +++-
tools/perf/util/event.h | 1 +
tools/perf/util/evsel.c | 20 +-
tools/perf/util/evsel.h | 6 +
tools/perf/util/expr.c | 112 +++
tools/perf/util/expr.h | 8 +-
tools/perf/util/expr.l | 114 +++
tools/perf/util/expr.y | 185 +---
tools/perf/util/header.c | 37 +
tools/perf/util/hist.c | 3 +-
tools/perf/util/intel-pt.c | 2 +
tools/perf/util/llvm-utils.c | 2 +
tools/perf/util/machine.c | 35 +-
tools/perf/util/map.c | 8 +-
tools/perf/util/metricgroup.c | 109 ++-
tools/perf/util/mmap.c | 21 +-
tools/perf/util/perf_event_attr_fprintf.c | 1 +
.../util/scripting-engines/trace-event-python.c | 30 +-
tools/perf/util/session.c | 8 +-
tools/perf/util/stat-display.c | 39 +-
tools/perf/util/stat-shadow.c | 4 +-
tools/perf/util/stat.h | 1 +
tools/perf/util/synthetic-events.c | 7 +-
tools/perf/util/util.c | 18 +
tools/perf/util/util.h | 2 +
161 files changed, 3532 insertions(+), 2098 deletions(-)
create mode 100644 include/linux/min_heap.h
create mode 100644 lib/test_min_heap.c
create mode 100644 tools/lib/api/fs/cgroup.c
create mode 100644 tools/lib/perf/Documentation/examples/counting.c
create mode 100644 tools/perf/Documentation/perf-intel-pt.txt
create mode 100644 tools/perf/util/expr.c
create mode 100644 tools/perf/util/expr.l