Displaying 9 results from an estimated 9 matches for "x86_feature_rdtscp".
2007 Feb 01
0
[PATCH] hide RDTSCP feature flag from PV guests
...:25:28.000000000 +0100
@@ -597,6 +597,11 @@ static int emulate_forced_invalid_op(str
if ( !IS_PRIV(current->domain) )
clear_bit(X86_FEATURE_MTRR, &d);
}
+ else if ( regs->eax == 0x80000001 )
+ {
+ /* Modify Feature Information. */
+ clear_bit(X86_FEATURE_RDTSCP % 32, &d);
+ }
else
{
(void)cpuid_hypervisor_leaves(regs->eax, &a, &b, &c, &d);
Index: 2007-01-16/xen/include/asm-x86/cpufeature.h
===================================================================
--- 2007-01-16.orig/xen/include/asm-x86/cpufeature.h 20...
2019 Mar 30
1
[PATCH 2/5] x86: Convert some slow-path static_cpu_has() callers to boot_cpu_has()
...on.c
index cb28e98a0659..95a5faf3a6a0 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1668,7 +1668,7 @@ static void setup_getcpu(int cpu)
unsigned long cpudata = vdso_encode_cpunode(cpu, early_cpu_to_node(cpu));
struct desc_struct d = { };
- if (static_cpu_has(X86_FEATURE_RDTSCP))
+ if (boot_cpu_has(X86_FEATURE_RDTSCP))
write_rdtscp_aux(cpudata);
/* Store CPU and node number in limit. */
diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c
index 3f82afd0f46f..a6026170af92 100644
--- a/arch/x86/kernel/cpu/mce/inject.c
+++ b/arch/x86/kernel...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 14/17] paravirt_ops - vsyscall
...A" (dummy), "=c" (p));
} else {
/* Load per CPU data from GDT */
asm("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG));
@@ -256,7 +257,11 @@ static void __cpuinit vsyscall_set_cpu(i
node = cpu_to_node[cpu];
#endif
if (cpu_has(&cpu_data[cpu], X86_FEATURE_RDTSCP))
- write_rdtscp_aux((node << 12) | cpu);
+ /* This is write_rdtscp_aux. It cannot be called directly
+ * due to the paravirt indirection */
+ asm("wrmsr" : /* no output */
+ : "d"(0),
+ "a" ((node << 12) | cpu), "c" (0xc0000103)...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 14/17] paravirt_ops - vsyscall
...A" (dummy), "=c" (p));
} else {
/* Load per CPU data from GDT */
asm("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG));
@@ -256,7 +257,11 @@ static void __cpuinit vsyscall_set_cpu(i
node = cpu_to_node[cpu];
#endif
if (cpu_has(&cpu_data[cpu], X86_FEATURE_RDTSCP))
- write_rdtscp_aux((node << 12) | cpu);
+ /* This is write_rdtscp_aux. It cannot be called directly
+ * due to the paravirt indirection */
+ asm("wrmsr" : /* no output */
+ : "d"(0),
+ "a" ((node << 12) | cpu), "c" (0xc0000103)...
2007 Aug 09
1
[PATCH] svm: allow guest to use EFER.FFXSE and EFER.LMSLE
...11:45:13.000000000 +0200
@@ -49,6 +49,7 @@
#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_FFXSR (1*32+25) /* FFXSR instruction optimizations */
#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 */
@@ -93,7 +94,6 @@
#define X86_FEATURE_LAHF_LM (6*32+ 0) /* LAHF/SAHF in long mode */
#define X86_FEATURE_CMP_LEGACY (6*32+ 1) /* If yes HyperThrea...
2010 Aug 05
3
[PATCH 08/14] Nested Virtualization: efer
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
--
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632
_______________________________________________
Xen-devel mailing list
2007 Aug 08
2
[PATCH] x86-64: syscall/sysenter support for 32-bit apps
...}
else if ( regs->eax == 0x80000001 )
{
/* Modify Feature Information. */
- if ( is_pv_32bit_vcpu(current) )
- clear_bit(X86_FEATURE_SYSCALL % 32, &d);
+#ifdef __i386__
+ clear_bit(X86_FEATURE_SYSCALL % 32, &d);
+#endif
clear_bit(X86_FEATURE_RDTSCP % 32, &d);
}
else
@@ -2026,6 +2031,13 @@ asmlinkage int do_debug(struct cpu_user_
if ( !guest_mode(regs) )
{
+#ifdef __x86_64__
+ /*
+ * Single stepping across sysenter must not result in the single step
+ * flag being lost: record it here for create...
2007 Apr 18
0
[PATCH] paravirt_ops x86_64 , take 2
...A" (dummy), "=c" (p));
} else {
/* Load per CPU data from GDT */
asm("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG));
@@ -257,7 +258,11 @@ static void __cpuinit vsyscall_set_cpu(i
node = cpu_to_node[cpu];
#endif
if (cpu_has(&cpu_data[cpu], X86_FEATURE_RDTSCP))
- write_rdtscp_aux((node << 12) | cpu);
+ /* This is write_rdtscp_aux. It cannot be called directly
+ * due to the paravirt indirection */
+ asm("wrmsr" : /* no output */
+ : "d"(0),
+ "a" ((node << 12) | cpu), "c" (0xc0000103)...
2007 Apr 18
0
[PATCH] paravirt_ops x86_64 , take 2
...A" (dummy), "=c" (p));
} else {
/* Load per CPU data from GDT */
asm("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG));
@@ -257,7 +258,11 @@ static void __cpuinit vsyscall_set_cpu(i
node = cpu_to_node[cpu];
#endif
if (cpu_has(&cpu_data[cpu], X86_FEATURE_RDTSCP))
- write_rdtscp_aux((node << 12) | cpu);
+ /* This is write_rdtscp_aux. It cannot be called directly
+ * due to the paravirt indirection */
+ asm("wrmsr" : /* no output */
+ : "d"(0),
+ "a" ((node << 12) | cpu), "c" (0xc0000103)...