diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-02 14:08:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-02 14:08:12 -0400 |
commit | 6751b8d91af515a5dc5196fe305eee0a635e2ea2 (patch) | |
tree | a264e00a7d90e7642181aefd2ac2f10001208371 /tools/arch | |
parent | af0424522dbb235ee7f1eb84bce074004c9d8b51 (diff) | |
parent | 849e96f30068d4f6f8352715e02a10533a46deba (diff) |
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar:
"On the kernel side there's a bunch of ring-buffer ordering fixes for a
reproducible bug, plus a PEBS constraints regression fix.
Plus tooling fixes"
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
tools headers UAPI: Sync kvm.h headers with the kernel sources
perf record: Fix s390 missing module symbol and warning for non-root users
perf machine: Read also the end of the kernel
perf test vmlinux-kallsyms: Ignore aliases to _etext when searching on kallsyms
perf session: Add missing swap ops for namespace events
perf namespace: Protect reading thread's namespace
tools headers UAPI: Sync drm/drm.h with the kernel
tools headers UAPI: Sync drm/i915_drm.h with the kernel
tools headers UAPI: Sync linux/fs.h with the kernel
tools headers UAPI: Sync linux/sched.h with the kernel
tools arch x86: Sync asm/cpufeatures.h with the with the kernel
tools include UAPI: Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls
perf arm64: Fix mksyscalltbl when system kernel headers are ahead of the kernel
perf data: Fix 'strncat may truncate' build failure with recent gcc
perf/ring-buffer: Use regular variables for nesting
perf/ring-buffer: Always use {READ,WRITE}_ONCE() for rb->user_page data
perf/ring_buffer: Add ordering to rb->nest increment
perf/ring_buffer: Fix exposing a temporarily decreased data_head
perf/x86/intel/ds: Fix EVENT vs. UEVENT PEBS constraints
Diffstat (limited to 'tools/arch')
-rw-r--r-- | tools/arch/arm64/include/uapi/asm/kvm.h | 43 | ||||
-rw-r--r-- | tools/arch/powerpc/include/uapi/asm/kvm.h | 46 | ||||
-rw-r--r-- | tools/arch/s390/include/uapi/asm/kvm.h | 4 | ||||
-rw-r--r-- | tools/arch/x86/include/asm/cpufeatures.h | 3 |
4 files changed, 95 insertions, 1 deletions
diff --git a/tools/arch/arm64/include/uapi/asm/kvm.h b/tools/arch/arm64/include/uapi/asm/kvm.h index 97c3478ee6e7..7b7ac0f6cec9 100644 --- a/tools/arch/arm64/include/uapi/asm/kvm.h +++ b/tools/arch/arm64/include/uapi/asm/kvm.h | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/psci.h> | 35 | #include <linux/psci.h> |
36 | #include <linux/types.h> | 36 | #include <linux/types.h> |
37 | #include <asm/ptrace.h> | 37 | #include <asm/ptrace.h> |
38 | #include <asm/sve_context.h> | ||
38 | 39 | ||
39 | #define __KVM_HAVE_GUEST_DEBUG | 40 | #define __KVM_HAVE_GUEST_DEBUG |
40 | #define __KVM_HAVE_IRQ_LINE | 41 | #define __KVM_HAVE_IRQ_LINE |
@@ -102,6 +103,9 @@ struct kvm_regs { | |||
102 | #define KVM_ARM_VCPU_EL1_32BIT 1 /* CPU running a 32bit VM */ | 103 | #define KVM_ARM_VCPU_EL1_32BIT 1 /* CPU running a 32bit VM */ |
103 | #define KVM_ARM_VCPU_PSCI_0_2 2 /* CPU uses PSCI v0.2 */ | 104 | #define KVM_ARM_VCPU_PSCI_0_2 2 /* CPU uses PSCI v0.2 */ |
104 | #define KVM_ARM_VCPU_PMU_V3 3 /* Support guest PMUv3 */ | 105 | #define KVM_ARM_VCPU_PMU_V3 3 /* Support guest PMUv3 */ |
106 | #define KVM_ARM_VCPU_SVE 4 /* enable SVE for this CPU */ | ||
107 | #define KVM_ARM_VCPU_PTRAUTH_ADDRESS 5 /* VCPU uses address authentication */ | ||
108 | #define KVM_ARM_VCPU_PTRAUTH_GENERIC 6 /* VCPU uses generic authentication */ | ||
105 | 109 | ||
106 | struct kvm_vcpu_init { | 110 | struct kvm_vcpu_init { |
107 | __u32 target; | 111 | __u32 target; |
@@ -226,6 +230,45 @@ struct kvm_vcpu_events { | |||
226 | KVM_REG_ARM_FW | ((r) & 0xffff)) | 230 | KVM_REG_ARM_FW | ((r) & 0xffff)) |
227 | #define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0) | 231 | #define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0) |
228 | 232 | ||
233 | /* SVE registers */ | ||
234 | #define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT) | ||
235 | |||
236 | /* Z- and P-regs occupy blocks at the following offsets within this range: */ | ||
237 | #define KVM_REG_ARM64_SVE_ZREG_BASE 0 | ||
238 | #define KVM_REG_ARM64_SVE_PREG_BASE 0x400 | ||
239 | #define KVM_REG_ARM64_SVE_FFR_BASE 0x600 | ||
240 | |||
241 | #define KVM_ARM64_SVE_NUM_ZREGS __SVE_NUM_ZREGS | ||
242 | #define KVM_ARM64_SVE_NUM_PREGS __SVE_NUM_PREGS | ||
243 | |||
244 | #define KVM_ARM64_SVE_MAX_SLICES 32 | ||
245 | |||
246 | #define KVM_REG_ARM64_SVE_ZREG(n, i) \ | ||
247 | (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | KVM_REG_ARM64_SVE_ZREG_BASE | \ | ||
248 | KVM_REG_SIZE_U2048 | \ | ||
249 | (((n) & (KVM_ARM64_SVE_NUM_ZREGS - 1)) << 5) | \ | ||
250 | ((i) & (KVM_ARM64_SVE_MAX_SLICES - 1))) | ||
251 | |||
252 | #define KVM_REG_ARM64_SVE_PREG(n, i) \ | ||
253 | (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | KVM_REG_ARM64_SVE_PREG_BASE | \ | ||
254 | KVM_REG_SIZE_U256 | \ | ||
255 | (((n) & (KVM_ARM64_SVE_NUM_PREGS - 1)) << 5) | \ | ||
256 | ((i) & (KVM_ARM64_SVE_MAX_SLICES - 1))) | ||
257 | |||
258 | #define KVM_REG_ARM64_SVE_FFR(i) \ | ||
259 | (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | KVM_REG_ARM64_SVE_FFR_BASE | \ | ||
260 | KVM_REG_SIZE_U256 | \ | ||
261 | ((i) & (KVM_ARM64_SVE_MAX_SLICES - 1))) | ||
262 | |||
263 | #define KVM_ARM64_SVE_VQ_MIN __SVE_VQ_MIN | ||
264 | #define KVM_ARM64_SVE_VQ_MAX __SVE_VQ_MAX | ||
265 | |||
266 | /* Vector lengths pseudo-register: */ | ||
267 | #define KVM_REG_ARM64_SVE_VLS (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | \ | ||
268 | KVM_REG_SIZE_U512 | 0xffff) | ||
269 | #define KVM_ARM64_SVE_VLS_WORDS \ | ||
270 | ((KVM_ARM64_SVE_VQ_MAX - KVM_ARM64_SVE_VQ_MIN) / 64 + 1) | ||
271 | |||
229 | /* Device Control API: ARM VGIC */ | 272 | /* Device Control API: ARM VGIC */ |
230 | #define KVM_DEV_ARM_VGIC_GRP_ADDR 0 | 273 | #define KVM_DEV_ARM_VGIC_GRP_ADDR 0 |
231 | #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1 | 274 | #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1 |
diff --git a/tools/arch/powerpc/include/uapi/asm/kvm.h b/tools/arch/powerpc/include/uapi/asm/kvm.h index 26ca425f4c2c..b0f72dea8b11 100644 --- a/tools/arch/powerpc/include/uapi/asm/kvm.h +++ b/tools/arch/powerpc/include/uapi/asm/kvm.h | |||
@@ -482,6 +482,8 @@ struct kvm_ppc_cpu_char { | |||
482 | #define KVM_REG_PPC_ICP_PPRI_SHIFT 16 /* pending irq priority */ | 482 | #define KVM_REG_PPC_ICP_PPRI_SHIFT 16 /* pending irq priority */ |
483 | #define KVM_REG_PPC_ICP_PPRI_MASK 0xff | 483 | #define KVM_REG_PPC_ICP_PPRI_MASK 0xff |
484 | 484 | ||
485 | #define KVM_REG_PPC_VP_STATE (KVM_REG_PPC | KVM_REG_SIZE_U128 | 0x8d) | ||
486 | |||
485 | /* Device control API: PPC-specific devices */ | 487 | /* Device control API: PPC-specific devices */ |
486 | #define KVM_DEV_MPIC_GRP_MISC 1 | 488 | #define KVM_DEV_MPIC_GRP_MISC 1 |
487 | #define KVM_DEV_MPIC_BASE_ADDR 0 /* 64-bit */ | 489 | #define KVM_DEV_MPIC_BASE_ADDR 0 /* 64-bit */ |
@@ -677,4 +679,48 @@ struct kvm_ppc_cpu_char { | |||
677 | #define KVM_XICS_PRESENTED (1ULL << 43) | 679 | #define KVM_XICS_PRESENTED (1ULL << 43) |
678 | #define KVM_XICS_QUEUED (1ULL << 44) | 680 | #define KVM_XICS_QUEUED (1ULL << 44) |
679 | 681 | ||
682 | /* POWER9 XIVE Native Interrupt Controller */ | ||
683 | #define KVM_DEV_XIVE_GRP_CTRL 1 | ||
684 | #define KVM_DEV_XIVE_RESET 1 | ||
685 | #define KVM_DEV_XIVE_EQ_SYNC 2 | ||
686 | #define KVM_DEV_XIVE_GRP_SOURCE 2 /* 64-bit source identifier */ | ||
687 | #define KVM_DEV_XIVE_GRP_SOURCE_CONFIG 3 /* 64-bit source identifier */ | ||
688 | #define KVM_DEV_XIVE_GRP_EQ_CONFIG 4 /* 64-bit EQ identifier */ | ||
689 | #define KVM_DEV_XIVE_GRP_SOURCE_SYNC 5 /* 64-bit source identifier */ | ||
690 | |||
691 | /* Layout of 64-bit XIVE source attribute values */ | ||
692 | #define KVM_XIVE_LEVEL_SENSITIVE (1ULL << 0) | ||
693 | #define KVM_XIVE_LEVEL_ASSERTED (1ULL << 1) | ||
694 | |||
695 | /* Layout of 64-bit XIVE source configuration attribute values */ | ||
696 | #define KVM_XIVE_SOURCE_PRIORITY_SHIFT 0 | ||
697 | #define KVM_XIVE_SOURCE_PRIORITY_MASK 0x7 | ||
698 | #define KVM_XIVE_SOURCE_SERVER_SHIFT 3 | ||
699 | #define KVM_XIVE_SOURCE_SERVER_MASK 0xfffffff8ULL | ||
700 | #define KVM_XIVE_SOURCE_MASKED_SHIFT 32 | ||
701 | #define KVM_XIVE_SOURCE_MASKED_MASK 0x100000000ULL | ||
702 | #define KVM_XIVE_SOURCE_EISN_SHIFT 33 | ||
703 | #define KVM_XIVE_SOURCE_EISN_MASK 0xfffffffe00000000ULL | ||
704 | |||
705 | /* Layout of 64-bit EQ identifier */ | ||
706 | #define KVM_XIVE_EQ_PRIORITY_SHIFT 0 | ||
707 | #define KVM_XIVE_EQ_PRIORITY_MASK 0x7 | ||
708 | #define KVM_XIVE_EQ_SERVER_SHIFT 3 | ||
709 | #define KVM_XIVE_EQ_SERVER_MASK 0xfffffff8ULL | ||
710 | |||
711 | /* Layout of EQ configuration values (64 bytes) */ | ||
712 | struct kvm_ppc_xive_eq { | ||
713 | __u32 flags; | ||
714 | __u32 qshift; | ||
715 | __u64 qaddr; | ||
716 | __u32 qtoggle; | ||
717 | __u32 qindex; | ||
718 | __u8 pad[40]; | ||
719 | }; | ||
720 | |||
721 | #define KVM_XIVE_EQ_ALWAYS_NOTIFY 0x00000001 | ||
722 | |||
723 | #define KVM_XIVE_TIMA_PAGE_OFFSET 0 | ||
724 | #define KVM_XIVE_ESB_PAGE_OFFSET 4 | ||
725 | |||
680 | #endif /* __LINUX_KVM_POWERPC_H */ | 726 | #endif /* __LINUX_KVM_POWERPC_H */ |
diff --git a/tools/arch/s390/include/uapi/asm/kvm.h b/tools/arch/s390/include/uapi/asm/kvm.h index 09652eabe769..47104e5b47fd 100644 --- a/tools/arch/s390/include/uapi/asm/kvm.h +++ b/tools/arch/s390/include/uapi/asm/kvm.h | |||
@@ -153,7 +153,9 @@ struct kvm_s390_vm_cpu_subfunc { | |||
153 | __u8 ppno[16]; /* with MSA5 */ | 153 | __u8 ppno[16]; /* with MSA5 */ |
154 | __u8 kma[16]; /* with MSA8 */ | 154 | __u8 kma[16]; /* with MSA8 */ |
155 | __u8 kdsa[16]; /* with MSA9 */ | 155 | __u8 kdsa[16]; /* with MSA9 */ |
156 | __u8 reserved[1792]; | 156 | __u8 sortl[32]; /* with STFLE.150 */ |
157 | __u8 dfltcc[32]; /* with STFLE.151 */ | ||
158 | __u8 reserved[1728]; | ||
157 | }; | 159 | }; |
158 | 160 | ||
159 | /* kvm attributes for crypto */ | 161 | /* kvm attributes for crypto */ |
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h index 981ff9479648..75f27ee2c263 100644 --- a/tools/arch/x86/include/asm/cpufeatures.h +++ b/tools/arch/x86/include/asm/cpufeatures.h | |||
@@ -344,6 +344,7 @@ | |||
344 | /* Intel-defined CPU features, CPUID level 0x00000007:0 (EDX), word 18 */ | 344 | /* Intel-defined CPU features, CPUID level 0x00000007:0 (EDX), word 18 */ |
345 | #define X86_FEATURE_AVX512_4VNNIW (18*32+ 2) /* AVX-512 Neural Network Instructions */ | 345 | #define X86_FEATURE_AVX512_4VNNIW (18*32+ 2) /* AVX-512 Neural Network Instructions */ |
346 | #define X86_FEATURE_AVX512_4FMAPS (18*32+ 3) /* AVX-512 Multiply Accumulation Single precision */ | 346 | #define X86_FEATURE_AVX512_4FMAPS (18*32+ 3) /* AVX-512 Multiply Accumulation Single precision */ |
347 | #define X86_FEATURE_MD_CLEAR (18*32+10) /* VERW clears CPU buffers */ | ||
347 | #define X86_FEATURE_TSX_FORCE_ABORT (18*32+13) /* "" TSX_FORCE_ABORT */ | 348 | #define X86_FEATURE_TSX_FORCE_ABORT (18*32+13) /* "" TSX_FORCE_ABORT */ |
348 | #define X86_FEATURE_PCONFIG (18*32+18) /* Intel PCONFIG */ | 349 | #define X86_FEATURE_PCONFIG (18*32+18) /* Intel PCONFIG */ |
349 | #define X86_FEATURE_SPEC_CTRL (18*32+26) /* "" Speculation Control (IBRS + IBPB) */ | 350 | #define X86_FEATURE_SPEC_CTRL (18*32+26) /* "" Speculation Control (IBRS + IBPB) */ |
@@ -382,5 +383,7 @@ | |||
382 | #define X86_BUG_SPECTRE_V2 X86_BUG(16) /* CPU is affected by Spectre variant 2 attack with indirect branches */ | 383 | #define X86_BUG_SPECTRE_V2 X86_BUG(16) /* CPU is affected by Spectre variant 2 attack with indirect branches */ |
383 | #define X86_BUG_SPEC_STORE_BYPASS X86_BUG(17) /* CPU is affected by speculative store bypass attack */ | 384 | #define X86_BUG_SPEC_STORE_BYPASS X86_BUG(17) /* CPU is affected by speculative store bypass attack */ |
384 | #define X86_BUG_L1TF X86_BUG(18) /* CPU is affected by L1 Terminal Fault */ | 385 | #define X86_BUG_L1TF X86_BUG(18) /* CPU is affected by L1 Terminal Fault */ |
386 | #define X86_BUG_MDS X86_BUG(19) /* CPU is affected by Microarchitectural data sampling */ | ||
387 | #define X86_BUG_MSBDS_ONLY X86_BUG(20) /* CPU is only affected by the MSDBS variant of BUG_MDS */ | ||
385 | 388 | ||
386 | #endif /* _ASM_X86_CPUFEATURES_H */ | 389 | #endif /* _ASM_X86_CPUFEATURES_H */ |