Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
e4f57147
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
e4f57147
编写于
11月 29, 2017
作者:
I
Ingo Molnar
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by:
N
Ingo Molnar
<
mingo@kernel.org
>
上级
754fe00f
6e948c67
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
467 addition
and
287 deletion
+467
-287
arch/x86/events/intel/core.c
arch/x86/events/intel/core.c
+23
-12
kernel/events/core.c
kernel/events/core.c
+1
-0
tools/arch/arm/include/uapi/asm/kvm.h
tools/arch/arm/include/uapi/asm/kvm.h
+7
-0
tools/arch/arm64/include/uapi/asm/kvm.h
tools/arch/arm64/include/uapi/asm/kvm.h
+7
-0
tools/arch/x86/include/asm/cpufeatures.h
tools/arch/x86/include/asm/cpufeatures.h
+274
-263
tools/arch/x86/include/asm/disabled-features.h
tools/arch/x86/include/asm/disabled-features.h
+7
-1
tools/include/uapi/asm-generic/mman.h
tools/include/uapi/asm-generic/mman.h
+1
-0
tools/include/uapi/drm/drm.h
tools/include/uapi/drm/drm.h
+41
-0
tools/include/uapi/drm/i915_drm.h
tools/include/uapi/drm/i915_drm.h
+27
-6
tools/include/uapi/linux/kvm.h
tools/include/uapi/linux/kvm.h
+1
-0
tools/include/uapi/linux/perf_event.h
tools/include/uapi/linux/perf_event.h
+1
-0
tools/include/uapi/linux/prctl.h
tools/include/uapi/linux/prctl.h
+9
-0
tools/perf/bench/numa.c
tools/perf/bench/numa.c
+51
-5
tools/perf/tests/task-exit.c
tools/perf/tests/task-exit.c
+4
-0
tools/perf/trace/beauty/mmap.c
tools/perf/trace/beauty/mmap.c
+3
-0
tools/perf/util/intel-pt-decoder/inat.h
tools/perf/util/intel-pt-decoder/inat.h
+10
-0
未找到文件。
arch/x86/events/intel/core.c
浏览文件 @
e4f57147
...
...
@@ -3734,6 +3734,19 @@ EVENT_ATTR_STR(cycles-t, cycles_t, "event=0x3c,in_tx=1");
EVENT_ATTR_STR
(
cycles
-
ct
,
cycles_ct
,
"event=0x3c,in_tx=1,in_tx_cp=1"
);
static
struct
attribute
*
hsw_events_attrs
[]
=
{
EVENT_PTR
(
mem_ld_hsw
),
EVENT_PTR
(
mem_st_hsw
),
EVENT_PTR
(
td_slots_issued
),
EVENT_PTR
(
td_slots_retired
),
EVENT_PTR
(
td_fetch_bubbles
),
EVENT_PTR
(
td_total_slots
),
EVENT_PTR
(
td_total_slots_scale
),
EVENT_PTR
(
td_recovery_bubbles
),
EVENT_PTR
(
td_recovery_bubbles_scale
),
NULL
};
static
struct
attribute
*
hsw_tsx_events_attrs
[]
=
{
EVENT_PTR
(
tx_start
),
EVENT_PTR
(
tx_commit
),
EVENT_PTR
(
tx_abort
),
...
...
@@ -3746,18 +3759,16 @@ static struct attribute *hsw_events_attrs[] = {
EVENT_PTR
(
el_conflict
),
EVENT_PTR
(
cycles_t
),
EVENT_PTR
(
cycles_ct
),
EVENT_PTR
(
mem_ld_hsw
),
EVENT_PTR
(
mem_st_hsw
),
EVENT_PTR
(
td_slots_issued
),
EVENT_PTR
(
td_slots_retired
),
EVENT_PTR
(
td_fetch_bubbles
),
EVENT_PTR
(
td_total_slots
),
EVENT_PTR
(
td_total_slots_scale
),
EVENT_PTR
(
td_recovery_bubbles
),
EVENT_PTR
(
td_recovery_bubbles_scale
),
NULL
};
static
__init
struct
attribute
**
get_hsw_events_attrs
(
void
)
{
return
boot_cpu_has
(
X86_FEATURE_RTM
)
?
merge_attr
(
hsw_events_attrs
,
hsw_tsx_events_attrs
)
:
hsw_events_attrs
;
}
static
ssize_t
freeze_on_smi_show
(
struct
device
*
cdev
,
struct
device_attribute
*
attr
,
char
*
buf
)
...
...
@@ -4186,7 +4197,7 @@ __init int intel_pmu_init(void)
x86_pmu
.
hw_config
=
hsw_hw_config
;
x86_pmu
.
get_event_constraints
=
hsw_get_event_constraints
;
x86_pmu
.
cpu_events
=
hsw_events_attrs
;
x86_pmu
.
cpu_events
=
get_hsw_events_attrs
()
;
x86_pmu
.
lbr_double_abort
=
true
;
extra_attr
=
boot_cpu_has
(
X86_FEATURE_RTM
)
?
hsw_format_attr
:
nhm_format_attr
;
...
...
@@ -4225,7 +4236,7 @@ __init int intel_pmu_init(void)
x86_pmu
.
hw_config
=
hsw_hw_config
;
x86_pmu
.
get_event_constraints
=
hsw_get_event_constraints
;
x86_pmu
.
cpu_events
=
hsw_events_attrs
;
x86_pmu
.
cpu_events
=
get_hsw_events_attrs
()
;
x86_pmu
.
limit_period
=
bdw_limit_period
;
extra_attr
=
boot_cpu_has
(
X86_FEATURE_RTM
)
?
hsw_format_attr
:
nhm_format_attr
;
...
...
@@ -4283,7 +4294,7 @@ __init int intel_pmu_init(void)
extra_attr
=
boot_cpu_has
(
X86_FEATURE_RTM
)
?
hsw_format_attr
:
nhm_format_attr
;
extra_attr
=
merge_attr
(
extra_attr
,
skl_format_attr
);
x86_pmu
.
cpu_events
=
hsw_events_attrs
;
x86_pmu
.
cpu_events
=
get_hsw_events_attrs
()
;
intel_pmu_pebs_data_source_skl
(
boot_cpu_data
.
x86_model
==
INTEL_FAM6_SKYLAKE_X
);
pr_cont
(
"Skylake events, "
);
...
...
kernel/events/core.c
浏览文件 @
e4f57147
...
...
@@ -6680,6 +6680,7 @@ static void perf_fill_ns_link_info(struct perf_ns_link_info *ns_link_info,
ns_inode
=
ns_path
.
dentry
->
d_inode
;
ns_link_info
->
dev
=
new_encode_dev
(
ns_inode
->
i_sb
->
s_dev
);
ns_link_info
->
ino
=
ns_inode
->
i_ino
;
path_put
(
&
ns_path
);
}
}
...
...
tools/arch/arm/include/uapi/asm/kvm.h
浏览文件 @
e4f57147
...
...
@@ -152,6 +152,12 @@ struct kvm_arch_memory_slot {
(__ARM_CP15_REG(op1, 0, crm, 0) | KVM_REG_SIZE_U64)
#define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__)
/* PL1 Physical Timer Registers */
#define KVM_REG_ARM_PTIMER_CTL ARM_CP15_REG32(0, 14, 2, 1)
#define KVM_REG_ARM_PTIMER_CNT ARM_CP15_REG64(0, 14)
#define KVM_REG_ARM_PTIMER_CVAL ARM_CP15_REG64(2, 14)
/* Virtual Timer Registers */
#define KVM_REG_ARM_TIMER_CTL ARM_CP15_REG32(0, 14, 3, 1)
#define KVM_REG_ARM_TIMER_CNT ARM_CP15_REG64(1, 14)
#define KVM_REG_ARM_TIMER_CVAL ARM_CP15_REG64(3, 14)
...
...
@@ -216,6 +222,7 @@ struct kvm_arch_memory_slot {
#define KVM_DEV_ARM_ITS_SAVE_TABLES 1
#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2
#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3
#define KVM_DEV_ARM_ITS_CTRL_RESET 4
/* KVM_IRQ_LINE irq field index values */
#define KVM_ARM_IRQ_TYPE_SHIFT 24
...
...
tools/arch/arm64/include/uapi/asm/kvm.h
浏览文件 @
e4f57147
...
...
@@ -196,6 +196,12 @@ struct kvm_arch_memory_slot {
#define ARM64_SYS_REG(...) (__ARM64_SYS_REG(__VA_ARGS__) | KVM_REG_SIZE_U64)
/* Physical Timer EL0 Registers */
#define KVM_REG_ARM_PTIMER_CTL ARM64_SYS_REG(3, 3, 14, 2, 1)
#define KVM_REG_ARM_PTIMER_CVAL ARM64_SYS_REG(3, 3, 14, 2, 2)
#define KVM_REG_ARM_PTIMER_CNT ARM64_SYS_REG(3, 3, 14, 0, 1)
/* EL0 Virtual Timer Registers */
#define KVM_REG_ARM_TIMER_CTL ARM64_SYS_REG(3, 3, 14, 3, 1)
#define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2)
#define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2)
...
...
@@ -228,6 +234,7 @@ struct kvm_arch_memory_slot {
#define KVM_DEV_ARM_ITS_SAVE_TABLES 1
#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2
#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3
#define KVM_DEV_ARM_ITS_CTRL_RESET 4
/* Device Control API on vcpu fd */
#define KVM_ARM_VCPU_PMU_V3_CTRL 0
...
...
tools/arch/x86/include/asm/cpufeatures.h
浏览文件 @
e4f57147
...
...
@@ -13,173 +13,176 @@
/*
* Defines x86 CPU feature bits
*/
#define NCAPINTS
18
/* N 32-bit words worth of info */
#define NBUGINTS
1
/* N 32-bit bug flags */
#define NCAPINTS
18
/* N 32-bit words worth of info */
#define NBUGINTS
1
/* N 32-bit bug flags */
/*
* Note: If the comment begins with a quoted string, that string is used
* in /proc/cpuinfo instead of the macro name. If the string is "",
* this feature bit is not displayed in /proc/cpuinfo at all.
*
* When adding new features here that depend on other features,
* please update the table in kernel/cpu/cpuid-deps.c as well.
*/
/* Intel-defined CPU features, CPUID level 0x00000001 (edx), word 0 */
#define X86_FEATURE_FPU ( 0*32+ 0)
/* Onboard FPU */
#define X86_FEATURE_VME ( 0*32+ 1)
/* Virtual Mode Extensions */
#define X86_FEATURE_DE ( 0*32+ 2)
/* Debugging Extensions */
#define X86_FEATURE_PSE ( 0*32+ 3)
/* Page Size Extensions */
#define X86_FEATURE_TSC ( 0*32+ 4)
/* Time Stamp Counter */
#define X86_FEATURE_MSR ( 0*32+ 5)
/* Model-Specific Registers */
#define X86_FEATURE_PAE ( 0*32+ 6)
/* Physical Address Extensions */
#define X86_FEATURE_MCE ( 0*32+ 7)
/* Machine Check Exception */
#define X86_FEATURE_CX8 ( 0*32+ 8)
/* CMPXCHG8 instruction */
#define X86_FEATURE_APIC ( 0*32+ 9)
/* Onboard APIC */
#define X86_FEATURE_SEP ( 0*32+11)
/* SYSENTER/SYSEXIT */
#define X86_FEATURE_MTRR ( 0*32+12)
/* Memory Type Range Registers */
#define X86_FEATURE_PGE ( 0*32+13)
/* Page Global Enable */
#define X86_FEATURE_MCA ( 0*32+14)
/* Machine Check Architecture */
#define X86_FEATURE_CMOV ( 0*32+15)
/* CMOV instructions */
/* (plus FCMOVcc, FCOMI with FPU) */
#define X86_FEATURE_PAT ( 0*32+16)
/* Page Attribute Table */
#define X86_FEATURE_PSE36 ( 0*32+17)
/* 36-bit PSEs */
#define X86_FEATURE_PN ( 0*32+18)
/* Processor serial number */
#define X86_FEATURE_CLFLUSH ( 0*32+19)
/* CLFLUSH instruction */
#define X86_FEATURE_DS ( 0*32+21)
/* "dts" Debug Store */
#define X86_FEATURE_ACPI ( 0*32+22)
/* ACPI via MSR */
#define X86_FEATURE_MMX ( 0*32+23)
/* Multimedia Extensions */
#define X86_FEATURE_FXSR ( 0*32+24)
/* FXSAVE/FXRSTOR, CR4.OSFXSR */
#define X86_FEATURE_XMM ( 0*32+25)
/* "sse" */
#define X86_FEATURE_XMM2 ( 0*32+26)
/* "sse2" */
#define X86_FEATURE_SELFSNOOP ( 0*32+27)
/* "ss" CPU self snoop */
#define X86_FEATURE_HT ( 0*32+28)
/* Hyper-Threading */
#define X86_FEATURE_ACC ( 0*32+29)
/* "tm" Automatic clock control */
#define X86_FEATURE_IA64 ( 0*32+30)
/* IA-64 processor */
#define X86_FEATURE_PBE ( 0*32+31)
/* Pending Break Enable */
/* Intel-defined CPU features, CPUID level 0x00000001 (EDX), word 0 */
#define X86_FEATURE_FPU ( 0*32+ 0)
/* Onboard FPU */
#define X86_FEATURE_VME ( 0*32+ 1)
/* Virtual Mode Extensions */
#define X86_FEATURE_DE ( 0*32+ 2)
/* Debugging Extensions */
#define X86_FEATURE_PSE ( 0*32+ 3)
/* Page Size Extensions */
#define X86_FEATURE_TSC ( 0*32+ 4)
/* Time Stamp Counter */
#define X86_FEATURE_MSR ( 0*32+ 5)
/* Model-Specific Registers */
#define X86_FEATURE_PAE ( 0*32+ 6)
/* Physical Address Extensions */
#define X86_FEATURE_MCE ( 0*32+ 7)
/* Machine Check Exception */
#define X86_FEATURE_CX8 ( 0*32+ 8)
/* CMPXCHG8 instruction */
#define X86_FEATURE_APIC ( 0*32+ 9)
/* Onboard APIC */
#define X86_FEATURE_SEP ( 0*32+11)
/* SYSENTER/SYSEXIT */
#define X86_FEATURE_MTRR ( 0*32+12)
/* Memory Type Range Registers */
#define X86_FEATURE_PGE ( 0*32+13)
/* Page Global Enable */
#define X86_FEATURE_MCA ( 0*32+14)
/* Machine Check Architecture */
#define X86_FEATURE_CMOV ( 0*32+15)
/* CMOV instructions (plus FCMOVcc, FCOMI with FPU) */
#define X86_FEATURE_PAT ( 0*32+16)
/* Page Attribute Table */
#define X86_FEATURE_PSE36 ( 0*32+17)
/* 36-bit PSEs */
#define X86_FEATURE_PN ( 0*32+18)
/* Processor serial number */
#define X86_FEATURE_CLFLUSH ( 0*32+19)
/* CLFLUSH instruction */
#define X86_FEATURE_DS ( 0*32+21)
/* "dts" Debug Store */
#define X86_FEATURE_ACPI ( 0*32+22)
/* ACPI via MSR */
#define X86_FEATURE_MMX ( 0*32+23)
/* Multimedia Extensions */
#define X86_FEATURE_FXSR ( 0*32+24)
/* FXSAVE/FXRSTOR, CR4.OSFXSR */
#define X86_FEATURE_XMM ( 0*32+25)
/* "sse" */
#define X86_FEATURE_XMM2 ( 0*32+26)
/* "sse2" */
#define X86_FEATURE_SELFSNOOP ( 0*32+27)
/* "ss" CPU self snoop */
#define X86_FEATURE_HT ( 0*32+28)
/* Hyper-Threading */
#define X86_FEATURE_ACC ( 0*32+29)
/* "tm" Automatic clock control */
#define X86_FEATURE_IA64 ( 0*32+30)
/* IA-64 processor */
#define X86_FEATURE_PBE ( 0*32+31)
/* Pending Break Enable */
/* AMD-defined CPU features, CPUID level 0x80000001, word 1 */
/* Don't duplicate feature flags which are redundant with Intel! */
#define X86_FEATURE_SYSCALL ( 1*32+11)
/* SYSCALL/SYSRET */
#define X86_FEATURE_MP
( 1*32+19)
/* MP Capable.
*/
#define X86_FEATURE_NX ( 1*32+20)
/* Execute Disable */
#define X86_FEATURE_MMXEXT ( 1*32+22)
/* AMD MMX extensions */
#define X86_FEATURE_FXSR_OPT ( 1*32+25)
/* FXSAVE/FXRSTOR optimizations */
#define X86_FEATURE_GBPAGES ( 1*32+26)
/* "pdpe1gb" GB pages */
#define X86_FEATURE_RDTSCP ( 1*32+27)
/* RDTSCP */
#define X86_FEATURE_LM
( 1*32+29)
/* Long Mode (x86-64
) */
#define X86_FEATURE_3DNOWEXT
( 1*32+30)
/* AMD 3DNow!
extensions */
#define X86_FEATURE_3DNOW
( 1*32+31)
/* 3DNow!
*/
#define X86_FEATURE_SYSCALL
( 1*32+11)
/* SYSCALL/SYSRET */
#define X86_FEATURE_MP
( 1*32+19)
/* MP Capable
*/
#define X86_FEATURE_NX
( 1*32+20)
/* Execute Disable */
#define X86_FEATURE_MMXEXT
( 1*32+22)
/* AMD MMX extensions */
#define X86_FEATURE_FXSR_OPT
( 1*32+25)
/* FXSAVE/FXRSTOR optimizations */
#define X86_FEATURE_GBPAGES
( 1*32+26)
/* "pdpe1gb" GB pages */
#define X86_FEATURE_RDTSCP
( 1*32+27)
/* RDTSCP */
#define X86_FEATURE_LM
( 1*32+29)
/* Long Mode (x86-64, 64-bit support
) */
#define X86_FEATURE_3DNOWEXT
( 1*32+30)
/* AMD 3DNow
extensions */
#define X86_FEATURE_3DNOW
( 1*32+31)
/* 3DNow
*/
/* Transmeta-defined CPU features, CPUID level 0x80860001, word 2 */
#define X86_FEATURE_RECOVERY ( 2*32+ 0)
/* CPU in recovery mode */
#define X86_FEATURE_LONGRUN ( 2*32+ 1)
/* Longrun power control */
#define X86_FEATURE_LRTI ( 2*32+ 3)
/* LongRun table interface */
#define X86_FEATURE_RECOVERY
( 2*32+ 0)
/* CPU in recovery mode */
#define X86_FEATURE_LONGRUN
( 2*32+ 1)
/* Longrun power control */
#define X86_FEATURE_LRTI
( 2*32+ 3)
/* LongRun table interface */
/* Other features, Linux-defined mapping, word 3 */
/* This range is used for feature bits which conflict or are synthesized */
#define X86_FEATURE_CXMMX ( 3*32+ 0)
/* Cyrix MMX extensions */
#define X86_FEATURE_K6_MTRR ( 3*32+ 1)
/* AMD K6 nonstandard MTRRs */
#define X86_FEATURE_CYRIX_ARR ( 3*32+ 2)
/* Cyrix ARRs (= MTRRs) */
#define X86_FEATURE_CENTAUR_MCR ( 3*32+ 3)
/* Centaur MCRs (= MTRRs) */
/* cpu types for specific tunings: */
#define X86_FEATURE_K8 ( 3*32+ 4)
/* "" Opteron, Athlon64 */
#define X86_FEATURE_K7 ( 3*32+ 5)
/* "" Athlon */
#define X86_FEATURE_P3 ( 3*32+ 6)
/* "" P3 */
#define X86_FEATURE_P4 ( 3*32+ 7)
/* "" P4 */
#define X86_FEATURE_CONSTANT_TSC ( 3*32+ 8)
/* TSC ticks at a constant rate */
#define X86_FEATURE_UP ( 3*32+ 9)
/* smp kernel running on up */
#define X86_FEATURE_ART ( 3*32+10)
/* Platform has always running timer (ART) */
#define X86_FEATURE_ARCH_PERFMON ( 3*32+11)
/* Intel Architectural PerfMon */
#define X86_FEATURE_PEBS ( 3*32+12)
/* Precise-Event Based Sampling */
#define X86_FEATURE_BTS ( 3*32+13)
/* Branch Trace Store */
#define X86_FEATURE_SYSCALL32 ( 3*32+14)
/* "" syscall in ia32 userspace */
#define X86_FEATURE_SYSENTER32 ( 3*32+15)
/* "" sysenter in ia32 userspace */
#define X86_FEATURE_REP_GOOD ( 3*32+16)
/* rep microcode works well */
#define X86_FEATURE_MFENCE_RDTSC ( 3*32+17)
/* "" Mfence synchronizes RDTSC */
#define X86_FEATURE_LFENCE_RDTSC ( 3*32+18)
/* "" Lfence synchronizes RDTSC */
#define X86_FEATURE_ACC_POWER ( 3*32+19)
/* AMD Accumulated Power Mechanism */
#define X86_FEATURE_NOPL ( 3*32+20)
/* The NOPL (0F 1F) instructions */
#define X86_FEATURE_ALWAYS ( 3*32+21)
/* "" Always-present feature */
#define X86_FEATURE_XTOPOLOGY ( 3*32+22)
/* cpu topology enum extensions */
#define X86_FEATURE_TSC_RELIABLE ( 3*32+23)
/* TSC is known to be reliable */
#define X86_FEATURE_NONSTOP_TSC ( 3*32+24)
/* TSC does not stop in C states */
#define X86_FEATURE_CPUID ( 3*32+25)
/* CPU has CPUID instruction itself */
#define X86_FEATURE_EXTD_APICID ( 3*32+26)
/* has extended APICID (8 bits) */
#define X86_FEATURE_AMD_DCM ( 3*32+27)
/* multi-node processor */
#define X86_FEATURE_APERFMPERF ( 3*32+28)
/* APERFMPERF */
#define X86_FEATURE_NONSTOP_TSC_S3 ( 3*32+30)
/* TSC doesn't stop in S3 state */
#define X86_FEATURE_TSC_KNOWN_FREQ ( 3*32+31)
/* TSC has known frequency */
#define X86_FEATURE_CXMMX ( 3*32+ 0)
/* Cyrix MMX extensions */
#define X86_FEATURE_K6_MTRR ( 3*32+ 1)
/* AMD K6 nonstandard MTRRs */
#define X86_FEATURE_CYRIX_ARR ( 3*32+ 2)
/* Cyrix ARRs (= MTRRs) */
#define X86_FEATURE_CENTAUR_MCR ( 3*32+ 3)
/* Centaur MCRs (= MTRRs) */
/* CPU types for specific tunings: */
#define X86_FEATURE_K8 ( 3*32+ 4)
/* "" Opteron, Athlon64 */
#define X86_FEATURE_K7 ( 3*32+ 5)
/* "" Athlon */
#define X86_FEATURE_P3 ( 3*32+ 6)
/* "" P3 */
#define X86_FEATURE_P4 ( 3*32+ 7)
/* "" P4 */
#define X86_FEATURE_CONSTANT_TSC ( 3*32+ 8)
/* TSC ticks at a constant rate */
#define X86_FEATURE_UP ( 3*32+ 9)
/* SMP kernel running on UP */
#define X86_FEATURE_ART ( 3*32+10)
/* Always running timer (ART) */
#define X86_FEATURE_ARCH_PERFMON ( 3*32+11)
/* Intel Architectural PerfMon */
#define X86_FEATURE_PEBS ( 3*32+12)
/* Precise-Event Based Sampling */
#define X86_FEATURE_BTS ( 3*32+13)
/* Branch Trace Store */
#define X86_FEATURE_SYSCALL32 ( 3*32+14)
/* "" syscall in IA32 userspace */
#define X86_FEATURE_SYSENTER32 ( 3*32+15)
/* "" sysenter in IA32 userspace */
#define X86_FEATURE_REP_GOOD ( 3*32+16)
/* REP microcode works well */
#define X86_FEATURE_MFENCE_RDTSC ( 3*32+17)
/* "" MFENCE synchronizes RDTSC */
#define X86_FEATURE_LFENCE_RDTSC ( 3*32+18)
/* "" LFENCE synchronizes RDTSC */
#define X86_FEATURE_ACC_POWER ( 3*32+19)
/* AMD Accumulated Power Mechanism */
#define X86_FEATURE_NOPL ( 3*32+20)
/* The NOPL (0F 1F) instructions */
#define X86_FEATURE_ALWAYS ( 3*32+21)
/* "" Always-present feature */
#define X86_FEATURE_XTOPOLOGY ( 3*32+22)
/* CPU topology enum extensions */
#define X86_FEATURE_TSC_RELIABLE ( 3*32+23)
/* TSC is known to be reliable */
#define X86_FEATURE_NONSTOP_TSC ( 3*32+24)
/* TSC does not stop in C states */
#define X86_FEATURE_CPUID ( 3*32+25)
/* CPU has CPUID instruction itself */
#define X86_FEATURE_EXTD_APICID ( 3*32+26)
/* Extended APICID (8 bits) */
#define X86_FEATURE_AMD_DCM ( 3*32+27)
/* AMD multi-node processor */
#define X86_FEATURE_APERFMPERF ( 3*32+28)
/* P-State hardware coordination feedback capability (APERF/MPERF MSRs) */
#define X86_FEATURE_NONSTOP_TSC_S3 ( 3*32+30)
/* TSC doesn't stop in S3 state */
#define X86_FEATURE_TSC_KNOWN_FREQ ( 3*32+31)
/* TSC has known frequency */
/* Intel-defined CPU features, CPUID level 0x00000001 (
ecx
), word 4 */
#define X86_FEATURE_XMM3 ( 4*32+ 0)
/* "pni" SSE-3 */
#define X86_FEATURE_PCLMULQDQ ( 4*32+ 1)
/* PCLMULQDQ instruction */
#define X86_FEATURE_DTES64 ( 4*32+ 2)
/* 64-bit Debug Store */
#define X86_FEATURE_MWAIT
( 4*32+ 3)
/* "monitor" Monitor/Mwait
support */
#define X86_FEATURE_DSCPL
( 4*32+ 4)
/* "ds_cpl" CPL Qual.
Debug Store */
#define X86_FEATURE_VMX ( 4*32+ 5)
/* Hardware virtualization */
#define X86_FEATURE_SMX
( 4*32+ 6)
/* Safer mode
*/
#define X86_FEATURE_EST ( 4*32+ 7)
/* Enhanced SpeedStep */
#define X86_FEATURE_TM2 ( 4*32+ 8)
/* Thermal Monitor 2 */
#define X86_FEATURE_SSSE3 ( 4*32+ 9)
/* Supplemental SSE-3 */
#define X86_FEATURE_CID ( 4*32+10)
/* Context ID */
#define X86_FEATURE_SDBG ( 4*32+11)
/* Silicon Debug */
#define X86_FEATURE_FMA ( 4*32+12)
/* Fused multiply-add */
#define X86_FEATURE_CX16
( 4*32+13)
/* CMPXCHG16B
*/
#define X86_FEATURE_XTPR ( 4*32+14)
/* Send Task Priority Messages */
#define X86_FEATURE_PDCM
( 4*32+15)
/* Performance Capabilities
*/
#define X86_FEATURE_PCID ( 4*32+17)
/* Process Context Identifiers */
#define X86_FEATURE_DCA ( 4*32+18)
/* Direct Cache Access */
#define X86_FEATURE_XMM4_1 ( 4*32+19)
/* "sse4_1" SSE-4.1 */
#define X86_FEATURE_XMM4_2 ( 4*32+20)
/* "sse4_2" SSE-4.2 */
#define X86_FEATURE_X2APIC
( 4*32+21)
/* x
2APIC */
#define X86_FEATURE_MOVBE ( 4*32+22)
/* MOVBE instruction */
#define X86_FEATURE_POPCNT
( 4*32+23)
/* POPCNT instruction */
#define X86_FEATURE_TSC_DEADLINE_TIMER ( 4*32+24)
/* T
sc
deadline timer */
#define X86_FEATURE_AES ( 4*32+25)
/* AES instructions */
#define X86_FEATURE_XSAVE
( 4*32+26)
/* XSAVE/XRSTOR/XSETBV/XGETBV
*/
#define X86_FEATURE_OSXSAVE
( 4*32+27)
/* "" XSAVE
enabled in the OS */
#define X86_FEATURE_AVX ( 4*32+28)
/* Advanced Vector Extensions */
#define X86_FEATURE_F16C
( 4*32+29)
/* 16-bit fp
conversions */
#define X86_FEATURE_RDRAND
( 4*32+30)
/* The
RDRAND instruction */
#define X86_FEATURE_HYPERVISOR ( 4*32+31)
/* Running on a hypervisor */
/* Intel-defined CPU features, CPUID level 0x00000001 (
ECX
), word 4 */
#define X86_FEATURE_XMM3
( 4*32+ 0)
/* "pni" SSE-3 */
#define X86_FEATURE_PCLMULQDQ
( 4*32+ 1)
/* PCLMULQDQ instruction */
#define X86_FEATURE_DTES64
( 4*32+ 2)
/* 64-bit Debug Store */
#define X86_FEATURE_MWAIT
( 4*32+ 3)
/* "monitor" MONITOR/MWAIT
support */
#define X86_FEATURE_DSCPL
( 4*32+ 4)
/* "ds_cpl" CPL-qualified (filtered)
Debug Store */
#define X86_FEATURE_VMX
( 4*32+ 5)
/* Hardware virtualization */
#define X86_FEATURE_SMX
( 4*32+ 6)
/* Safer Mode eXtensions
*/
#define X86_FEATURE_EST
( 4*32+ 7)
/* Enhanced SpeedStep */
#define X86_FEATURE_TM2
( 4*32+ 8)
/* Thermal Monitor 2 */
#define X86_FEATURE_SSSE3
( 4*32+ 9)
/* Supplemental SSE-3 */
#define X86_FEATURE_CID
( 4*32+10)
/* Context ID */
#define X86_FEATURE_SDBG
( 4*32+11)
/* Silicon Debug */
#define X86_FEATURE_FMA
( 4*32+12)
/* Fused multiply-add */
#define X86_FEATURE_CX16
( 4*32+13)
/* CMPXCHG16B instruction
*/
#define X86_FEATURE_XTPR
( 4*32+14)
/* Send Task Priority Messages */
#define X86_FEATURE_PDCM
( 4*32+15)
/* Perf/Debug Capabilities MSR
*/
#define X86_FEATURE_PCID
( 4*32+17)
/* Process Context Identifiers */
#define X86_FEATURE_DCA
( 4*32+18)
/* Direct Cache Access */
#define X86_FEATURE_XMM4_1
( 4*32+19)
/* "sse4_1" SSE-4.1 */
#define X86_FEATURE_XMM4_2
( 4*32+20)
/* "sse4_2" SSE-4.2 */
#define X86_FEATURE_X2APIC
( 4*32+21)
/* X
2APIC */
#define X86_FEATURE_MOVBE
( 4*32+22)
/* MOVBE instruction */
#define X86_FEATURE_POPCNT
( 4*32+23)
/* POPCNT instruction */
#define X86_FEATURE_TSC_DEADLINE_TIMER ( 4*32+24)
/* T
SC
deadline timer */
#define X86_FEATURE_AES
( 4*32+25)
/* AES instructions */
#define X86_FEATURE_XSAVE
( 4*32+26)
/* XSAVE/XRSTOR/XSETBV/XGETBV instructions
*/
#define X86_FEATURE_OSXSAVE
( 4*32+27)
/* "" XSAVE instruction
enabled in the OS */
#define X86_FEATURE_AVX
( 4*32+28)
/* Advanced Vector Extensions */
#define X86_FEATURE_F16C
( 4*32+29)
/* 16-bit FP
conversions */
#define X86_FEATURE_RDRAND
( 4*32+30)
/*
RDRAND instruction */
#define X86_FEATURE_HYPERVISOR
( 4*32+31)
/* Running on a hypervisor */
/* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
#define X86_FEATURE_XSTORE ( 5*32+ 2)
/* "rng" RNG present (xstore) */
#define X86_FEATURE_XSTORE_EN ( 5*32+ 3)
/* "rng_en" RNG enabled */
#define X86_FEATURE_XCRYPT ( 5*32+ 6)
/* "ace" on-CPU crypto (xcrypt) */
#define X86_FEATURE_XCRYPT_EN ( 5*32+ 7)
/* "ace_en" on-CPU crypto enabled */
#define X86_FEATURE_ACE2 ( 5*32+ 8)
/* Advanced Cryptography Engine v2 */
#define X86_FEATURE_ACE2_EN ( 5*32+ 9)
/* ACE v2 enabled */
#define X86_FEATURE_PHE ( 5*32+10)
/* PadLock Hash Engine */
#define X86_FEATURE_PHE_EN ( 5*32+11)
/* PHE enabled */
#define X86_FEATURE_PMM ( 5*32+12)
/* PadLock Montgomery Multiplier */
#define X86_FEATURE_PMM_EN ( 5*32+13)
/* PMM enabled */
#define X86_FEATURE_XSTORE
( 5*32+ 2)
/* "rng" RNG present (xstore) */
#define X86_FEATURE_XSTORE_EN
( 5*32+ 3)
/* "rng_en" RNG enabled */
#define X86_FEATURE_XCRYPT
( 5*32+ 6)
/* "ace" on-CPU crypto (xcrypt) */
#define X86_FEATURE_XCRYPT_EN
( 5*32+ 7)
/* "ace_en" on-CPU crypto enabled */
#define X86_FEATURE_ACE2
( 5*32+ 8)
/* Advanced Cryptography Engine v2 */
#define X86_FEATURE_ACE2_EN
( 5*32+ 9)
/* ACE v2 enabled */
#define X86_FEATURE_PHE
( 5*32+10)
/* PadLock Hash Engine */
#define X86_FEATURE_PHE_EN
( 5*32+11)
/* PHE enabled */
#define X86_FEATURE_PMM
( 5*32+12)
/* PadLock Montgomery Multiplier */
#define X86_FEATURE_PMM_EN
( 5*32+13)
/* PMM enabled */
/* More extended AMD flags: CPUID level 0x80000001,
ecx
, word 6 */
#define X86_FEATURE_LAHF_LM ( 6*32+ 0)
/* LAHF/SAHF in long mode */
#define X86_FEATURE_CMP_LEGACY ( 6*32+ 1)
/* If yes HyperThreading not valid */
#define X86_FEATURE_SVM
( 6*32+ 2)
/* Secure virtual m
achine */
#define X86_FEATURE_EXTAPIC ( 6*32+ 3)
/* Extended APIC space */
#define X86_FEATURE_CR8_LEGACY ( 6*32+ 4)
/* CR8 in 32-bit mode */
#define X86_FEATURE_ABM ( 6*32+ 5)
/* Advanced bit manipulation */
#define X86_FEATURE_SSE4A ( 6*32+ 6)
/* SSE-4A */
#define X86_FEATURE_MISALIGNSSE
( 6*32+ 7)
/* Misaligned SSE mode */
#define X86_FEATURE_3DNOWPREFETCH
( 6*32+ 8)
/* 3DNow prefetch instructions */
#define X86_FEATURE_OSVW ( 6*32+ 9)
/* OS Visible Workaround */
#define X86_FEATURE_IBS ( 6*32+10)
/* Instruction Based Sampling */
#define X86_FEATURE_XOP ( 6*32+11)
/* extended AVX instructions */
#define X86_FEATURE_SKINIT ( 6*32+12)
/* SKINIT/STGI instructions */
#define X86_FEATURE_WDT ( 6*32+13)
/* Watchdog timer */
#define X86_FEATURE_LWP ( 6*32+15)
/* Light Weight Profiling */
#define X86_FEATURE_FMA4 ( 6*32+16)
/* 4 operands MAC instructions */
#define X86_FEATURE_TCE
( 6*32+17)
/* translation cache e
xtension */
#define X86_FEATURE_NODEID_MSR ( 6*32+19)
/* NodeId MSR */
#define X86_FEATURE_TBM
( 6*32+21)
/* trailing bit m
anipulations */
#define X86_FEATURE_TOPOEXT
( 6*32+22)
/* t
opology extensions CPUID leafs */
#define X86_FEATURE_PERFCTR_CORE
( 6*32+23)
/* c
ore performance counter extensions */
#define X86_FEATURE_PERFCTR_NB
( 6*32+24)
/* NB performance counter extensions */
#define X86_FEATURE_BPEXT
(6*32+26)
/* d
ata breakpoint extension */
#define X86_FEATURE_PTSC
( 6*32+27)
/* p
erformance time-stamp counter */
#define X86_FEATURE_PERFCTR_LLC ( 6*32+28)
/* Last Level Cache performance counter extensions */
#define X86_FEATURE_MWAITX
( 6*32+29)
/* MWAIT extension (MONITORX/MWAITX
) */
/* More extended AMD flags: CPUID level 0x80000001,
ECX
, word 6 */
#define X86_FEATURE_LAHF_LM
( 6*32+ 0)
/* LAHF/SAHF in long mode */
#define X86_FEATURE_CMP_LEGACY
( 6*32+ 1)
/* If yes HyperThreading not valid */
#define X86_FEATURE_SVM
( 6*32+ 2)
/* Secure Virtual M
achine */
#define X86_FEATURE_EXTAPIC
( 6*32+ 3)
/* Extended APIC space */
#define X86_FEATURE_CR8_LEGACY
( 6*32+ 4)
/* CR8 in 32-bit mode */
#define X86_FEATURE_ABM
( 6*32+ 5)
/* Advanced bit manipulation */
#define X86_FEATURE_SSE4A
( 6*32+ 6)
/* SSE-4A */
#define X86_FEATURE_MISALIGNSSE
( 6*32+ 7)
/* Misaligned SSE mode */
#define X86_FEATURE_3DNOWPREFETCH
( 6*32+ 8)
/* 3DNow prefetch instructions */
#define X86_FEATURE_OSVW
( 6*32+ 9)
/* OS Visible Workaround */
#define X86_FEATURE_IBS
( 6*32+10)
/* Instruction Based Sampling */
#define X86_FEATURE_XOP
( 6*32+11)
/* extended AVX instructions */
#define X86_FEATURE_SKINIT
( 6*32+12)
/* SKINIT/STGI instructions */
#define X86_FEATURE_WDT
( 6*32+13)
/* Watchdog timer */
#define X86_FEATURE_LWP
( 6*32+15)
/* Light Weight Profiling */
#define X86_FEATURE_FMA4
( 6*32+16)
/* 4 operands MAC instructions */
#define X86_FEATURE_TCE
( 6*32+17)
/* Translation Cache E
xtension */
#define X86_FEATURE_NODEID_MSR
( 6*32+19)
/* NodeId MSR */
#define X86_FEATURE_TBM
( 6*32+21)
/* Trailing Bit M
anipulations */
#define X86_FEATURE_TOPOEXT
( 6*32+22)
/* T
opology extensions CPUID leafs */
#define X86_FEATURE_PERFCTR_CORE
( 6*32+23)
/* C
ore performance counter extensions */
#define X86_FEATURE_PERFCTR_NB
( 6*32+24)
/* NB performance counter extensions */
#define X86_FEATURE_BPEXT
( 6*32+26)
/* D
ata breakpoint extension */
#define X86_FEATURE_PTSC
( 6*32+27)
/* P
erformance time-stamp counter */
#define X86_FEATURE_PERFCTR_LLC
( 6*32+28)
/* Last Level Cache performance counter extensions */
#define X86_FEATURE_MWAITX
( 6*32+29)
/* MWAIT extension (MONITORX/MWAITX instructions
) */
/*
* Auxiliary flags: Linux defined - For features scattered in various
...
...
@@ -187,146 +190,154 @@
*
* Reuse free bits when adding new feature flags!
*/
#define X86_FEATURE_RING3MWAIT
( 7*32+ 0)
/* Ring 3 MONITOR/MWAIT
*/
#define X86_FEATURE_CPUID_FAULT
( 7*32+ 1)
/* Intel CPUID faulting */
#define X86_FEATURE_CPB ( 7*32+ 2)
/* AMD Core Performance Boost */
#define X86_FEATURE_EPB ( 7*32+ 3)
/* IA32_ENERGY_PERF_BIAS support */
#define X86_FEATURE_CAT_L3 ( 7*32+ 4)
/* Cache Allocation Technology L3 */
#define X86_FEATURE_CAT_L2 ( 7*32+ 5)
/* Cache Allocation Technology L2 */
#define X86_FEATURE_CDP_L3 ( 7*32+ 6)
/* Code and Data Prioritization L3 */
#define X86_FEATURE_RING3MWAIT
( 7*32+ 0)
/* Ring 3 MONITOR/MWAIT instructions
*/
#define X86_FEATURE_CPUID_FAULT
( 7*32+ 1)
/* Intel CPUID faulting */
#define X86_FEATURE_CPB
( 7*32+ 2)
/* AMD Core Performance Boost */
#define X86_FEATURE_EPB
( 7*32+ 3)
/* IA32_ENERGY_PERF_BIAS support */
#define X86_FEATURE_CAT_L3
( 7*32+ 4)
/* Cache Allocation Technology L3 */
#define X86_FEATURE_CAT_L2
( 7*32+ 5)
/* Cache Allocation Technology L2 */
#define X86_FEATURE_CDP_L3
( 7*32+ 6)
/* Code and Data Prioritization L3 */
#define X86_FEATURE_HW_PSTATE ( 7*32+ 8)
/* AMD HW-PState */
#define X86_FEATURE_PROC_FEEDBACK
( 7*32+ 9)
/* AMD ProcFeedbackInterface */
#define X86_FEATURE_SME ( 7*32+10)
/* AMD Secure Memory Encryption */
#define X86_FEATURE_HW_PSTATE
( 7*32+ 8)
/* AMD HW-PState */
#define X86_FEATURE_PROC_FEEDBACK
( 7*32+ 9)
/* AMD ProcFeedbackInterface */
#define X86_FEATURE_SME
( 7*32+10)
/* AMD Secure Memory Encryption */
#define X86_FEATURE_INTEL_PPIN ( 7*32+14)
/* Intel Processor Inventory Number */
#define X86_FEATURE_INTEL_PT ( 7*32+15)
/* Intel Processor Trace */
#define X86_FEATURE_AVX512_4VNNIW
(
7*32+16)
/* AVX-512 Neural Network Instructions */
#define X86_FEATURE_AVX512_4FMAPS
(
7*32+17)
/* AVX-512 Multiply Accumulation Single precision */
#define X86_FEATURE_INTEL_PPIN
( 7*32+14)
/* Intel Processor Inventory Number */
#define X86_FEATURE_INTEL_PT
( 7*32+15)
/* Intel Processor Trace */
#define X86_FEATURE_AVX512_4VNNIW
(
7*32+16)
/* AVX-512 Neural Network Instructions */
#define X86_FEATURE_AVX512_4FMAPS
(
7*32+17)
/* AVX-512 Multiply Accumulation Single precision */
#define X86_FEATURE_MBA
( 7*32+18)
/* Memory Bandwidth Allocation */
#define X86_FEATURE_MBA
( 7*32+18)
/* Memory Bandwidth Allocation */
/* Virtualization flags: Linux defined, word 8 */
#define X86_FEATURE_TPR_SHADOW
( 8*32+ 0)
/* Intel TPR Shadow */
#define X86_FEATURE_VNMI
( 8*32+ 1)
/* Intel Virtual NMI */
#define X86_FEATURE_FLEXPRIORITY
( 8*32+ 2)
/* Intel FlexPriority */
#define X86_FEATURE_EPT
( 8*32+ 3)
/* Intel Extended Page Table */
#define X86_FEATURE_VPID
( 8*32+ 4)
/* Intel Virtual Processor ID */
#define X86_FEATURE_TPR_SHADOW
( 8*32+ 0)
/* Intel TPR Shadow */
#define X86_FEATURE_VNMI
( 8*32+ 1)
/* Intel Virtual NMI */
#define X86_FEATURE_FLEXPRIORITY
( 8*32+ 2)
/* Intel FlexPriority */
#define X86_FEATURE_EPT
( 8*32+ 3)
/* Intel Extended Page Table */
#define X86_FEATURE_VPID
( 8*32+ 4)
/* Intel Virtual Processor ID */
#define X86_FEATURE_VMMCALL
( 8*32+15)
/* Prefer vmmcall to vmcall
*/
#define X86_FEATURE_XENPV
( 8*32+16)
/* "" Xen paravirtual guest */
#define X86_FEATURE_VMMCALL
( 8*32+15)
/* Prefer VMMCALL to VMCALL
*/
#define X86_FEATURE_XENPV
( 8*32+16)
/* "" Xen paravirtual guest */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (
ebx
), word 9 */
#define X86_FEATURE_FSGSBASE
( 9*32+ 0)
/* {RD/WR}{FS/GS}
BASE instructions*/
#define X86_FEATURE_TSC_ADJUST
( 9*32+ 1)
/* TSC adjustment MSR 0x3b
*/
#define X86_FEATURE_BMI1 ( 9*32+ 3)
/* 1st group bit manipulation extensions */
#define X86_FEATURE_HLE ( 9*32+ 4)
/* Hardware Lock Elision */
#define X86_FEATURE_AVX2 ( 9*32+ 5)
/* AVX2 instructions */
#define X86_FEATURE_SMEP ( 9*32+ 7)
/* Supervisor Mode Execution Protection */
#define X86_FEATURE_BMI2 ( 9*32+ 8)
/* 2nd group bit manipulation extensions */
#define X86_FEATURE_ERMS
( 9*32+ 9)
/* Enhanced REP MOVSB/STOSB
*/
#define X86_FEATURE_INVPCID ( 9*32+10)
/* Invalidate Processor Context ID */
#define X86_FEATURE_RTM ( 9*32+11)
/* Restricted Transactional Memory */
#define X86_FEATURE_CQM ( 9*32+12)
/* Cache QoS Monitoring */
#define X86_FEATURE_MPX ( 9*32+14)
/* Memory Protection Extension */
#define X86_FEATURE_RDT_A ( 9*32+15)
/* Resource Director Technology Allocation */
#define X86_FEATURE_AVX512F ( 9*32+16)
/* AVX-512 Foundation */
#define X86_FEATURE_AVX512DQ ( 9*32+17)
/* AVX-512 DQ (Double/Quad granular) Instructions */
#define X86_FEATURE_RDSEED
( 9*32+18)
/* The
RDSEED instruction */
#define X86_FEATURE_ADX
( 9*32+19)
/* The
ADCX and ADOX instructions */
#define X86_FEATURE_SMAP ( 9*32+20)
/* Supervisor Mode Access Prevention */
#define X86_FEATURE_AVX512IFMA
( 9*32+21)
/* AVX-512 Integer Fused Multiply-Add instructions */
#define X86_FEATURE_CLFLUSHOPT ( 9*32+23)
/* CLFLUSHOPT instruction */
#define X86_FEATURE_CLWB ( 9*32+24)
/* CLWB instruction */
#define X86_FEATURE_AVX512PF ( 9*32+26)
/* AVX-512 Prefetch */
#define X86_FEATURE_AVX512ER ( 9*32+27)
/* AVX-512 Exponential and Reciprocal */
#define X86_FEATURE_AVX512CD ( 9*32+28)
/* AVX-512 Conflict Detection */
#define X86_FEATURE_SHA_NI ( 9*32+29)
/* SHA1/SHA256 Instruction Extensions */
#define X86_FEATURE_AVX512BW ( 9*32+30)
/* AVX-512 BW (Byte/Word granular) Instructions */
#define X86_FEATURE_AVX512VL ( 9*32+31)
/* AVX-512 VL (128/256 Vector Length) Extensions */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (
EBX
), word 9 */
#define X86_FEATURE_FSGSBASE
( 9*32+ 0)
/* RDFSBASE, WRFSBASE, RDGSBASE, WRGS
BASE instructions*/
#define X86_FEATURE_TSC_ADJUST
( 9*32+ 1)
/* TSC adjustment MSR 0x3B
*/
#define X86_FEATURE_BMI1
( 9*32+ 3)
/* 1st group bit manipulation extensions */
#define X86_FEATURE_HLE
( 9*32+ 4)
/* Hardware Lock Elision */
#define X86_FEATURE_AVX2
( 9*32+ 5)
/* AVX2 instructions */
#define X86_FEATURE_SMEP
( 9*32+ 7)
/* Supervisor Mode Execution Protection */
#define X86_FEATURE_BMI2
( 9*32+ 8)
/* 2nd group bit manipulation extensions */
#define X86_FEATURE_ERMS
( 9*32+ 9)
/* Enhanced REP MOVSB/STOSB instructions
*/
#define X86_FEATURE_INVPCID
( 9*32+10)
/* Invalidate Processor Context ID */
#define X86_FEATURE_RTM
( 9*32+11)
/* Restricted Transactional Memory */
#define X86_FEATURE_CQM
( 9*32+12)
/* Cache QoS Monitoring */
#define X86_FEATURE_MPX
( 9*32+14)
/* Memory Protection Extension */
#define X86_FEATURE_RDT_A
( 9*32+15)
/* Resource Director Technology Allocation */
#define X86_FEATURE_AVX512F
( 9*32+16)
/* AVX-512 Foundation */
#define X86_FEATURE_AVX512DQ
( 9*32+17)
/* AVX-512 DQ (Double/Quad granular) Instructions */
#define X86_FEATURE_RDSEED
( 9*32+18)
/*
RDSEED instruction */
#define X86_FEATURE_ADX
( 9*32+19)
/*
ADCX and ADOX instructions */
#define X86_FEATURE_SMAP
( 9*32+20)
/* Supervisor Mode Access Prevention */
#define X86_FEATURE_AVX512IFMA
( 9*32+21)
/* AVX-512 Integer Fused Multiply-Add instructions */
#define X86_FEATURE_CLFLUSHOPT
( 9*32+23)
/* CLFLUSHOPT instruction */
#define X86_FEATURE_CLWB
( 9*32+24)
/* CLWB instruction */
#define X86_FEATURE_AVX512PF
( 9*32+26)
/* AVX-512 Prefetch */
#define X86_FEATURE_AVX512ER
( 9*32+27)
/* AVX-512 Exponential and Reciprocal */
#define X86_FEATURE_AVX512CD
( 9*32+28)
/* AVX-512 Conflict Detection */
#define X86_FEATURE_SHA_NI
( 9*32+29)
/* SHA1/SHA256 Instruction Extensions */
#define X86_FEATURE_AVX512BW
( 9*32+30)
/* AVX-512 BW (Byte/Word granular) Instructions */
#define X86_FEATURE_AVX512VL
( 9*32+31)
/* AVX-512 VL (128/256 Vector Length) Extensions */
/* Extended state features, CPUID level 0x0000000d:1 (
eax
), word 10 */
#define X86_FEATURE_XSAVEOPT
(10*32+ 0)
/* XSAVEOPT
*/
#define X86_FEATURE_XSAVEC
(10*32+ 1)
/* XSAVEC
*/
#define X86_FEATURE_XGETBV1
(10*32+ 2)
/* XGETBV with ECX = 1
*/
#define X86_FEATURE_XSAVES
(10*32+ 3)
/* XSAVES/XRSTORS
*/
/* Extended state features, CPUID level 0x0000000d:1 (
EAX
), word 10 */
#define X86_FEATURE_XSAVEOPT
(10*32+ 0)
/* XSAVEOPT instruction
*/
#define X86_FEATURE_XSAVEC
(10*32+ 1)
/* XSAVEC instruction
*/
#define X86_FEATURE_XGETBV1
(10*32+ 2)
/* XGETBV with ECX = 1 instruction
*/
#define X86_FEATURE_XSAVES
(10*32+ 3)
/* XSAVES/XRSTORS instructions
*/
/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:0 (
edx
), word 11 */
#define X86_FEATURE_CQM_LLC (11*32+ 1)
/* LLC QoS if 1 */
/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:0 (
EDX
), word 11 */
#define X86_FEATURE_CQM_LLC
(11*32+ 1)
/* LLC QoS if 1 */
/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:1 (
edx
), word 12 */
#define X86_FEATURE_CQM_OCCUP_LLC
(12*32+ 0)
/* LLC occupancy monitoring if 1
*/
#define X86_FEATURE_CQM_MBM_TOTAL
(12*32+ 1)
/* LLC Total MBM monitoring */
#define X86_FEATURE_CQM_MBM_LOCAL
(12*32+ 2)
/* LLC Local MBM monitoring */
/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:1 (
EDX
), word 12 */
#define X86_FEATURE_CQM_OCCUP_LLC
(12*32+ 0)
/* LLC occupancy monitoring
*/
#define X86_FEATURE_CQM_MBM_TOTAL
(12*32+ 1)
/* LLC Total MBM monitoring */
#define X86_FEATURE_CQM_MBM_LOCAL
(12*32+ 2)
/* LLC Local MBM monitoring */
/* AMD-defined CPU features, CPUID level 0x80000008 (
ebx
), word 13 */
#define X86_FEATURE_CLZERO
(13*32+
0)
/* CLZERO instruction */
#define X86_FEATURE_IRPERF
(13*32+
1)
/* Instructions Retired Count */
/* AMD-defined CPU features, CPUID level 0x80000008 (
EBX
), word 13 */
#define X86_FEATURE_CLZERO
(13*32+
0)
/* CLZERO instruction */
#define X86_FEATURE_IRPERF
(13*32+
1)
/* Instructions Retired Count */
/* Thermal and Power Management Leaf, CPUID level 0x00000006 (
eax
), word 14 */
#define X86_FEATURE_DTHERM (14*32+ 0)
/* Digital Thermal Sensor */
#define X86_FEATURE_IDA (14*32+ 1)
/* Intel Dynamic Acceleration */
#define X86_FEATURE_ARAT (14*32+ 2)
/* Always Running APIC Timer */
#define X86_FEATURE_PLN (14*32+ 4)
/* Intel Power Limit Notification */
#define X86_FEATURE_PTS (14*32+ 6)
/* Intel Package Thermal Status */
#define X86_FEATURE_HWP (14*32+ 7)
/* Intel Hardware P-states */
#define X86_FEATURE_HWP_NOTIFY (14*32+ 8)
/* HWP Notification */
#define X86_FEATURE_HWP_ACT_WINDOW
(14*32+ 9)
/* HWP Activity Window */
#define X86_FEATURE_HWP_EPP (14*32+10)
/* HWP Energy Perf. Preference */
#define X86_FEATURE_HWP_PKG_REQ
(14*32+11)
/* HWP Package Level Request */
/* Thermal and Power Management Leaf, CPUID level 0x00000006 (
EAX
), word 14 */
#define X86_FEATURE_DTHERM
(14*32+ 0)
/* Digital Thermal Sensor */
#define X86_FEATURE_IDA
(14*32+ 1)
/* Intel Dynamic Acceleration */
#define X86_FEATURE_ARAT
(14*32+ 2)
/* Always Running APIC Timer */
#define X86_FEATURE_PLN
(14*32+ 4)
/* Intel Power Limit Notification */
#define X86_FEATURE_PTS
(14*32+ 6)
/* Intel Package Thermal Status */
#define X86_FEATURE_HWP
(14*32+ 7)
/* Intel Hardware P-states */
#define X86_FEATURE_HWP_NOTIFY
(14*32+ 8)
/* HWP Notification */
#define X86_FEATURE_HWP_ACT_WINDOW
(14*32+ 9)
/* HWP Activity Window */
#define X86_FEATURE_HWP_EPP
(14*32+10)
/* HWP Energy Perf. Preference */
#define X86_FEATURE_HWP_PKG_REQ
(14*32+11)
/* HWP Package Level Request */
/* AMD SVM Feature Identification, CPUID level 0x8000000a (
edx
), word 15 */
#define X86_FEATURE_NPT (15*32+ 0)
/* Nested Page Table support */
#define X86_FEATURE_LBRV (15*32+ 1)
/* LBR Virtualization support */
#define X86_FEATURE_SVML (15*32+ 2)
/* "svm_lock" SVM locking MSR */
#define X86_FEATURE_NRIPS (15*32+ 3)
/* "nrip_save" SVM next_rip save */
#define X86_FEATURE_TSCRATEMSR
(15*32+ 4)
/* "tsc_scale" TSC scaling support */
#define X86_FEATURE_VMCBCLEAN
(15*32+ 5)
/* "vmcb_clean" VMCB clean bits support */
#define X86_FEATURE_FLUSHBYASID
(15*32+ 6)
/* flush-by-ASID support */
#define X86_FEATURE_DECODEASSISTS
(15*32+ 7)
/* Decode Assists support */
#define X86_FEATURE_PAUSEFILTER
(15*32+10)
/* filtered pause intercept */
#define X86_FEATURE_PFTHRESHOLD
(15*32+12)
/* pause filter threshold */
#define X86_FEATURE_AVIC (15*32+13)
/* Virtual Interrupt Controller */
#define X86_FEATURE_V_VMSAVE_VMLOAD
(15*32+15)
/* Virtual VMSAVE VMLOAD */
#define X86_FEATURE_VGIF (15*32+16)
/* Virtual GIF */
/* AMD SVM Feature Identification, CPUID level 0x8000000a (
EDX
), word 15 */
#define X86_FEATURE_NPT
(15*32+ 0)
/* Nested Page Table support */
#define X86_FEATURE_LBRV
(15*32+ 1)
/* LBR Virtualization support */
#define X86_FEATURE_SVML
(15*32+ 2)
/* "svm_lock" SVM locking MSR */
#define X86_FEATURE_NRIPS
(15*32+ 3)
/* "nrip_save" SVM next_rip save */
#define X86_FEATURE_TSCRATEMSR
(15*32+ 4)
/* "tsc_scale" TSC scaling support */
#define X86_FEATURE_VMCBCLEAN
(15*32+ 5)
/* "vmcb_clean" VMCB clean bits support */
#define X86_FEATURE_FLUSHBYASID
(15*32+ 6)
/* flush-by-ASID support */
#define X86_FEATURE_DECODEASSISTS
(15*32+ 7)
/* Decode Assists support */
#define X86_FEATURE_PAUSEFILTER
(15*32+10)
/* filtered pause intercept */
#define X86_FEATURE_PFTHRESHOLD
(15*32+12)
/* pause filter threshold */
#define X86_FEATURE_AVIC
(15*32+13)
/* Virtual Interrupt Controller */
#define X86_FEATURE_V_VMSAVE_VMLOAD
(15*32+15)
/* Virtual VMSAVE VMLOAD */
#define X86_FEATURE_VGIF
(15*32+16)
/* Virtual GIF */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (ecx), word 16 */
#define X86_FEATURE_AVX512VBMI (16*32+ 1)
/* AVX512 Vector Bit Manipulation instructions*/
#define X86_FEATURE_PKU (16*32+ 3)
/* Protection Keys for Userspace */
#define X86_FEATURE_OSPKE (16*32+ 4)
/* OS Protection Keys Enable */
#define X86_FEATURE_AVX512_VPOPCNTDQ (16*32+14)
/* POPCNT for vectors of DW/QW */
#define X86_FEATURE_LA57 (16*32+16)
/* 5-level page tables */
#define X86_FEATURE_RDPID (16*32+22)
/* RDPID instruction */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (ECX), word 16 */
#define X86_FEATURE_AVX512VBMI (16*32+ 1)
/* AVX512 Vector Bit Manipulation instructions*/
#define X86_FEATURE_UMIP (16*32+ 2)
/* User Mode Instruction Protection */
#define X86_FEATURE_PKU (16*32+ 3)
/* Protection Keys for Userspace */
#define X86_FEATURE_OSPKE (16*32+ 4)
/* OS Protection Keys Enable */
#define X86_FEATURE_AVX512_VBMI2 (16*32+ 6)
/* Additional AVX512 Vector Bit Manipulation Instructions */
#define X86_FEATURE_GFNI (16*32+ 8)
/* Galois Field New Instructions */
#define X86_FEATURE_VAES (16*32+ 9)
/* Vector AES */
#define X86_FEATURE_VPCLMULQDQ (16*32+10)
/* Carry-Less Multiplication Double Quadword */
#define X86_FEATURE_AVX512_VNNI (16*32+11)
/* Vector Neural Network Instructions */
#define X86_FEATURE_AVX512_BITALG (16*32+12)
/* Support for VPOPCNT[B,W] and VPSHUF-BITQMB instructions */
#define X86_FEATURE_AVX512_VPOPCNTDQ (16*32+14)
/* POPCNT for vectors of DW/QW */
#define X86_FEATURE_LA57 (16*32+16)
/* 5-level page tables */
#define X86_FEATURE_RDPID (16*32+22)
/* RDPID instruction */
/* AMD-defined CPU features, CPUID level 0x80000007 (
ebx
), word 17 */
#define X86_FEATURE_OVERFLOW_RECOV
(17*32+
0)
/* MCA overflow recovery support */
#define X86_FEATURE_SUCCOR
(17*32+
1)
/* Uncorrectable error containment and recovery */
#define X86_FEATURE_SMCA
(17*32+
3)
/* Scalable MCA */
/* AMD-defined CPU features, CPUID level 0x80000007 (
EBX
), word 17 */
#define X86_FEATURE_OVERFLOW_RECOV
(17*32+
0)
/* MCA overflow recovery support */
#define X86_FEATURE_SUCCOR
(17*32+
1)
/* Uncorrectable error containment and recovery */
#define X86_FEATURE_SMCA
(17*32+
3)
/* Scalable MCA */
/*
* BUG word(s)
*/
#define X86_BUG(x) (NCAPINTS*32 + (x))
#define X86_BUG(x)
(NCAPINTS*32 + (x))
#define X86_BUG_F00F X86_BUG(0)
/* Intel F00F */
#define X86_BUG_FDIV X86_BUG(1)
/* FPU FDIV */
#define X86_BUG_COMA X86_BUG(2)
/* Cyrix 6x86 coma */
#define X86_BUG_AMD_TLB_MMATCH X86_BUG(3)
/* "tlb_mmatch" AMD Erratum 383 */
#define X86_BUG_AMD_APIC_C1E X86_BUG(4)
/* "apic_c1e" AMD Erratum 400 */
#define X86_BUG_11AP X86_BUG(5)
/* Bad local APIC aka 11AP */
#define X86_BUG_FXSAVE_LEAK X86_BUG(6)
/* FXSAVE leaks FOP/FIP/FOP */
#define X86_BUG_CLFLUSH_MONITOR X86_BUG(7)
/* AAI65, CLFLUSH required before MONITOR */
#define X86_BUG_SYSRET_SS_ATTRS X86_BUG(8)
/* SYSRET doesn't fix up SS attrs */
#define X86_BUG_F00F
X86_BUG(0)
/* Intel F00F */
#define X86_BUG_FDIV
X86_BUG(1)
/* FPU FDIV */
#define X86_BUG_COMA
X86_BUG(2)
/* Cyrix 6x86 coma */
#define X86_BUG_AMD_TLB_MMATCH
X86_BUG(3)
/* "tlb_mmatch" AMD Erratum 383 */
#define X86_BUG_AMD_APIC_C1E
X86_BUG(4)
/* "apic_c1e" AMD Erratum 400 */
#define X86_BUG_11AP
X86_BUG(5)
/* Bad local APIC aka 11AP */
#define X86_BUG_FXSAVE_LEAK
X86_BUG(6)
/* FXSAVE leaks FOP/FIP/FOP */
#define X86_BUG_CLFLUSH_MONITOR
X86_BUG(7)
/* AAI65, CLFLUSH required before MONITOR */
#define X86_BUG_SYSRET_SS_ATTRS
X86_BUG(8)
/* SYSRET doesn't fix up SS attrs */
#ifdef CONFIG_X86_32
/*
* 64-bit kernels don't use X86_BUG_ESPFIX. Make the define conditional
* to avoid confusion.
*/
#define X86_BUG_ESPFIX X86_BUG(9)
/* "" IRET to 16-bit SS corrupts ESP/RSP high bits */
#define X86_BUG_ESPFIX
X86_BUG(9)
/* "" IRET to 16-bit SS corrupts ESP/RSP high bits */
#endif
#define X86_BUG_NULL_SEG X86_BUG(10)
/* Nulling a selector preserves the base */
#define X86_BUG_SWAPGS_FENCE X86_BUG(11)
/* SWAPGS without input dep on GS */
#define X86_BUG_MONITOR X86_BUG(12)
/* IPI required to wake up remote CPU */
#define X86_BUG_AMD_E400 X86_BUG(13)
/* CPU is among the affected by Erratum 400 */
#define X86_BUG_NULL_SEG X86_BUG(10)
/* Nulling a selector preserves the base */
#define X86_BUG_SWAPGS_FENCE X86_BUG(11)
/* SWAPGS without input dep on GS */
#define X86_BUG_MONITOR X86_BUG(12)
/* IPI required to wake up remote CPU */
#define X86_BUG_AMD_E400 X86_BUG(13)
/* CPU is among the affected by Erratum 400 */
#endif
/* _ASM_X86_CPUFEATURES_H */
tools/arch/x86/include/asm/disabled-features.h
浏览文件 @
e4f57147
...
...
@@ -16,6 +16,12 @@
# define DISABLE_MPX (1<<(X86_FEATURE_MPX & 31))
#endif
#ifdef CONFIG_X86_INTEL_UMIP
# define DISABLE_UMIP 0
#else
# define DISABLE_UMIP (1<<(X86_FEATURE_UMIP & 31))
#endif
#ifdef CONFIG_X86_64
# define DISABLE_VME (1<<(X86_FEATURE_VME & 31))
# define DISABLE_K6_MTRR (1<<(X86_FEATURE_K6_MTRR & 31))
...
...
@@ -63,7 +69,7 @@
#define DISABLED_MASK13 0
#define DISABLED_MASK14 0
#define DISABLED_MASK15 0
#define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57)
#define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57
|DISABLE_UMIP
)
#define DISABLED_MASK17 0
#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 18)
...
...
tools/include/uapi/asm-generic/mman.h
浏览文件 @
e4f57147
...
...
@@ -13,6 +13,7 @@
#define MAP_NONBLOCK 0x10000
/* do not block on IO */
#define MAP_STACK 0x20000
/* give out an address that is best suited for process/thread stacks */
#define MAP_HUGETLB 0x40000
/* create a huge page mapping */
#define MAP_SYNC 0x80000
/* perform synchronous page faults for the mapping */
/* Bits [26:31] are reserved, see mman-common.h for MAP_HUGETLB usage */
...
...
tools/include/uapi/drm/drm.h
浏览文件 @
e4f57147
...
...
@@ -737,6 +737,28 @@ struct drm_syncobj_array {
__u32
pad
;
};
/* Query current scanout sequence number */
struct
drm_crtc_get_sequence
{
__u32
crtc_id
;
/* requested crtc_id */
__u32
active
;
/* return: crtc output is active */
__u64
sequence
;
/* return: most recent vblank sequence */
__s64
sequence_ns
;
/* return: most recent time of first pixel out */
};
/* Queue event to be delivered at specified sequence. Time stamp marks
* when the first pixel of the refresh cycle leaves the display engine
* for the display
*/
#define DRM_CRTC_SEQUENCE_RELATIVE 0x00000001
/* sequence is relative to current */
#define DRM_CRTC_SEQUENCE_NEXT_ON_MISS 0x00000002
/* Use next sequence if we've missed */
struct
drm_crtc_queue_sequence
{
__u32
crtc_id
;
__u32
flags
;
__u64
sequence
;
/* on input, target sequence. on output, actual sequence */
__u64
user_data
;
/* user data passed to event */
};
#if defined(__cplusplus)
}
#endif
...
...
@@ -819,6 +841,9 @@ extern "C" {
#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank)
#define DRM_IOCTL_CRTC_GET_SEQUENCE DRM_IOWR(0x3b, struct drm_crtc_get_sequence)
#define DRM_IOCTL_CRTC_QUEUE_SEQUENCE DRM_IOWR(0x3c, struct drm_crtc_queue_sequence)
#define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, struct drm_update_draw)
#define DRM_IOCTL_MODE_GETRESOURCES DRM_IOWR(0xA0, struct drm_mode_card_res)
...
...
@@ -863,6 +888,11 @@ extern "C" {
#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array)
#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array)
#define DRM_IOCTL_MODE_CREATE_LEASE DRM_IOWR(0xC6, struct drm_mode_create_lease)
#define DRM_IOCTL_MODE_LIST_LESSEES DRM_IOWR(0xC7, struct drm_mode_list_lessees)
#define DRM_IOCTL_MODE_GET_LEASE DRM_IOWR(0xC8, struct drm_mode_get_lease)
#define DRM_IOCTL_MODE_REVOKE_LEASE DRM_IOWR(0xC9, struct drm_mode_revoke_lease)
/**
* Device specific ioctls should only be in their respective headers
* The device specific ioctl range is from 0x40 to 0x9f.
...
...
@@ -893,6 +923,7 @@ struct drm_event {
#define DRM_EVENT_VBLANK 0x01
#define DRM_EVENT_FLIP_COMPLETE 0x02
#define DRM_EVENT_CRTC_SEQUENCE 0x03
struct
drm_event_vblank
{
struct
drm_event
base
;
...
...
@@ -903,6 +934,16 @@ struct drm_event_vblank {
__u32
crtc_id
;
/* 0 on older kernels that do not support this */
};
/* Event delivered at sequence. Time stamp marks when the first pixel
* of the refresh cycle leaves the display engine for the display
*/
struct
drm_event_crtc_sequence
{
struct
drm_event
base
;
__u64
user_data
;
__s64
time_ns
;
__u64
sequence
;
};
/* typedef area */
#ifndef __KERNEL__
typedef
struct
drm_clip_rect
drm_clip_rect_t
;
...
...
tools/include/uapi/drm/i915_drm.h
浏览文件 @
e4f57147
...
...
@@ -397,10 +397,20 @@ typedef struct drm_i915_irq_wait {
#define I915_PARAM_MIN_EU_IN_POOL 39
#define I915_PARAM_MMAP_GTT_VERSION 40
/* Query whether DRM_I915_GEM_EXECBUFFER2 supports user defined execution
/*
* Query whether DRM_I915_GEM_EXECBUFFER2 supports user defined execution
* priorities and the driver will attempt to execute batches in priority order.
* The param returns a capability bitmask, nonzero implies that the scheduler
* is enabled, with different features present according to the mask.
*
* The initial priority for each batch is supplied by the context and is
* controlled via I915_CONTEXT_PARAM_PRIORITY.
*/
#define I915_PARAM_HAS_SCHEDULER 41
#define I915_SCHEDULER_CAP_ENABLED (1ul << 0)
#define I915_SCHEDULER_CAP_PRIORITY (1ul << 1)
#define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
#define I915_PARAM_HUC_STATUS 42
/* Query whether DRM_I915_GEM_EXECBUFFER2 supports the ability to opt-out of
...
...
@@ -1309,14 +1319,16 @@ struct drm_i915_reg_read {
* be specified
*/
__u64
offset
;
#define I915_REG_READ_8B_WA (1ul << 0)
__u64
val
;
/* Return value */
};
/* Known registers:
*
* Render engine timestamp - 0x2358 + 64bit - gen7+
* - Note this register returns an invalid value if using the default
* single instruction 8byte read, in order to workaround that
use
*
offset (0x2538 | 1) instea
d.
* single instruction 8byte read, in order to workaround that
pass
*
flag I915_REG_READ_8B_WA in offset fiel
d.
*
*/
...
...
@@ -1359,6 +1371,10 @@ struct drm_i915_gem_context_param {
#define I915_CONTEXT_PARAM_GTT_SIZE 0x3
#define I915_CONTEXT_PARAM_NO_ERROR_CAPTURE 0x4
#define I915_CONTEXT_PARAM_BANNABLE 0x5
#define I915_CONTEXT_PARAM_PRIORITY 0x6
#define I915_CONTEXT_MAX_USER_PRIORITY 1023
/* inclusive */
#define I915_CONTEXT_DEFAULT_PRIORITY 0
#define I915_CONTEXT_MIN_USER_PRIORITY -1023
/* inclusive */
__u64
value
;
};
...
...
@@ -1510,9 +1526,14 @@ struct drm_i915_perf_oa_config {
__u32
n_boolean_regs
;
__u32
n_flex_regs
;
__u64
__user
mux_regs_ptr
;
__u64
__user
boolean_regs_ptr
;
__u64
__user
flex_regs_ptr
;
/*
* These fields are pointers to tuples of u32 values (register
* address, value). For example the expected length of the buffer
* pointed by mux_regs_ptr is (2 * sizeof(u32) * n_mux_regs).
*/
__u64
mux_regs_ptr
;
__u64
boolean_regs_ptr
;
__u64
flex_regs_ptr
;
};
#if defined(__cplusplus)
...
...
tools/include/uapi/linux/kvm.h
浏览文件 @
e4f57147
...
...
@@ -931,6 +931,7 @@ struct kvm_ppc_resize_hpt {
#define KVM_CAP_PPC_SMT_POSSIBLE 147
#define KVM_CAP_HYPERV_SYNIC2 148
#define KVM_CAP_HYPERV_VP_INDEX 149
#define KVM_CAP_S390_AIS_MIGRATION 150
#ifdef KVM_CAP_IRQ_ROUTING
...
...
tools/include/uapi/linux/perf_event.h
浏览文件 @
e4f57147
...
...
@@ -942,6 +942,7 @@ enum perf_callchain_context {
#define PERF_AUX_FLAG_TRUNCATED 0x01
/* record was truncated to fit */
#define PERF_AUX_FLAG_OVERWRITE 0x02
/* snapshot from overwrite mode */
#define PERF_AUX_FLAG_PARTIAL 0x04
/* record contains gaps */
#define PERF_AUX_FLAG_COLLISION 0x08
/* sample collided with another */
#define PERF_FLAG_FD_NO_GROUP (1UL << 0)
#define PERF_FLAG_FD_OUTPUT (1UL << 1)
...
...
tools/include/uapi/linux/prctl.h
浏览文件 @
e4f57147
...
...
@@ -198,4 +198,13 @@ struct prctl_mm_map {
# define PR_CAP_AMBIENT_LOWER 3
# define PR_CAP_AMBIENT_CLEAR_ALL 4
/* arm64 Scalable Vector Extension controls */
/* Flag values must be kept in sync with ptrace NT_ARM_SVE interface */
#define PR_SVE_SET_VL 50
/* set task vector length */
# define PR_SVE_SET_VL_ONEXEC (1 << 18)
/* defer effect until exec */
#define PR_SVE_GET_VL 51
/* get task vector length */
/* Bits common to PR_SVE_SET_VL and PR_SVE_GET_VL */
# define PR_SVE_VL_LEN_MASK 0xffff
# define PR_SVE_VL_INHERIT (1 << 17)
/* inherit across exec */
#endif
/* _LINUX_PRCTL_H */
tools/perf/bench/numa.c
浏览文件 @
e4f57147
...
...
@@ -216,6 +216,47 @@ static const char * const numa_usage[] = {
NULL
};
/*
* To get number of numa nodes present.
*/
static
int
nr_numa_nodes
(
void
)
{
int
i
,
nr_nodes
=
0
;
for
(
i
=
0
;
i
<
g
->
p
.
nr_nodes
;
i
++
)
{
if
(
numa_bitmask_isbitset
(
numa_nodes_ptr
,
i
))
nr_nodes
++
;
}
return
nr_nodes
;
}
/*
* To check if given numa node is present.
*/
static
int
is_node_present
(
int
node
)
{
return
numa_bitmask_isbitset
(
numa_nodes_ptr
,
node
);
}
/*
* To check given numa node has cpus.
*/
static
bool
node_has_cpus
(
int
node
)
{
struct
bitmask
*
cpu
=
numa_allocate_cpumask
();
unsigned
int
i
;
if
(
cpu
&&
!
numa_node_to_cpus
(
node
,
cpu
))
{
for
(
i
=
0
;
i
<
cpu
->
size
;
i
++
)
{
if
(
numa_bitmask_isbitset
(
cpu
,
i
))
return
true
;
}
}
return
false
;
/* lets fall back to nocpus safely */
}
static
cpu_set_t
bind_to_cpu
(
int
target_cpu
)
{
cpu_set_t
orig_mask
,
mask
;
...
...
@@ -244,12 +285,12 @@ static cpu_set_t bind_to_cpu(int target_cpu)
static
cpu_set_t
bind_to_node
(
int
target_node
)
{
int
cpus_per_node
=
g
->
p
.
nr_cpus
/
g
->
p
.
nr_nodes
;
int
cpus_per_node
=
g
->
p
.
nr_cpus
/
nr_numa_nodes
()
;
cpu_set_t
orig_mask
,
mask
;
int
cpu
;
int
ret
;
BUG_ON
(
cpus_per_node
*
g
->
p
.
nr_nodes
!=
g
->
p
.
nr_cpus
);
BUG_ON
(
cpus_per_node
*
nr_numa_nodes
()
!=
g
->
p
.
nr_cpus
);
BUG_ON
(
!
cpus_per_node
);
ret
=
sched_getaffinity
(
0
,
sizeof
(
orig_mask
),
&
orig_mask
);
...
...
@@ -649,7 +690,7 @@ static int parse_setup_node_list(void)
int
i
;
for
(
i
=
0
;
i
<
mul
;
i
++
)
{
if
(
t
>=
g
->
p
.
nr_tasks
)
{
if
(
t
>=
g
->
p
.
nr_tasks
||
!
node_has_cpus
(
bind_node
)
)
{
printf
(
"
\n
# NOTE: ignoring bind NODEs starting at NODE#%d
\n
"
,
bind_node
);
goto
out
;
}
...
...
@@ -964,6 +1005,8 @@ static void calc_convergence(double runtime_ns_max, double *convergence)
sum
=
0
;
for
(
node
=
0
;
node
<
g
->
p
.
nr_nodes
;
node
++
)
{
if
(
!
is_node_present
(
node
))
continue
;
nr
=
nodes
[
node
];
nr_min
=
min
(
nr
,
nr_min
);
nr_max
=
max
(
nr
,
nr_max
);
...
...
@@ -984,8 +1027,11 @@ static void calc_convergence(double runtime_ns_max, double *convergence)
process_groups
=
0
;
for
(
node
=
0
;
node
<
g
->
p
.
nr_nodes
;
node
++
)
{
int
processes
=
count_node_processes
(
node
)
;
int
processes
;
if
(
!
is_node_present
(
node
))
continue
;
processes
=
count_node_processes
(
node
);
nr
=
nodes
[
node
];
tprintf
(
" %2d/%-2d"
,
nr
,
processes
);
...
...
@@ -1291,7 +1337,7 @@ static void print_summary(void)
printf
(
"
\n
###
\n
"
);
printf
(
" # %d %s will execute (on %d nodes, %d CPUs):
\n
"
,
g
->
p
.
nr_tasks
,
g
->
p
.
nr_tasks
==
1
?
"task"
:
"tasks"
,
g
->
p
.
nr_nodes
,
g
->
p
.
nr_cpus
);
g
->
p
.
nr_tasks
,
g
->
p
.
nr_tasks
==
1
?
"task"
:
"tasks"
,
nr_numa_nodes
()
,
g
->
p
.
nr_cpus
);
printf
(
" # %5dx %5ldMB global shared mem operations
\n
"
,
g
->
p
.
nr_loops
,
g
->
p
.
bytes_global
/
1024
/
1024
);
printf
(
" # %5dx %5ldMB process shared mem operations
\n
"
,
...
...
tools/perf/tests/task-exit.c
浏览文件 @
e4f57147
...
...
@@ -84,7 +84,11 @@ int test__task_exit(struct test *test __maybe_unused, int subtest __maybe_unused
evsel
=
perf_evlist__first
(
evlist
);
evsel
->
attr
.
task
=
1
;
#ifdef __s390x__
evsel
->
attr
.
sample_freq
=
1000000
;
#else
evsel
->
attr
.
sample_freq
=
1
;
#endif
evsel
->
attr
.
inherit
=
0
;
evsel
->
attr
.
watermark
=
0
;
evsel
->
attr
.
wakeup_events
=
1
;
...
...
tools/perf/trace/beauty/mmap.c
浏览文件 @
e4f57147
...
...
@@ -62,6 +62,9 @@ static size_t syscall_arg__scnprintf_mmap_flags(char *bf, size_t size,
P_MMAP_FLAG
(
POPULATE
);
P_MMAP_FLAG
(
STACK
);
P_MMAP_FLAG
(
UNINITIALIZED
);
#ifdef MAP_SYNC
P_MMAP_FLAG
(
SYNC
);
#endif
#undef P_MMAP_FLAG
if
(
flags
)
...
...
tools/perf/util/intel-pt-decoder/inat.h
浏览文件 @
e4f57147
...
...
@@ -97,6 +97,16 @@
#define INAT_MAKE_GROUP(grp) ((grp << INAT_GRP_OFFS) | INAT_MODRM)
#define INAT_MAKE_IMM(imm) (imm << INAT_IMM_OFFS)
/* Identifiers for segment registers */
#define INAT_SEG_REG_IGNORE 0
#define INAT_SEG_REG_DEFAULT 1
#define INAT_SEG_REG_CS 2
#define INAT_SEG_REG_SS 3
#define INAT_SEG_REG_DS 4
#define INAT_SEG_REG_ES 5
#define INAT_SEG_REG_FS 6
#define INAT_SEG_REG_GS 7
/* Attribute search APIs */
extern
insn_attr_t
inat_get_opcode_attribute
(
insn_byte_t
opcode
);
extern
int
inat_get_last_prefix_id
(
insn_byte_t
last_pfx
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录