Magellan Linux

Contents of /trunk/kernel-alx/patches-4.14/0145-4.14.46-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3238 - (show annotations) (download)
Fri Nov 9 12:14:58 2018 UTC (5 years, 5 months ago) by niro
File size: 49971 byte(s)
-added up to patches-4.14.79
1 diff --git a/Makefile b/Makefile
2 index f3ea74e7a516..3b1845f2b8f8 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -1,7 +1,7 @@
6 # SPDX-License-Identifier: GPL-2.0
7 VERSION = 4
8 PATCHLEVEL = 14
9 -SUBLEVEL = 45
10 +SUBLEVEL = 46
11 EXTRAVERSION =
12 NAME = Petit Gorille
13
14 diff --git a/tools/arch/arm/include/uapi/asm/kvm.h b/tools/arch/arm/include/uapi/asm/kvm.h
15 index 1f57bbe82b6f..df24fc8da1bc 100644
16 --- a/tools/arch/arm/include/uapi/asm/kvm.h
17 +++ b/tools/arch/arm/include/uapi/asm/kvm.h
18 @@ -180,6 +180,12 @@ struct kvm_arch_memory_slot {
19 #define KVM_REG_ARM_VFP_FPINST 0x1009
20 #define KVM_REG_ARM_VFP_FPINST2 0x100A
21
22 +/* KVM-as-firmware specific pseudo-registers */
23 +#define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT)
24 +#define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM | KVM_REG_SIZE_U64 | \
25 + KVM_REG_ARM_FW | ((r) & 0xffff))
26 +#define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0)
27 +
28 /* Device Control API: ARM VGIC */
29 #define KVM_DEV_ARM_VGIC_GRP_ADDR 0
30 #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
31 diff --git a/tools/arch/arm64/include/uapi/asm/kvm.h b/tools/arch/arm64/include/uapi/asm/kvm.h
32 index 51149ec75fe4..9f74ce5899f0 100644
33 --- a/tools/arch/arm64/include/uapi/asm/kvm.h
34 +++ b/tools/arch/arm64/include/uapi/asm/kvm.h
35 @@ -200,6 +200,12 @@ struct kvm_arch_memory_slot {
36 #define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2)
37 #define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2)
38
39 +/* KVM-as-firmware specific pseudo-registers */
40 +#define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT)
41 +#define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM64 | KVM_REG_SIZE_U64 | \
42 + KVM_REG_ARM_FW | ((r) & 0xffff))
43 +#define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0)
44 +
45 /* Device Control API: ARM VGIC */
46 #define KVM_DEV_ARM_VGIC_GRP_ADDR 0
47 #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
48 diff --git a/tools/arch/powerpc/include/uapi/asm/kvm.h b/tools/arch/powerpc/include/uapi/asm/kvm.h
49 index 61d6049f4c1e..8aaec831053a 100644
50 --- a/tools/arch/powerpc/include/uapi/asm/kvm.h
51 +++ b/tools/arch/powerpc/include/uapi/asm/kvm.h
52 @@ -607,6 +607,8 @@ struct kvm_ppc_rmmu_info {
53 #define KVM_REG_PPC_TIDR (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbc)
54 #define KVM_REG_PPC_PSSCR (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbd)
55
56 +#define KVM_REG_PPC_DEC_EXPIRY (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbe)
57 +
58 /* Transactional Memory checkpointed state:
59 * This is all GPRs, all VSX regs and a subset of SPRs
60 */
61 diff --git a/tools/arch/s390/include/uapi/asm/kvm.h b/tools/arch/s390/include/uapi/asm/kvm.h
62 index 9ad172dcd912..a3938db010f7 100644
63 --- a/tools/arch/s390/include/uapi/asm/kvm.h
64 +++ b/tools/arch/s390/include/uapi/asm/kvm.h
65 @@ -228,6 +228,7 @@ struct kvm_guest_debug_arch {
66 #define KVM_SYNC_RICCB (1UL << 7)
67 #define KVM_SYNC_FPRS (1UL << 8)
68 #define KVM_SYNC_GSCB (1UL << 9)
69 +#define KVM_SYNC_BPBC (1UL << 10)
70 /* length and alignment of the sdnx as a power of two */
71 #define SDNXC 8
72 #define SDNXL (1UL << SDNXC)
73 @@ -251,7 +252,9 @@ struct kvm_sync_regs {
74 };
75 __u8 reserved[512]; /* for future vector expansion */
76 __u32 fpc; /* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */
77 - __u8 padding1[52]; /* riccb needs to be 64byte aligned */
78 + __u8 bpbc : 1; /* bp mode */
79 + __u8 reserved2 : 7;
80 + __u8 padding1[51]; /* riccb needs to be 64byte aligned */
81 __u8 riccb[64]; /* runtime instrumentation controls block */
82 __u8 padding2[192]; /* sdnx needs to be 256byte aligned */
83 union {
84 diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
85 index 793690fbda36..403e97d5e243 100644
86 --- a/tools/arch/x86/include/asm/cpufeatures.h
87 +++ b/tools/arch/x86/include/asm/cpufeatures.h
88 @@ -13,173 +13,176 @@
89 /*
90 * Defines x86 CPU feature bits
91 */
92 -#define NCAPINTS 18 /* N 32-bit words worth of info */
93 -#define NBUGINTS 1 /* N 32-bit bug flags */
94 +#define NCAPINTS 19 /* N 32-bit words worth of info */
95 +#define NBUGINTS 1 /* N 32-bit bug flags */
96
97 /*
98 * Note: If the comment begins with a quoted string, that string is used
99 * in /proc/cpuinfo instead of the macro name. If the string is "",
100 * this feature bit is not displayed in /proc/cpuinfo at all.
101 + *
102 + * When adding new features here that depend on other features,
103 + * please update the table in kernel/cpu/cpuid-deps.c as well.
104 */
105
106 -/* Intel-defined CPU features, CPUID level 0x00000001 (edx), word 0 */
107 -#define X86_FEATURE_FPU ( 0*32+ 0) /* Onboard FPU */
108 -#define X86_FEATURE_VME ( 0*32+ 1) /* Virtual Mode Extensions */
109 -#define X86_FEATURE_DE ( 0*32+ 2) /* Debugging Extensions */
110 -#define X86_FEATURE_PSE ( 0*32+ 3) /* Page Size Extensions */
111 -#define X86_FEATURE_TSC ( 0*32+ 4) /* Time Stamp Counter */
112 -#define X86_FEATURE_MSR ( 0*32+ 5) /* Model-Specific Registers */
113 -#define X86_FEATURE_PAE ( 0*32+ 6) /* Physical Address Extensions */
114 -#define X86_FEATURE_MCE ( 0*32+ 7) /* Machine Check Exception */
115 -#define X86_FEATURE_CX8 ( 0*32+ 8) /* CMPXCHG8 instruction */
116 -#define X86_FEATURE_APIC ( 0*32+ 9) /* Onboard APIC */
117 -#define X86_FEATURE_SEP ( 0*32+11) /* SYSENTER/SYSEXIT */
118 -#define X86_FEATURE_MTRR ( 0*32+12) /* Memory Type Range Registers */
119 -#define X86_FEATURE_PGE ( 0*32+13) /* Page Global Enable */
120 -#define X86_FEATURE_MCA ( 0*32+14) /* Machine Check Architecture */
121 -#define X86_FEATURE_CMOV ( 0*32+15) /* CMOV instructions */
122 - /* (plus FCMOVcc, FCOMI with FPU) */
123 -#define X86_FEATURE_PAT ( 0*32+16) /* Page Attribute Table */
124 -#define X86_FEATURE_PSE36 ( 0*32+17) /* 36-bit PSEs */
125 -#define X86_FEATURE_PN ( 0*32+18) /* Processor serial number */
126 -#define X86_FEATURE_CLFLUSH ( 0*32+19) /* CLFLUSH instruction */
127 -#define X86_FEATURE_DS ( 0*32+21) /* "dts" Debug Store */
128 -#define X86_FEATURE_ACPI ( 0*32+22) /* ACPI via MSR */
129 -#define X86_FEATURE_MMX ( 0*32+23) /* Multimedia Extensions */
130 -#define X86_FEATURE_FXSR ( 0*32+24) /* FXSAVE/FXRSTOR, CR4.OSFXSR */
131 -#define X86_FEATURE_XMM ( 0*32+25) /* "sse" */
132 -#define X86_FEATURE_XMM2 ( 0*32+26) /* "sse2" */
133 -#define X86_FEATURE_SELFSNOOP ( 0*32+27) /* "ss" CPU self snoop */
134 -#define X86_FEATURE_HT ( 0*32+28) /* Hyper-Threading */
135 -#define X86_FEATURE_ACC ( 0*32+29) /* "tm" Automatic clock control */
136 -#define X86_FEATURE_IA64 ( 0*32+30) /* IA-64 processor */
137 -#define X86_FEATURE_PBE ( 0*32+31) /* Pending Break Enable */
138 +/* Intel-defined CPU features, CPUID level 0x00000001 (EDX), word 0 */
139 +#define X86_FEATURE_FPU ( 0*32+ 0) /* Onboard FPU */
140 +#define X86_FEATURE_VME ( 0*32+ 1) /* Virtual Mode Extensions */
141 +#define X86_FEATURE_DE ( 0*32+ 2) /* Debugging Extensions */
142 +#define X86_FEATURE_PSE ( 0*32+ 3) /* Page Size Extensions */
143 +#define X86_FEATURE_TSC ( 0*32+ 4) /* Time Stamp Counter */
144 +#define X86_FEATURE_MSR ( 0*32+ 5) /* Model-Specific Registers */
145 +#define X86_FEATURE_PAE ( 0*32+ 6) /* Physical Address Extensions */
146 +#define X86_FEATURE_MCE ( 0*32+ 7) /* Machine Check Exception */
147 +#define X86_FEATURE_CX8 ( 0*32+ 8) /* CMPXCHG8 instruction */
148 +#define X86_FEATURE_APIC ( 0*32+ 9) /* Onboard APIC */
149 +#define X86_FEATURE_SEP ( 0*32+11) /* SYSENTER/SYSEXIT */
150 +#define X86_FEATURE_MTRR ( 0*32+12) /* Memory Type Range Registers */
151 +#define X86_FEATURE_PGE ( 0*32+13) /* Page Global Enable */
152 +#define X86_FEATURE_MCA ( 0*32+14) /* Machine Check Architecture */
153 +#define X86_FEATURE_CMOV ( 0*32+15) /* CMOV instructions (plus FCMOVcc, FCOMI with FPU) */
154 +#define X86_FEATURE_PAT ( 0*32+16) /* Page Attribute Table */
155 +#define X86_FEATURE_PSE36 ( 0*32+17) /* 36-bit PSEs */
156 +#define X86_FEATURE_PN ( 0*32+18) /* Processor serial number */
157 +#define X86_FEATURE_CLFLUSH ( 0*32+19) /* CLFLUSH instruction */
158 +#define X86_FEATURE_DS ( 0*32+21) /* "dts" Debug Store */
159 +#define X86_FEATURE_ACPI ( 0*32+22) /* ACPI via MSR */
160 +#define X86_FEATURE_MMX ( 0*32+23) /* Multimedia Extensions */
161 +#define X86_FEATURE_FXSR ( 0*32+24) /* FXSAVE/FXRSTOR, CR4.OSFXSR */
162 +#define X86_FEATURE_XMM ( 0*32+25) /* "sse" */
163 +#define X86_FEATURE_XMM2 ( 0*32+26) /* "sse2" */
164 +#define X86_FEATURE_SELFSNOOP ( 0*32+27) /* "ss" CPU self snoop */
165 +#define X86_FEATURE_HT ( 0*32+28) /* Hyper-Threading */
166 +#define X86_FEATURE_ACC ( 0*32+29) /* "tm" Automatic clock control */
167 +#define X86_FEATURE_IA64 ( 0*32+30) /* IA-64 processor */
168 +#define X86_FEATURE_PBE ( 0*32+31) /* Pending Break Enable */
169
170 /* AMD-defined CPU features, CPUID level 0x80000001, word 1 */
171 /* Don't duplicate feature flags which are redundant with Intel! */
172 -#define X86_FEATURE_SYSCALL ( 1*32+11) /* SYSCALL/SYSRET */
173 -#define X86_FEATURE_MP ( 1*32+19) /* MP Capable. */
174 -#define X86_FEATURE_NX ( 1*32+20) /* Execute Disable */
175 -#define X86_FEATURE_MMXEXT ( 1*32+22) /* AMD MMX extensions */
176 -#define X86_FEATURE_FXSR_OPT ( 1*32+25) /* FXSAVE/FXRSTOR optimizations */
177 -#define X86_FEATURE_GBPAGES ( 1*32+26) /* "pdpe1gb" GB pages */
178 -#define X86_FEATURE_RDTSCP ( 1*32+27) /* RDTSCP */
179 -#define X86_FEATURE_LM ( 1*32+29) /* Long Mode (x86-64) */
180 -#define X86_FEATURE_3DNOWEXT ( 1*32+30) /* AMD 3DNow! extensions */
181 -#define X86_FEATURE_3DNOW ( 1*32+31) /* 3DNow! */
182 +#define X86_FEATURE_SYSCALL ( 1*32+11) /* SYSCALL/SYSRET */
183 +#define X86_FEATURE_MP ( 1*32+19) /* MP Capable */
184 +#define X86_FEATURE_NX ( 1*32+20) /* Execute Disable */
185 +#define X86_FEATURE_MMXEXT ( 1*32+22) /* AMD MMX extensions */
186 +#define X86_FEATURE_FXSR_OPT ( 1*32+25) /* FXSAVE/FXRSTOR optimizations */
187 +#define X86_FEATURE_GBPAGES ( 1*32+26) /* "pdpe1gb" GB pages */
188 +#define X86_FEATURE_RDTSCP ( 1*32+27) /* RDTSCP */
189 +#define X86_FEATURE_LM ( 1*32+29) /* Long Mode (x86-64, 64-bit support) */
190 +#define X86_FEATURE_3DNOWEXT ( 1*32+30) /* AMD 3DNow extensions */
191 +#define X86_FEATURE_3DNOW ( 1*32+31) /* 3DNow */
192
193 /* Transmeta-defined CPU features, CPUID level 0x80860001, word 2 */
194 -#define X86_FEATURE_RECOVERY ( 2*32+ 0) /* CPU in recovery mode */
195 -#define X86_FEATURE_LONGRUN ( 2*32+ 1) /* Longrun power control */
196 -#define X86_FEATURE_LRTI ( 2*32+ 3) /* LongRun table interface */
197 +#define X86_FEATURE_RECOVERY ( 2*32+ 0) /* CPU in recovery mode */
198 +#define X86_FEATURE_LONGRUN ( 2*32+ 1) /* Longrun power control */
199 +#define X86_FEATURE_LRTI ( 2*32+ 3) /* LongRun table interface */
200
201 /* Other features, Linux-defined mapping, word 3 */
202 /* This range is used for feature bits which conflict or are synthesized */
203 -#define X86_FEATURE_CXMMX ( 3*32+ 0) /* Cyrix MMX extensions */
204 -#define X86_FEATURE_K6_MTRR ( 3*32+ 1) /* AMD K6 nonstandard MTRRs */
205 -#define X86_FEATURE_CYRIX_ARR ( 3*32+ 2) /* Cyrix ARRs (= MTRRs) */
206 -#define X86_FEATURE_CENTAUR_MCR ( 3*32+ 3) /* Centaur MCRs (= MTRRs) */
207 -/* cpu types for specific tunings: */
208 -#define X86_FEATURE_K8 ( 3*32+ 4) /* "" Opteron, Athlon64 */
209 -#define X86_FEATURE_K7 ( 3*32+ 5) /* "" Athlon */
210 -#define X86_FEATURE_P3 ( 3*32+ 6) /* "" P3 */
211 -#define X86_FEATURE_P4 ( 3*32+ 7) /* "" P4 */
212 -#define X86_FEATURE_CONSTANT_TSC ( 3*32+ 8) /* TSC ticks at a constant rate */
213 -#define X86_FEATURE_UP ( 3*32+ 9) /* smp kernel running on up */
214 -#define X86_FEATURE_ART ( 3*32+10) /* Platform has always running timer (ART) */
215 -#define X86_FEATURE_ARCH_PERFMON ( 3*32+11) /* Intel Architectural PerfMon */
216 -#define X86_FEATURE_PEBS ( 3*32+12) /* Precise-Event Based Sampling */
217 -#define X86_FEATURE_BTS ( 3*32+13) /* Branch Trace Store */
218 -#define X86_FEATURE_SYSCALL32 ( 3*32+14) /* "" syscall in ia32 userspace */
219 -#define X86_FEATURE_SYSENTER32 ( 3*32+15) /* "" sysenter in ia32 userspace */
220 -#define X86_FEATURE_REP_GOOD ( 3*32+16) /* rep microcode works well */
221 -#define X86_FEATURE_MFENCE_RDTSC ( 3*32+17) /* "" Mfence synchronizes RDTSC */
222 -#define X86_FEATURE_LFENCE_RDTSC ( 3*32+18) /* "" Lfence synchronizes RDTSC */
223 -#define X86_FEATURE_ACC_POWER ( 3*32+19) /* AMD Accumulated Power Mechanism */
224 -#define X86_FEATURE_NOPL ( 3*32+20) /* The NOPL (0F 1F) instructions */
225 -#define X86_FEATURE_ALWAYS ( 3*32+21) /* "" Always-present feature */
226 -#define X86_FEATURE_XTOPOLOGY ( 3*32+22) /* cpu topology enum extensions */
227 -#define X86_FEATURE_TSC_RELIABLE ( 3*32+23) /* TSC is known to be reliable */
228 -#define X86_FEATURE_NONSTOP_TSC ( 3*32+24) /* TSC does not stop in C states */
229 -#define X86_FEATURE_CPUID ( 3*32+25) /* CPU has CPUID instruction itself */
230 -#define X86_FEATURE_EXTD_APICID ( 3*32+26) /* has extended APICID (8 bits) */
231 -#define X86_FEATURE_AMD_DCM ( 3*32+27) /* multi-node processor */
232 -#define X86_FEATURE_APERFMPERF ( 3*32+28) /* APERFMPERF */
233 -#define X86_FEATURE_NONSTOP_TSC_S3 ( 3*32+30) /* TSC doesn't stop in S3 state */
234 -#define X86_FEATURE_TSC_KNOWN_FREQ ( 3*32+31) /* TSC has known frequency */
235 +#define X86_FEATURE_CXMMX ( 3*32+ 0) /* Cyrix MMX extensions */
236 +#define X86_FEATURE_K6_MTRR ( 3*32+ 1) /* AMD K6 nonstandard MTRRs */
237 +#define X86_FEATURE_CYRIX_ARR ( 3*32+ 2) /* Cyrix ARRs (= MTRRs) */
238 +#define X86_FEATURE_CENTAUR_MCR ( 3*32+ 3) /* Centaur MCRs (= MTRRs) */
239 +
240 +/* CPU types for specific tunings: */
241 +#define X86_FEATURE_K8 ( 3*32+ 4) /* "" Opteron, Athlon64 */
242 +#define X86_FEATURE_K7 ( 3*32+ 5) /* "" Athlon */
243 +#define X86_FEATURE_P3 ( 3*32+ 6) /* "" P3 */
244 +#define X86_FEATURE_P4 ( 3*32+ 7) /* "" P4 */
245 +#define X86_FEATURE_CONSTANT_TSC ( 3*32+ 8) /* TSC ticks at a constant rate */
246 +#define X86_FEATURE_UP ( 3*32+ 9) /* SMP kernel running on UP */
247 +#define X86_FEATURE_ART ( 3*32+10) /* Always running timer (ART) */
248 +#define X86_FEATURE_ARCH_PERFMON ( 3*32+11) /* Intel Architectural PerfMon */
249 +#define X86_FEATURE_PEBS ( 3*32+12) /* Precise-Event Based Sampling */
250 +#define X86_FEATURE_BTS ( 3*32+13) /* Branch Trace Store */
251 +#define X86_FEATURE_SYSCALL32 ( 3*32+14) /* "" syscall in IA32 userspace */
252 +#define X86_FEATURE_SYSENTER32 ( 3*32+15) /* "" sysenter in IA32 userspace */
253 +#define X86_FEATURE_REP_GOOD ( 3*32+16) /* REP microcode works well */
254 +#define X86_FEATURE_MFENCE_RDTSC ( 3*32+17) /* "" MFENCE synchronizes RDTSC */
255 +#define X86_FEATURE_LFENCE_RDTSC ( 3*32+18) /* "" LFENCE synchronizes RDTSC */
256 +#define X86_FEATURE_ACC_POWER ( 3*32+19) /* AMD Accumulated Power Mechanism */
257 +#define X86_FEATURE_NOPL ( 3*32+20) /* The NOPL (0F 1F) instructions */
258 +#define X86_FEATURE_ALWAYS ( 3*32+21) /* "" Always-present feature */
259 +#define X86_FEATURE_XTOPOLOGY ( 3*32+22) /* CPU topology enum extensions */
260 +#define X86_FEATURE_TSC_RELIABLE ( 3*32+23) /* TSC is known to be reliable */
261 +#define X86_FEATURE_NONSTOP_TSC ( 3*32+24) /* TSC does not stop in C states */
262 +#define X86_FEATURE_CPUID ( 3*32+25) /* CPU has CPUID instruction itself */
263 +#define X86_FEATURE_EXTD_APICID ( 3*32+26) /* Extended APICID (8 bits) */
264 +#define X86_FEATURE_AMD_DCM ( 3*32+27) /* AMD multi-node processor */
265 +#define X86_FEATURE_APERFMPERF ( 3*32+28) /* P-State hardware coordination feedback capability (APERF/MPERF MSRs) */
266 +#define X86_FEATURE_NONSTOP_TSC_S3 ( 3*32+30) /* TSC doesn't stop in S3 state */
267 +#define X86_FEATURE_TSC_KNOWN_FREQ ( 3*32+31) /* TSC has known frequency */
268
269 -/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
270 -#define X86_FEATURE_XMM3 ( 4*32+ 0) /* "pni" SSE-3 */
271 -#define X86_FEATURE_PCLMULQDQ ( 4*32+ 1) /* PCLMULQDQ instruction */
272 -#define X86_FEATURE_DTES64 ( 4*32+ 2) /* 64-bit Debug Store */
273 -#define X86_FEATURE_MWAIT ( 4*32+ 3) /* "monitor" Monitor/Mwait support */
274 -#define X86_FEATURE_DSCPL ( 4*32+ 4) /* "ds_cpl" CPL Qual. Debug Store */
275 -#define X86_FEATURE_VMX ( 4*32+ 5) /* Hardware virtualization */
276 -#define X86_FEATURE_SMX ( 4*32+ 6) /* Safer mode */
277 -#define X86_FEATURE_EST ( 4*32+ 7) /* Enhanced SpeedStep */
278 -#define X86_FEATURE_TM2 ( 4*32+ 8) /* Thermal Monitor 2 */
279 -#define X86_FEATURE_SSSE3 ( 4*32+ 9) /* Supplemental SSE-3 */
280 -#define X86_FEATURE_CID ( 4*32+10) /* Context ID */
281 -#define X86_FEATURE_SDBG ( 4*32+11) /* Silicon Debug */
282 -#define X86_FEATURE_FMA ( 4*32+12) /* Fused multiply-add */
283 -#define X86_FEATURE_CX16 ( 4*32+13) /* CMPXCHG16B */
284 -#define X86_FEATURE_XTPR ( 4*32+14) /* Send Task Priority Messages */
285 -#define X86_FEATURE_PDCM ( 4*32+15) /* Performance Capabilities */
286 -#define X86_FEATURE_PCID ( 4*32+17) /* Process Context Identifiers */
287 -#define X86_FEATURE_DCA ( 4*32+18) /* Direct Cache Access */
288 -#define X86_FEATURE_XMM4_1 ( 4*32+19) /* "sse4_1" SSE-4.1 */
289 -#define X86_FEATURE_XMM4_2 ( 4*32+20) /* "sse4_2" SSE-4.2 */
290 -#define X86_FEATURE_X2APIC ( 4*32+21) /* x2APIC */
291 -#define X86_FEATURE_MOVBE ( 4*32+22) /* MOVBE instruction */
292 -#define X86_FEATURE_POPCNT ( 4*32+23) /* POPCNT instruction */
293 -#define X86_FEATURE_TSC_DEADLINE_TIMER ( 4*32+24) /* Tsc deadline timer */
294 -#define X86_FEATURE_AES ( 4*32+25) /* AES instructions */
295 -#define X86_FEATURE_XSAVE ( 4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV */
296 -#define X86_FEATURE_OSXSAVE ( 4*32+27) /* "" XSAVE enabled in the OS */
297 -#define X86_FEATURE_AVX ( 4*32+28) /* Advanced Vector Extensions */
298 -#define X86_FEATURE_F16C ( 4*32+29) /* 16-bit fp conversions */
299 -#define X86_FEATURE_RDRAND ( 4*32+30) /* The RDRAND instruction */
300 -#define X86_FEATURE_HYPERVISOR ( 4*32+31) /* Running on a hypervisor */
301 +/* Intel-defined CPU features, CPUID level 0x00000001 (ECX), word 4 */
302 +#define X86_FEATURE_XMM3 ( 4*32+ 0) /* "pni" SSE-3 */
303 +#define X86_FEATURE_PCLMULQDQ ( 4*32+ 1) /* PCLMULQDQ instruction */
304 +#define X86_FEATURE_DTES64 ( 4*32+ 2) /* 64-bit Debug Store */
305 +#define X86_FEATURE_MWAIT ( 4*32+ 3) /* "monitor" MONITOR/MWAIT support */
306 +#define X86_FEATURE_DSCPL ( 4*32+ 4) /* "ds_cpl" CPL-qualified (filtered) Debug Store */
307 +#define X86_FEATURE_VMX ( 4*32+ 5) /* Hardware virtualization */
308 +#define X86_FEATURE_SMX ( 4*32+ 6) /* Safer Mode eXtensions */
309 +#define X86_FEATURE_EST ( 4*32+ 7) /* Enhanced SpeedStep */
310 +#define X86_FEATURE_TM2 ( 4*32+ 8) /* Thermal Monitor 2 */
311 +#define X86_FEATURE_SSSE3 ( 4*32+ 9) /* Supplemental SSE-3 */
312 +#define X86_FEATURE_CID ( 4*32+10) /* Context ID */
313 +#define X86_FEATURE_SDBG ( 4*32+11) /* Silicon Debug */
314 +#define X86_FEATURE_FMA ( 4*32+12) /* Fused multiply-add */
315 +#define X86_FEATURE_CX16 ( 4*32+13) /* CMPXCHG16B instruction */
316 +#define X86_FEATURE_XTPR ( 4*32+14) /* Send Task Priority Messages */
317 +#define X86_FEATURE_PDCM ( 4*32+15) /* Perf/Debug Capabilities MSR */
318 +#define X86_FEATURE_PCID ( 4*32+17) /* Process Context Identifiers */
319 +#define X86_FEATURE_DCA ( 4*32+18) /* Direct Cache Access */
320 +#define X86_FEATURE_XMM4_1 ( 4*32+19) /* "sse4_1" SSE-4.1 */
321 +#define X86_FEATURE_XMM4_2 ( 4*32+20) /* "sse4_2" SSE-4.2 */
322 +#define X86_FEATURE_X2APIC ( 4*32+21) /* X2APIC */
323 +#define X86_FEATURE_MOVBE ( 4*32+22) /* MOVBE instruction */
324 +#define X86_FEATURE_POPCNT ( 4*32+23) /* POPCNT instruction */
325 +#define X86_FEATURE_TSC_DEADLINE_TIMER ( 4*32+24) /* TSC deadline timer */
326 +#define X86_FEATURE_AES ( 4*32+25) /* AES instructions */
327 +#define X86_FEATURE_XSAVE ( 4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV instructions */
328 +#define X86_FEATURE_OSXSAVE ( 4*32+27) /* "" XSAVE instruction enabled in the OS */
329 +#define X86_FEATURE_AVX ( 4*32+28) /* Advanced Vector Extensions */
330 +#define X86_FEATURE_F16C ( 4*32+29) /* 16-bit FP conversions */
331 +#define X86_FEATURE_RDRAND ( 4*32+30) /* RDRAND instruction */
332 +#define X86_FEATURE_HYPERVISOR ( 4*32+31) /* Running on a hypervisor */
333
334 /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
335 -#define X86_FEATURE_XSTORE ( 5*32+ 2) /* "rng" RNG present (xstore) */
336 -#define X86_FEATURE_XSTORE_EN ( 5*32+ 3) /* "rng_en" RNG enabled */
337 -#define X86_FEATURE_XCRYPT ( 5*32+ 6) /* "ace" on-CPU crypto (xcrypt) */
338 -#define X86_FEATURE_XCRYPT_EN ( 5*32+ 7) /* "ace_en" on-CPU crypto enabled */
339 -#define X86_FEATURE_ACE2 ( 5*32+ 8) /* Advanced Cryptography Engine v2 */
340 -#define X86_FEATURE_ACE2_EN ( 5*32+ 9) /* ACE v2 enabled */
341 -#define X86_FEATURE_PHE ( 5*32+10) /* PadLock Hash Engine */
342 -#define X86_FEATURE_PHE_EN ( 5*32+11) /* PHE enabled */
343 -#define X86_FEATURE_PMM ( 5*32+12) /* PadLock Montgomery Multiplier */
344 -#define X86_FEATURE_PMM_EN ( 5*32+13) /* PMM enabled */
345 +#define X86_FEATURE_XSTORE ( 5*32+ 2) /* "rng" RNG present (xstore) */
346 +#define X86_FEATURE_XSTORE_EN ( 5*32+ 3) /* "rng_en" RNG enabled */
347 +#define X86_FEATURE_XCRYPT ( 5*32+ 6) /* "ace" on-CPU crypto (xcrypt) */
348 +#define X86_FEATURE_XCRYPT_EN ( 5*32+ 7) /* "ace_en" on-CPU crypto enabled */
349 +#define X86_FEATURE_ACE2 ( 5*32+ 8) /* Advanced Cryptography Engine v2 */
350 +#define X86_FEATURE_ACE2_EN ( 5*32+ 9) /* ACE v2 enabled */
351 +#define X86_FEATURE_PHE ( 5*32+10) /* PadLock Hash Engine */
352 +#define X86_FEATURE_PHE_EN ( 5*32+11) /* PHE enabled */
353 +#define X86_FEATURE_PMM ( 5*32+12) /* PadLock Montgomery Multiplier */
354 +#define X86_FEATURE_PMM_EN ( 5*32+13) /* PMM enabled */
355
356 -/* More extended AMD flags: CPUID level 0x80000001, ecx, word 6 */
357 -#define X86_FEATURE_LAHF_LM ( 6*32+ 0) /* LAHF/SAHF in long mode */
358 -#define X86_FEATURE_CMP_LEGACY ( 6*32+ 1) /* If yes HyperThreading not valid */
359 -#define X86_FEATURE_SVM ( 6*32+ 2) /* Secure virtual machine */
360 -#define X86_FEATURE_EXTAPIC ( 6*32+ 3) /* Extended APIC space */
361 -#define X86_FEATURE_CR8_LEGACY ( 6*32+ 4) /* CR8 in 32-bit mode */
362 -#define X86_FEATURE_ABM ( 6*32+ 5) /* Advanced bit manipulation */
363 -#define X86_FEATURE_SSE4A ( 6*32+ 6) /* SSE-4A */
364 -#define X86_FEATURE_MISALIGNSSE ( 6*32+ 7) /* Misaligned SSE mode */
365 -#define X86_FEATURE_3DNOWPREFETCH ( 6*32+ 8) /* 3DNow prefetch instructions */
366 -#define X86_FEATURE_OSVW ( 6*32+ 9) /* OS Visible Workaround */
367 -#define X86_FEATURE_IBS ( 6*32+10) /* Instruction Based Sampling */
368 -#define X86_FEATURE_XOP ( 6*32+11) /* extended AVX instructions */
369 -#define X86_FEATURE_SKINIT ( 6*32+12) /* SKINIT/STGI instructions */
370 -#define X86_FEATURE_WDT ( 6*32+13) /* Watchdog timer */
371 -#define X86_FEATURE_LWP ( 6*32+15) /* Light Weight Profiling */
372 -#define X86_FEATURE_FMA4 ( 6*32+16) /* 4 operands MAC instructions */
373 -#define X86_FEATURE_TCE ( 6*32+17) /* translation cache extension */
374 -#define X86_FEATURE_NODEID_MSR ( 6*32+19) /* NodeId MSR */
375 -#define X86_FEATURE_TBM ( 6*32+21) /* trailing bit manipulations */
376 -#define X86_FEATURE_TOPOEXT ( 6*32+22) /* topology extensions CPUID leafs */
377 -#define X86_FEATURE_PERFCTR_CORE ( 6*32+23) /* core performance counter extensions */
378 -#define X86_FEATURE_PERFCTR_NB ( 6*32+24) /* NB performance counter extensions */
379 -#define X86_FEATURE_BPEXT (6*32+26) /* data breakpoint extension */
380 -#define X86_FEATURE_PTSC ( 6*32+27) /* performance time-stamp counter */
381 -#define X86_FEATURE_PERFCTR_LLC ( 6*32+28) /* Last Level Cache performance counter extensions */
382 -#define X86_FEATURE_MWAITX ( 6*32+29) /* MWAIT extension (MONITORX/MWAITX) */
383 +/* More extended AMD flags: CPUID level 0x80000001, ECX, word 6 */
384 +#define X86_FEATURE_LAHF_LM ( 6*32+ 0) /* LAHF/SAHF in long mode */
385 +#define X86_FEATURE_CMP_LEGACY ( 6*32+ 1) /* If yes HyperThreading not valid */
386 +#define X86_FEATURE_SVM ( 6*32+ 2) /* Secure Virtual Machine */
387 +#define X86_FEATURE_EXTAPIC ( 6*32+ 3) /* Extended APIC space */
388 +#define X86_FEATURE_CR8_LEGACY ( 6*32+ 4) /* CR8 in 32-bit mode */
389 +#define X86_FEATURE_ABM ( 6*32+ 5) /* Advanced bit manipulation */
390 +#define X86_FEATURE_SSE4A ( 6*32+ 6) /* SSE-4A */
391 +#define X86_FEATURE_MISALIGNSSE ( 6*32+ 7) /* Misaligned SSE mode */
392 +#define X86_FEATURE_3DNOWPREFETCH ( 6*32+ 8) /* 3DNow prefetch instructions */
393 +#define X86_FEATURE_OSVW ( 6*32+ 9) /* OS Visible Workaround */
394 +#define X86_FEATURE_IBS ( 6*32+10) /* Instruction Based Sampling */
395 +#define X86_FEATURE_XOP ( 6*32+11) /* extended AVX instructions */
396 +#define X86_FEATURE_SKINIT ( 6*32+12) /* SKINIT/STGI instructions */
397 +#define X86_FEATURE_WDT ( 6*32+13) /* Watchdog timer */
398 +#define X86_FEATURE_LWP ( 6*32+15) /* Light Weight Profiling */
399 +#define X86_FEATURE_FMA4 ( 6*32+16) /* 4 operands MAC instructions */
400 +#define X86_FEATURE_TCE ( 6*32+17) /* Translation Cache Extension */
401 +#define X86_FEATURE_NODEID_MSR ( 6*32+19) /* NodeId MSR */
402 +#define X86_FEATURE_TBM ( 6*32+21) /* Trailing Bit Manipulations */
403 +#define X86_FEATURE_TOPOEXT ( 6*32+22) /* Topology extensions CPUID leafs */
404 +#define X86_FEATURE_PERFCTR_CORE ( 6*32+23) /* Core performance counter extensions */
405 +#define X86_FEATURE_PERFCTR_NB ( 6*32+24) /* NB performance counter extensions */
406 +#define X86_FEATURE_BPEXT ( 6*32+26) /* Data breakpoint extension */
407 +#define X86_FEATURE_PTSC ( 6*32+27) /* Performance time-stamp counter */
408 +#define X86_FEATURE_PERFCTR_LLC ( 6*32+28) /* Last Level Cache performance counter extensions */
409 +#define X86_FEATURE_MWAITX ( 6*32+29) /* MWAIT extension (MONITORX/MWAITX instructions) */
410
411 /*
412 * Auxiliary flags: Linux defined - For features scattered in various
413 @@ -187,146 +190,185 @@
414 *
415 * Reuse free bits when adding new feature flags!
416 */
417 -#define X86_FEATURE_RING3MWAIT ( 7*32+ 0) /* Ring 3 MONITOR/MWAIT */
418 -#define X86_FEATURE_CPUID_FAULT ( 7*32+ 1) /* Intel CPUID faulting */
419 -#define X86_FEATURE_CPB ( 7*32+ 2) /* AMD Core Performance Boost */
420 -#define X86_FEATURE_EPB ( 7*32+ 3) /* IA32_ENERGY_PERF_BIAS support */
421 -#define X86_FEATURE_CAT_L3 ( 7*32+ 4) /* Cache Allocation Technology L3 */
422 -#define X86_FEATURE_CAT_L2 ( 7*32+ 5) /* Cache Allocation Technology L2 */
423 -#define X86_FEATURE_CDP_L3 ( 7*32+ 6) /* Code and Data Prioritization L3 */
424 -
425 -#define X86_FEATURE_HW_PSTATE ( 7*32+ 8) /* AMD HW-PState */
426 -#define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
427 -#define X86_FEATURE_SME ( 7*32+10) /* AMD Secure Memory Encryption */
428 +#define X86_FEATURE_RING3MWAIT ( 7*32+ 0) /* Ring 3 MONITOR/MWAIT instructions */
429 +#define X86_FEATURE_CPUID_FAULT ( 7*32+ 1) /* Intel CPUID faulting */
430 +#define X86_FEATURE_CPB ( 7*32+ 2) /* AMD Core Performance Boost */
431 +#define X86_FEATURE_EPB ( 7*32+ 3) /* IA32_ENERGY_PERF_BIAS support */
432 +#define X86_FEATURE_CAT_L3 ( 7*32+ 4) /* Cache Allocation Technology L3 */
433 +#define X86_FEATURE_CAT_L2 ( 7*32+ 5) /* Cache Allocation Technology L2 */
434 +#define X86_FEATURE_CDP_L3 ( 7*32+ 6) /* Code and Data Prioritization L3 */
435 +#define X86_FEATURE_INVPCID_SINGLE ( 7*32+ 7) /* Effectively INVPCID && CR4.PCIDE=1 */
436 +#define X86_FEATURE_HW_PSTATE ( 7*32+ 8) /* AMD HW-PState */
437 +#define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
438 +#define X86_FEATURE_SME ( 7*32+10) /* AMD Secure Memory Encryption */
439 +#define X86_FEATURE_PTI ( 7*32+11) /* Kernel Page Table Isolation enabled */
440 +#define X86_FEATURE_RETPOLINE ( 7*32+12) /* "" Generic Retpoline mitigation for Spectre variant 2 */
441 +#define X86_FEATURE_RETPOLINE_AMD ( 7*32+13) /* "" AMD Retpoline mitigation for Spectre variant 2 */
442 +#define X86_FEATURE_INTEL_PPIN ( 7*32+14) /* Intel Processor Inventory Number */
443
444 -#define X86_FEATURE_INTEL_PPIN ( 7*32+14) /* Intel Processor Inventory Number */
445 -#define X86_FEATURE_INTEL_PT ( 7*32+15) /* Intel Processor Trace */
446 -#define X86_FEATURE_AVX512_4VNNIW (7*32+16) /* AVX-512 Neural Network Instructions */
447 -#define X86_FEATURE_AVX512_4FMAPS (7*32+17) /* AVX-512 Multiply Accumulation Single precision */
448 +#define X86_FEATURE_MSR_SPEC_CTRL ( 7*32+16) /* "" MSR SPEC_CTRL is implemented */
449 +#define X86_FEATURE_SSBD ( 7*32+17) /* Speculative Store Bypass Disable */
450 +#define X86_FEATURE_MBA ( 7*32+18) /* Memory Bandwidth Allocation */
451 +#define X86_FEATURE_RSB_CTXSW ( 7*32+19) /* "" Fill RSB on context switches */
452
453 -#define X86_FEATURE_MBA ( 7*32+18) /* Memory Bandwidth Allocation */
454 +#define X86_FEATURE_USE_IBPB ( 7*32+21) /* "" Indirect Branch Prediction Barrier enabled */
455 +#define X86_FEATURE_USE_IBRS_FW ( 7*32+22) /* "" Use IBRS during runtime firmware calls */
456 +#define X86_FEATURE_SPEC_STORE_BYPASS_DISABLE ( 7*32+23) /* "" Disable Speculative Store Bypass. */
457 +#define X86_FEATURE_LS_CFG_SSBD ( 7*32+24) /* "" AMD SSBD implementation via LS_CFG MSR */
458 +#define X86_FEATURE_IBRS ( 7*32+25) /* Indirect Branch Restricted Speculation */
459 +#define X86_FEATURE_IBPB ( 7*32+26) /* Indirect Branch Prediction Barrier */
460 +#define X86_FEATURE_STIBP ( 7*32+27) /* Single Thread Indirect Branch Predictors */
461 +#define X86_FEATURE_ZEN ( 7*32+28) /* "" CPU is AMD family 0x17 (Zen) */
462
463 /* Virtualization flags: Linux defined, word 8 */
464 -#define X86_FEATURE_TPR_SHADOW ( 8*32+ 0) /* Intel TPR Shadow */
465 -#define X86_FEATURE_VNMI ( 8*32+ 1) /* Intel Virtual NMI */
466 -#define X86_FEATURE_FLEXPRIORITY ( 8*32+ 2) /* Intel FlexPriority */
467 -#define X86_FEATURE_EPT ( 8*32+ 3) /* Intel Extended Page Table */
468 -#define X86_FEATURE_VPID ( 8*32+ 4) /* Intel Virtual Processor ID */
469 +#define X86_FEATURE_TPR_SHADOW ( 8*32+ 0) /* Intel TPR Shadow */
470 +#define X86_FEATURE_VNMI ( 8*32+ 1) /* Intel Virtual NMI */
471 +#define X86_FEATURE_FLEXPRIORITY ( 8*32+ 2) /* Intel FlexPriority */
472 +#define X86_FEATURE_EPT ( 8*32+ 3) /* Intel Extended Page Table */
473 +#define X86_FEATURE_VPID ( 8*32+ 4) /* Intel Virtual Processor ID */
474
475 -#define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer vmmcall to vmcall */
476 -#define X86_FEATURE_XENPV ( 8*32+16) /* "" Xen paravirtual guest */
477 +#define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer VMMCALL to VMCALL */
478 +#define X86_FEATURE_XENPV ( 8*32+16) /* "" Xen paravirtual guest */
479
480
481 -/* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
482 -#define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
483 -#define X86_FEATURE_TSC_ADJUST ( 9*32+ 1) /* TSC adjustment MSR 0x3b */
484 -#define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
485 -#define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
486 -#define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
487 -#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Protection */
488 -#define X86_FEATURE_BMI2 ( 9*32+ 8) /* 2nd group bit manipulation extensions */
489 -#define X86_FEATURE_ERMS ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB */
490 -#define X86_FEATURE_INVPCID ( 9*32+10) /* Invalidate Processor Context ID */
491 -#define X86_FEATURE_RTM ( 9*32+11) /* Restricted Transactional Memory */
492 -#define X86_FEATURE_CQM ( 9*32+12) /* Cache QoS Monitoring */
493 -#define X86_FEATURE_MPX ( 9*32+14) /* Memory Protection Extension */
494 -#define X86_FEATURE_RDT_A ( 9*32+15) /* Resource Director Technology Allocation */
495 -#define X86_FEATURE_AVX512F ( 9*32+16) /* AVX-512 Foundation */
496 -#define X86_FEATURE_AVX512DQ ( 9*32+17) /* AVX-512 DQ (Double/Quad granular) Instructions */
497 -#define X86_FEATURE_RDSEED ( 9*32+18) /* The RDSEED instruction */
498 -#define X86_FEATURE_ADX ( 9*32+19) /* The ADCX and ADOX instructions */
499 -#define X86_FEATURE_SMAP ( 9*32+20) /* Supervisor Mode Access Prevention */
500 -#define X86_FEATURE_AVX512IFMA ( 9*32+21) /* AVX-512 Integer Fused Multiply-Add instructions */
501 -#define X86_FEATURE_CLFLUSHOPT ( 9*32+23) /* CLFLUSHOPT instruction */
502 -#define X86_FEATURE_CLWB ( 9*32+24) /* CLWB instruction */
503 -#define X86_FEATURE_AVX512PF ( 9*32+26) /* AVX-512 Prefetch */
504 -#define X86_FEATURE_AVX512ER ( 9*32+27) /* AVX-512 Exponential and Reciprocal */
505 -#define X86_FEATURE_AVX512CD ( 9*32+28) /* AVX-512 Conflict Detection */
506 -#define X86_FEATURE_SHA_NI ( 9*32+29) /* SHA1/SHA256 Instruction Extensions */
507 -#define X86_FEATURE_AVX512BW ( 9*32+30) /* AVX-512 BW (Byte/Word granular) Instructions */
508 -#define X86_FEATURE_AVX512VL ( 9*32+31) /* AVX-512 VL (128/256 Vector Length) Extensions */
509 +/* Intel-defined CPU features, CPUID level 0x00000007:0 (EBX), word 9 */
510 +#define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* RDFSBASE, WRFSBASE, RDGSBASE, WRGSBASE instructions*/
511 +#define X86_FEATURE_TSC_ADJUST ( 9*32+ 1) /* TSC adjustment MSR 0x3B */
512 +#define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
513 +#define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
514 +#define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
515 +#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Protection */
516 +#define X86_FEATURE_BMI2 ( 9*32+ 8) /* 2nd group bit manipulation extensions */
517 +#define X86_FEATURE_ERMS ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB instructions */
518 +#define X86_FEATURE_INVPCID ( 9*32+10) /* Invalidate Processor Context ID */
519 +#define X86_FEATURE_RTM ( 9*32+11) /* Restricted Transactional Memory */
520 +#define X86_FEATURE_CQM ( 9*32+12) /* Cache QoS Monitoring */
521 +#define X86_FEATURE_MPX ( 9*32+14) /* Memory Protection Extension */
522 +#define X86_FEATURE_RDT_A ( 9*32+15) /* Resource Director Technology Allocation */
523 +#define X86_FEATURE_AVX512F ( 9*32+16) /* AVX-512 Foundation */
524 +#define X86_FEATURE_AVX512DQ ( 9*32+17) /* AVX-512 DQ (Double/Quad granular) Instructions */
525 +#define X86_FEATURE_RDSEED ( 9*32+18) /* RDSEED instruction */
526 +#define X86_FEATURE_ADX ( 9*32+19) /* ADCX and ADOX instructions */
527 +#define X86_FEATURE_SMAP ( 9*32+20) /* Supervisor Mode Access Prevention */
528 +#define X86_FEATURE_AVX512IFMA ( 9*32+21) /* AVX-512 Integer Fused Multiply-Add instructions */
529 +#define X86_FEATURE_CLFLUSHOPT ( 9*32+23) /* CLFLUSHOPT instruction */
530 +#define X86_FEATURE_CLWB ( 9*32+24) /* CLWB instruction */
531 +#define X86_FEATURE_INTEL_PT ( 9*32+25) /* Intel Processor Trace */
532 +#define X86_FEATURE_AVX512PF ( 9*32+26) /* AVX-512 Prefetch */
533 +#define X86_FEATURE_AVX512ER ( 9*32+27) /* AVX-512 Exponential and Reciprocal */
534 +#define X86_FEATURE_AVX512CD ( 9*32+28) /* AVX-512 Conflict Detection */
535 +#define X86_FEATURE_SHA_NI ( 9*32+29) /* SHA1/SHA256 Instruction Extensions */
536 +#define X86_FEATURE_AVX512BW ( 9*32+30) /* AVX-512 BW (Byte/Word granular) Instructions */
537 +#define X86_FEATURE_AVX512VL ( 9*32+31) /* AVX-512 VL (128/256 Vector Length) Extensions */
538
539 -/* Extended state features, CPUID level 0x0000000d:1 (eax), word 10 */
540 -#define X86_FEATURE_XSAVEOPT (10*32+ 0) /* XSAVEOPT */
541 -#define X86_FEATURE_XSAVEC (10*32+ 1) /* XSAVEC */
542 -#define X86_FEATURE_XGETBV1 (10*32+ 2) /* XGETBV with ECX = 1 */
543 -#define X86_FEATURE_XSAVES (10*32+ 3) /* XSAVES/XRSTORS */
544 +/* Extended state features, CPUID level 0x0000000d:1 (EAX), word 10 */
545 +#define X86_FEATURE_XSAVEOPT (10*32+ 0) /* XSAVEOPT instruction */
546 +#define X86_FEATURE_XSAVEC (10*32+ 1) /* XSAVEC instruction */
547 +#define X86_FEATURE_XGETBV1 (10*32+ 2) /* XGETBV with ECX = 1 instruction */
548 +#define X86_FEATURE_XSAVES (10*32+ 3) /* XSAVES/XRSTORS instructions */
549
550 -/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:0 (edx), word 11 */
551 -#define X86_FEATURE_CQM_LLC (11*32+ 1) /* LLC QoS if 1 */
552 +/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:0 (EDX), word 11 */
553 +#define X86_FEATURE_CQM_LLC (11*32+ 1) /* LLC QoS if 1 */
554
555 -/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:1 (edx), word 12 */
556 -#define X86_FEATURE_CQM_OCCUP_LLC (12*32+ 0) /* LLC occupancy monitoring if 1 */
557 -#define X86_FEATURE_CQM_MBM_TOTAL (12*32+ 1) /* LLC Total MBM monitoring */
558 -#define X86_FEATURE_CQM_MBM_LOCAL (12*32+ 2) /* LLC Local MBM monitoring */
559 +/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:1 (EDX), word 12 */
560 +#define X86_FEATURE_CQM_OCCUP_LLC (12*32+ 0) /* LLC occupancy monitoring */
561 +#define X86_FEATURE_CQM_MBM_TOTAL (12*32+ 1) /* LLC Total MBM monitoring */
562 +#define X86_FEATURE_CQM_MBM_LOCAL (12*32+ 2) /* LLC Local MBM monitoring */
563
564 -/* AMD-defined CPU features, CPUID level 0x80000008 (ebx), word 13 */
565 -#define X86_FEATURE_CLZERO (13*32+0) /* CLZERO instruction */
566 -#define X86_FEATURE_IRPERF (13*32+1) /* Instructions Retired Count */
567 +/* AMD-defined CPU features, CPUID level 0x80000008 (EBX), word 13 */
568 +#define X86_FEATURE_CLZERO (13*32+ 0) /* CLZERO instruction */
569 +#define X86_FEATURE_IRPERF (13*32+ 1) /* Instructions Retired Count */
570 +#define X86_FEATURE_XSAVEERPTR (13*32+ 2) /* Always save/restore FP error pointers */
571 +#define X86_FEATURE_AMD_IBPB (13*32+12) /* "" Indirect Branch Prediction Barrier */
572 +#define X86_FEATURE_AMD_IBRS (13*32+14) /* "" Indirect Branch Restricted Speculation */
573 +#define X86_FEATURE_AMD_STIBP (13*32+15) /* "" Single Thread Indirect Branch Predictors */
574 +#define X86_FEATURE_VIRT_SSBD (13*32+25) /* Virtualized Speculative Store Bypass Disable */
575
576 -/* Thermal and Power Management Leaf, CPUID level 0x00000006 (eax), word 14 */
577 -#define X86_FEATURE_DTHERM (14*32+ 0) /* Digital Thermal Sensor */
578 -#define X86_FEATURE_IDA (14*32+ 1) /* Intel Dynamic Acceleration */
579 -#define X86_FEATURE_ARAT (14*32+ 2) /* Always Running APIC Timer */
580 -#define X86_FEATURE_PLN (14*32+ 4) /* Intel Power Limit Notification */
581 -#define X86_FEATURE_PTS (14*32+ 6) /* Intel Package Thermal Status */
582 -#define X86_FEATURE_HWP (14*32+ 7) /* Intel Hardware P-states */
583 -#define X86_FEATURE_HWP_NOTIFY (14*32+ 8) /* HWP Notification */
584 -#define X86_FEATURE_HWP_ACT_WINDOW (14*32+ 9) /* HWP Activity Window */
585 -#define X86_FEATURE_HWP_EPP (14*32+10) /* HWP Energy Perf. Preference */
586 -#define X86_FEATURE_HWP_PKG_REQ (14*32+11) /* HWP Package Level Request */
587 +/* Thermal and Power Management Leaf, CPUID level 0x00000006 (EAX), word 14 */
588 +#define X86_FEATURE_DTHERM (14*32+ 0) /* Digital Thermal Sensor */
589 +#define X86_FEATURE_IDA (14*32+ 1) /* Intel Dynamic Acceleration */
590 +#define X86_FEATURE_ARAT (14*32+ 2) /* Always Running APIC Timer */
591 +#define X86_FEATURE_PLN (14*32+ 4) /* Intel Power Limit Notification */
592 +#define X86_FEATURE_PTS (14*32+ 6) /* Intel Package Thermal Status */
593 +#define X86_FEATURE_HWP (14*32+ 7) /* Intel Hardware P-states */
594 +#define X86_FEATURE_HWP_NOTIFY (14*32+ 8) /* HWP Notification */
595 +#define X86_FEATURE_HWP_ACT_WINDOW (14*32+ 9) /* HWP Activity Window */
596 +#define X86_FEATURE_HWP_EPP (14*32+10) /* HWP Energy Perf. Preference */
597 +#define X86_FEATURE_HWP_PKG_REQ (14*32+11) /* HWP Package Level Request */
598
599 -/* AMD SVM Feature Identification, CPUID level 0x8000000a (edx), word 15 */
600 -#define X86_FEATURE_NPT (15*32+ 0) /* Nested Page Table support */
601 -#define X86_FEATURE_LBRV (15*32+ 1) /* LBR Virtualization support */
602 -#define X86_FEATURE_SVML (15*32+ 2) /* "svm_lock" SVM locking MSR */
603 -#define X86_FEATURE_NRIPS (15*32+ 3) /* "nrip_save" SVM next_rip save */
604 -#define X86_FEATURE_TSCRATEMSR (15*32+ 4) /* "tsc_scale" TSC scaling support */
605 -#define X86_FEATURE_VMCBCLEAN (15*32+ 5) /* "vmcb_clean" VMCB clean bits support */
606 -#define X86_FEATURE_FLUSHBYASID (15*32+ 6) /* flush-by-ASID support */
607 -#define X86_FEATURE_DECODEASSISTS (15*32+ 7) /* Decode Assists support */
608 -#define X86_FEATURE_PAUSEFILTER (15*32+10) /* filtered pause intercept */
609 -#define X86_FEATURE_PFTHRESHOLD (15*32+12) /* pause filter threshold */
610 -#define X86_FEATURE_AVIC (15*32+13) /* Virtual Interrupt Controller */
611 -#define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* Virtual VMSAVE VMLOAD */
612 -#define X86_FEATURE_VGIF (15*32+16) /* Virtual GIF */
613 +/* AMD SVM Feature Identification, CPUID level 0x8000000a (EDX), word 15 */
614 +#define X86_FEATURE_NPT (15*32+ 0) /* Nested Page Table support */
615 +#define X86_FEATURE_LBRV (15*32+ 1) /* LBR Virtualization support */
616 +#define X86_FEATURE_SVML (15*32+ 2) /* "svm_lock" SVM locking MSR */
617 +#define X86_FEATURE_NRIPS (15*32+ 3) /* "nrip_save" SVM next_rip save */
618 +#define X86_FEATURE_TSCRATEMSR (15*32+ 4) /* "tsc_scale" TSC scaling support */
619 +#define X86_FEATURE_VMCBCLEAN (15*32+ 5) /* "vmcb_clean" VMCB clean bits support */
620 +#define X86_FEATURE_FLUSHBYASID (15*32+ 6) /* flush-by-ASID support */
621 +#define X86_FEATURE_DECODEASSISTS (15*32+ 7) /* Decode Assists support */
622 +#define X86_FEATURE_PAUSEFILTER (15*32+10) /* filtered pause intercept */
623 +#define X86_FEATURE_PFTHRESHOLD (15*32+12) /* pause filter threshold */
624 +#define X86_FEATURE_AVIC (15*32+13) /* Virtual Interrupt Controller */
625 +#define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* Virtual VMSAVE VMLOAD */
626 +#define X86_FEATURE_VGIF (15*32+16) /* Virtual GIF */
627
628 -/* Intel-defined CPU features, CPUID level 0x00000007:0 (ecx), word 16 */
629 -#define X86_FEATURE_AVX512VBMI (16*32+ 1) /* AVX512 Vector Bit Manipulation instructions*/
630 -#define X86_FEATURE_PKU (16*32+ 3) /* Protection Keys for Userspace */
631 -#define X86_FEATURE_OSPKE (16*32+ 4) /* OS Protection Keys Enable */
632 -#define X86_FEATURE_AVX512_VPOPCNTDQ (16*32+14) /* POPCNT for vectors of DW/QW */
633 -#define X86_FEATURE_LA57 (16*32+16) /* 5-level page tables */
634 -#define X86_FEATURE_RDPID (16*32+22) /* RDPID instruction */
635 +/* Intel-defined CPU features, CPUID level 0x00000007:0 (ECX), word 16 */
636 +#define X86_FEATURE_AVX512VBMI (16*32+ 1) /* AVX512 Vector Bit Manipulation instructions*/
637 +#define X86_FEATURE_UMIP (16*32+ 2) /* User Mode Instruction Protection */
638 +#define X86_FEATURE_PKU (16*32+ 3) /* Protection Keys for Userspace */
639 +#define X86_FEATURE_OSPKE (16*32+ 4) /* OS Protection Keys Enable */
640 +#define X86_FEATURE_AVX512_VBMI2 (16*32+ 6) /* Additional AVX512 Vector Bit Manipulation Instructions */
641 +#define X86_FEATURE_GFNI (16*32+ 8) /* Galois Field New Instructions */
642 +#define X86_FEATURE_VAES (16*32+ 9) /* Vector AES */
643 +#define X86_FEATURE_VPCLMULQDQ (16*32+10) /* Carry-Less Multiplication Double Quadword */
644 +#define X86_FEATURE_AVX512_VNNI (16*32+11) /* Vector Neural Network Instructions */
645 +#define X86_FEATURE_AVX512_BITALG (16*32+12) /* Support for VPOPCNT[B,W] and VPSHUF-BITQMB instructions */
646 +#define X86_FEATURE_TME (16*32+13) /* Intel Total Memory Encryption */
647 +#define X86_FEATURE_AVX512_VPOPCNTDQ (16*32+14) /* POPCNT for vectors of DW/QW */
648 +#define X86_FEATURE_LA57 (16*32+16) /* 5-level page tables */
649 +#define X86_FEATURE_RDPID (16*32+22) /* RDPID instruction */
650
651 -/* AMD-defined CPU features, CPUID level 0x80000007 (ebx), word 17 */
652 -#define X86_FEATURE_OVERFLOW_RECOV (17*32+0) /* MCA overflow recovery support */
653 -#define X86_FEATURE_SUCCOR (17*32+1) /* Uncorrectable error containment and recovery */
654 -#define X86_FEATURE_SMCA (17*32+3) /* Scalable MCA */
655 +/* AMD-defined CPU features, CPUID level 0x80000007 (EBX), word 17 */
656 +#define X86_FEATURE_OVERFLOW_RECOV (17*32+ 0) /* MCA overflow recovery support */
657 +#define X86_FEATURE_SUCCOR (17*32+ 1) /* Uncorrectable error containment and recovery */
658 +#define X86_FEATURE_SMCA (17*32+ 3) /* Scalable MCA */
659 +
660 +/* Intel-defined CPU features, CPUID level 0x00000007:0 (EDX), word 18 */
661 +#define X86_FEATURE_AVX512_4VNNIW (18*32+ 2) /* AVX-512 Neural Network Instructions */
662 +#define X86_FEATURE_AVX512_4FMAPS (18*32+ 3) /* AVX-512 Multiply Accumulation Single precision */
663 +#define X86_FEATURE_PCONFIG (18*32+18) /* Intel PCONFIG */
664 +#define X86_FEATURE_SPEC_CTRL (18*32+26) /* "" Speculation Control (IBRS + IBPB) */
665 +#define X86_FEATURE_INTEL_STIBP (18*32+27) /* "" Single Thread Indirect Branch Predictors */
666 +#define X86_FEATURE_ARCH_CAPABILITIES (18*32+29) /* IA32_ARCH_CAPABILITIES MSR (Intel) */
667 +#define X86_FEATURE_SPEC_CTRL_SSBD (18*32+31) /* "" Speculative Store Bypass Disable */
668
669 /*
670 * BUG word(s)
671 */
672 -#define X86_BUG(x) (NCAPINTS*32 + (x))
673 +#define X86_BUG(x) (NCAPINTS*32 + (x))
674
675 -#define X86_BUG_F00F X86_BUG(0) /* Intel F00F */
676 -#define X86_BUG_FDIV X86_BUG(1) /* FPU FDIV */
677 -#define X86_BUG_COMA X86_BUG(2) /* Cyrix 6x86 coma */
678 -#define X86_BUG_AMD_TLB_MMATCH X86_BUG(3) /* "tlb_mmatch" AMD Erratum 383 */
679 -#define X86_BUG_AMD_APIC_C1E X86_BUG(4) /* "apic_c1e" AMD Erratum 400 */
680 -#define X86_BUG_11AP X86_BUG(5) /* Bad local APIC aka 11AP */
681 -#define X86_BUG_FXSAVE_LEAK X86_BUG(6) /* FXSAVE leaks FOP/FIP/FOP */
682 -#define X86_BUG_CLFLUSH_MONITOR X86_BUG(7) /* AAI65, CLFLUSH required before MONITOR */
683 -#define X86_BUG_SYSRET_SS_ATTRS X86_BUG(8) /* SYSRET doesn't fix up SS attrs */
684 +#define X86_BUG_F00F X86_BUG(0) /* Intel F00F */
685 +#define X86_BUG_FDIV X86_BUG(1) /* FPU FDIV */
686 +#define X86_BUG_COMA X86_BUG(2) /* Cyrix 6x86 coma */
687 +#define X86_BUG_AMD_TLB_MMATCH X86_BUG(3) /* "tlb_mmatch" AMD Erratum 383 */
688 +#define X86_BUG_AMD_APIC_C1E X86_BUG(4) /* "apic_c1e" AMD Erratum 400 */
689 +#define X86_BUG_11AP X86_BUG(5) /* Bad local APIC aka 11AP */
690 +#define X86_BUG_FXSAVE_LEAK X86_BUG(6) /* FXSAVE leaks FOP/FIP/FOP */
691 +#define X86_BUG_CLFLUSH_MONITOR X86_BUG(7) /* AAI65, CLFLUSH required before MONITOR */
692 +#define X86_BUG_SYSRET_SS_ATTRS X86_BUG(8) /* SYSRET doesn't fix up SS attrs */
693 #ifdef CONFIG_X86_32
694 /*
695 * 64-bit kernels don't use X86_BUG_ESPFIX. Make the define conditional
696 * to avoid confusion.
697 */
698 -#define X86_BUG_ESPFIX X86_BUG(9) /* "" IRET to 16-bit SS corrupts ESP/RSP high bits */
699 +#define X86_BUG_ESPFIX X86_BUG(9) /* "" IRET to 16-bit SS corrupts ESP/RSP high bits */
700 #endif
701 -#define X86_BUG_NULL_SEG X86_BUG(10) /* Nulling a selector preserves the base */
702 -#define X86_BUG_SWAPGS_FENCE X86_BUG(11) /* SWAPGS without input dep on GS */
703 -#define X86_BUG_MONITOR X86_BUG(12) /* IPI required to wake up remote CPU */
704 -#define X86_BUG_AMD_E400 X86_BUG(13) /* CPU is among the affected by Erratum 400 */
705 +#define X86_BUG_NULL_SEG X86_BUG(10) /* Nulling a selector preserves the base */
706 +#define X86_BUG_SWAPGS_FENCE X86_BUG(11) /* SWAPGS without input dep on GS */
707 +#define X86_BUG_MONITOR X86_BUG(12) /* IPI required to wake up remote CPU */
708 +#define X86_BUG_AMD_E400 X86_BUG(13) /* CPU is among the affected by Erratum 400 */
709 +#define X86_BUG_CPU_MELTDOWN X86_BUG(14) /* CPU is affected by meltdown attack and needs kernel page table isolation */
710 +#define X86_BUG_SPECTRE_V1 X86_BUG(15) /* CPU is affected by Spectre variant 1 attack with conditional branches */
711 +#define X86_BUG_SPECTRE_V2 X86_BUG(16) /* CPU is affected by Spectre variant 2 attack with indirect branches */
712 +#define X86_BUG_SPEC_STORE_BYPASS X86_BUG(17) /* CPU is affected by speculative store bypass attack */
713 +
714 #endif /* _ASM_X86_CPUFEATURES_H */
715 diff --git a/tools/arch/x86/include/asm/disabled-features.h b/tools/arch/x86/include/asm/disabled-features.h
716 index c10c9128f54e..c6a3af198294 100644
717 --- a/tools/arch/x86/include/asm/disabled-features.h
718 +++ b/tools/arch/x86/include/asm/disabled-features.h
719 @@ -44,6 +44,12 @@
720 # define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31))
721 #endif
722
723 +#ifdef CONFIG_PAGE_TABLE_ISOLATION
724 +# define DISABLE_PTI 0
725 +#else
726 +# define DISABLE_PTI (1 << (X86_FEATURE_PTI & 31))
727 +#endif
728 +
729 /*
730 * Make sure to add features to the correct mask
731 */
732 @@ -54,7 +60,7 @@
733 #define DISABLED_MASK4 (DISABLE_PCID)
734 #define DISABLED_MASK5 0
735 #define DISABLED_MASK6 0
736 -#define DISABLED_MASK7 0
737 +#define DISABLED_MASK7 (DISABLE_PTI)
738 #define DISABLED_MASK8 0
739 #define DISABLED_MASK9 (DISABLE_MPX)
740 #define DISABLED_MASK10 0
741 @@ -65,6 +71,7 @@
742 #define DISABLED_MASK15 0
743 #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57)
744 #define DISABLED_MASK17 0
745 -#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 18)
746 +#define DISABLED_MASK18 0
747 +#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 19)
748
749 #endif /* _ASM_X86_DISABLED_FEATURES_H */
750 diff --git a/tools/arch/x86/include/asm/required-features.h b/tools/arch/x86/include/asm/required-features.h
751 index d91ba04dd007..fb3a6de7440b 100644
752 --- a/tools/arch/x86/include/asm/required-features.h
753 +++ b/tools/arch/x86/include/asm/required-features.h
754 @@ -106,6 +106,7 @@
755 #define REQUIRED_MASK15 0
756 #define REQUIRED_MASK16 (NEED_LA57)
757 #define REQUIRED_MASK17 0
758 -#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 18)
759 +#define REQUIRED_MASK18 0
760 +#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 19)
761
762 #endif /* _ASM_X86_REQUIRED_FEATURES_H */
763 diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h
764 index 7e99999d6236..857bad91c454 100644
765 --- a/tools/include/uapi/linux/kvm.h
766 +++ b/tools/include/uapi/linux/kvm.h
767 @@ -931,6 +931,7 @@ struct kvm_ppc_resize_hpt {
768 #define KVM_CAP_PPC_SMT_POSSIBLE 147
769 #define KVM_CAP_HYPERV_SYNIC2 148
770 #define KVM_CAP_HYPERV_VP_INDEX 149
771 +#define KVM_CAP_S390_BPB 152
772
773 #ifdef KVM_CAP_IRQ_ROUTING
774
775 diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore
776 index 643cc4ba6872..3e5135dded16 100644
777 --- a/tools/perf/.gitignore
778 +++ b/tools/perf/.gitignore
779 @@ -31,5 +31,6 @@ config.mak.autogen
780 .config-detected
781 util/intel-pt-decoder/inat-tables.c
782 arch/*/include/generated/
783 +trace/beauty/generated/
784 pmu-events/pmu-events.c
785 pmu-events/jevents
786 diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
787 index 3b570e808b31..b205c1340456 100644
788 --- a/tools/perf/builtin-record.c
789 +++ b/tools/perf/builtin-record.c
790 @@ -926,15 +926,6 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
791 }
792 }
793
794 - /*
795 - * If we have just single event and are sending data
796 - * through pipe, we need to force the ids allocation,
797 - * because we synthesize event name through the pipe
798 - * and need the id for that.
799 - */
800 - if (data->is_pipe && rec->evlist->nr_entries == 1)
801 - rec->opts.sample_id = true;
802 -
803 if (record__open(rec) != 0) {
804 err = -1;
805 goto out_child;
806 diff --git a/tools/perf/perf.h b/tools/perf/perf.h
807 index de1debcd3ee7..55086389fc06 100644
808 --- a/tools/perf/perf.h
809 +++ b/tools/perf/perf.h
810 @@ -61,7 +61,6 @@ struct record_opts {
811 bool tail_synthesize;
812 bool overwrite;
813 bool ignore_missing_thread;
814 - bool sample_id;
815 unsigned int freq;
816 unsigned int mmap_pages;
817 unsigned int auxtrace_mmap_pages;
818 diff --git a/tools/perf/util/record.c b/tools/perf/util/record.c
819 index 6f09e4962dad..1e97937b03a9 100644
820 --- a/tools/perf/util/record.c
821 +++ b/tools/perf/util/record.c
822 @@ -137,7 +137,6 @@ void perf_evlist__config(struct perf_evlist *evlist, struct record_opts *opts,
823 struct perf_evsel *evsel;
824 bool use_sample_identifier = false;
825 bool use_comm_exec;
826 - bool sample_id = opts->sample_id;
827
828 /*
829 * Set the evsel leader links before we configure attributes,
830 @@ -164,7 +163,8 @@ void perf_evlist__config(struct perf_evlist *evlist, struct record_opts *opts,
831 * match the id.
832 */
833 use_sample_identifier = perf_can_sample_identifier();
834 - sample_id = true;
835 + evlist__for_each_entry(evlist, evsel)
836 + perf_evsel__set_sample_id(evsel, use_sample_identifier);
837 } else if (evlist->nr_entries > 1) {
838 struct perf_evsel *first = perf_evlist__first(evlist);
839
840 @@ -174,10 +174,6 @@ void perf_evlist__config(struct perf_evlist *evlist, struct record_opts *opts,
841 use_sample_identifier = perf_can_sample_identifier();
842 break;
843 }
844 - sample_id = true;
845 - }
846 -
847 - if (sample_id) {
848 evlist__for_each_entry(evlist, evsel)
849 perf_evsel__set_sample_id(evsel, use_sample_identifier);
850 }