linux/arch/x86
Peter Zijlstra (Intel) 1ac7fd8159 perf/x86/intel/lbr: Support LBR format V7
The Goldmont plus and Tremont have LBR format V7. The V7 has LBR_INFO,
which is the same as LBR format V5. But V7 doesn't support TSX.

Without the patch, the associated misprediction and cycles information
in the LBR_INFO may be lost on a Goldmont plus platform.
For Tremont, the patch only impacts the non-PEBS events. Because of the
adaptive PEBS, the LBR_INFO is always processed for a PEBS event.

Currently, two different ways are used to check the LBR capabilities,
which make the codes complex and confusing.
For the LBR format V4 and earlier, the global static lbr_desc array is
used to store the flags for the LBR capabilities in each LBR format.
For LBR format V5 and V6, the current code checks the version number
for the LBR capabilities.

There are common LBR capabilities among LBR format versions. Several
flags for the LBR capabilities are introduced into the struct x86_pmu.
The flags, which can be shared among LBR formats, are used to check
the LBR capabilities. Add intel_pmu_lbr_init() to set the flags
accordingly at boot time.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Kan Liang <kan.liang@linux.intel.com>
Link: https://lkml.kernel.org/r/1641315077-96661-1-git-send-email-peterz@infradead.org
2022-01-18 12:09:48 +01:00
..
boot - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
configs x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs 2022-01-08 22:55:29 +01:00
crypto - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
entry - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
events perf/x86/intel/lbr: Support LBR format V7 2022-01-18 12:09:48 +01:00
hyperv x86/hyperv: Refactor hv_msi_domain_free_irqs() 2021-12-09 11:52:21 +01:00
ia32 audit/stable-5.16 PR 20211101 2021-11-01 21:17:39 -07:00
include Rework of the MSI interrupt infrastructure: 2022-01-13 09:05:29 -08:00
kernel Rework of the MSI interrupt infrastructure: 2022-01-13 09:05:29 -08:00
kvm - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
lib - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
math-emu x86: Prepare asm files for straight-line-speculation 2021-12-08 12:25:37 +01:00
mm - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
net - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
pci x86/pci/xen: Use msi_for_each_desc() 2021-12-16 22:22:18 +01:00
platform - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
power x86: Prepare asm files for straight-line-speculation 2021-12-08 12:25:37 +01:00
purgatory x86/purgatory: Remove -nostdlib compiler flag 2021-12-30 14:13:06 +01:00
ras
realmode - Flush *all* mappings from the TLB after switching to the trampoline 2022-01-10 09:51:38 -08:00
tools x86/build: Use the proper name CONFIG_FW_LOADER 2021-12-29 22:20:38 +01:00
um - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
video
xen xen: branch for v5.17-rc1 2022-01-12 16:42:00 -08:00
.gitignore
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
Kconfig.assembler
Kconfig.cpu x86/mmx_32: Remove X86_USE_3DNOW 2021-12-11 09:09:45 +01:00
Kconfig.debug tracing: Refactor TRACE_IRQFLAGS_SUPPORT in Kconfig 2021-08-16 11:37:21 -04:00
Makefile x86: Add straight-line-speculation mitigation 2021-12-09 13:32:25 +01:00
Makefile_32.cpu x86/build: Do not add -falign flags unconditionally for clang 2021-09-19 10:35:53 +09:00
Makefile.um um: allow not setting extra rpaths in the linux binary 2021-06-17 21:54:15 +02:00