search for: sysenter_c

Displaying 20 results from an estimated 64 matches for "sysenter_c".

Did you mean: sysenter_cs
2007 Apr 18
2
[PATCH] Fix CONFIG_PARAVIRT for 2.6.19-rc5-mm1
..._LONGS] = ~0 }, \ } -#ifndef CONFIG_PARAVIRT -static inline void load_esp0(struct tss_struct *tss, struct thread_struct *thread) -{ - tss->esp0 = thread->esp0; - /* This can only happen when SEP is enabled, no need to test "SEP"arately */ - if (unlikely(tss->ss1 != thread->sysenter_cs)) { - tss->ss1 = thread->sysenter_cs; - wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0); - } -} -#endif - #define start_thread(regs, new_eip, new_esp) do { \ __asm__("movl %0,%%fs": :"r" (0)); \ regs->xgs = 0; \ @@ -529,37 +457,6 @@ static inline...
2007 Apr 18
2
[PATCH] Fix CONFIG_PARAVIRT for 2.6.19-rc5-mm1
..._LONGS] = ~0 }, \ } -#ifndef CONFIG_PARAVIRT -static inline void load_esp0(struct tss_struct *tss, struct thread_struct *thread) -{ - tss->esp0 = thread->esp0; - /* This can only happen when SEP is enabled, no need to test "SEP"arately */ - if (unlikely(tss->ss1 != thread->sysenter_cs)) { - tss->ss1 = thread->sysenter_cs; - wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0); - } -} -#endif - #define start_thread(regs, new_eip, new_esp) do { \ __asm__("movl %0,%%fs": :"r" (0)); \ regs->xgs = 0; \ @@ -529,37 +457,6 @@ static inline...
2007 Apr 18
1
[PATCH 4/12] tls-unnecessary-init
...clude/asm-i386/processor.h 2005-08-08 15:27:25.000000000 -0700 +++ linux-2.6.13/include/asm-i386/processor.h 2005-08-08 17:57:17.000000000 -0700 @@ -463,6 +463,7 @@ }; #define INIT_THREAD { \ + .tls_array = { [ 0 ... GDT_ENTRY_TLS_ENTRIES-1 ] = { 0,0 } }, \ .vm86_info = NULL, \ .sysenter_cs = __KERNEL_CS, \ .io_bitmap_ptr = NULL, \ Index: linux-2.6.13/arch/i386/kernel/cpu/common.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/cpu/common.c 2005-08-08 17:09:57.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/cpu/c...
2007 Apr 18
1
[PATCH 4/12] tls-unnecessary-init
...clude/asm-i386/processor.h 2005-08-08 15:27:25.000000000 -0700 +++ linux-2.6.13/include/asm-i386/processor.h 2005-08-08 17:57:17.000000000 -0700 @@ -463,6 +463,7 @@ }; #define INIT_THREAD { \ + .tls_array = { [ 0 ... GDT_ENTRY_TLS_ENTRIES-1 ] = { 0,0 } }, \ .vm86_info = NULL, \ .sysenter_cs = __KERNEL_CS, \ .io_bitmap_ptr = NULL, \ Index: linux-2.6.13/arch/i386/kernel/cpu/common.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/cpu/common.c 2005-08-08 17:09:57.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/cpu/c...
2006 Feb 18
4
[PATCH] HVM x86_32 PAE guest support on 64-bit Xen
The patch enables x86_32 PAE unmodified guests on 64-bit Xen when the hvm feature is present. We tested only Linux at this point, and we''ll improve the functionality as we test other guests. The SVM needs the equivalent changes to the vmc.c to get this functionality working, but this patch does not break the build. Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
2012 Sep 11
0
[PATCH 1/3] x86/hvm: don't use indirect calls without need
..._cr[4] = c->cr4; - hvm_update_guest_cr(v, 0); - hvm_update_guest_cr(v, 2); - hvm_update_guest_cr(v, 4); + svm_update_guest_cr(v, 0); + svm_update_guest_cr(v, 2); + svm_update_guest_cr(v, 4); /* Load sysenter MSRs into both VMCB save area and VCPU fields. */ vmcb->sysenter_cs = v->arch.hvm_svm.guest_sysenter_cs = c->sysenter_cs; @@ -330,7 +332,7 @@ static void svm_load_cpu_state(struct vc vmcb->cstar = data->msr_cstar; vmcb->sfmask = data->msr_syscall_mask; v->arch.hvm_vcpu.guest_efer = data->msr_efer; - hvm_update_gue...
2007 Jan 11
6
[PATCH 4/8] HVM save restore: vcpu context support
...ead(GUEST_TR_BASE); + c->tr_arbytes = __vmread(GUEST_TR_AR_BYTES); + + c->ldtr_sel = __vmread(GUEST_LDTR_SELECTOR); + c->ldtr_limit = __vmread(GUEST_LDTR_LIMIT); + c->ldtr_base = __vmread(GUEST_LDTR_BASE); + c->ldtr_arbytes = __vmread(GUEST_LDTR_AR_BYTES); + + c->sysenter_cs = __vmread(GUEST_SYSENTER_CS); + c->sysenter_esp = __vmread(GUEST_SYSENTER_ESP); + c->sysenter_eip = __vmread(GUEST_SYSENTER_EIP); + + return 1; +} + +int vmx_vmcs_restore(struct vcpu *v, struct vmcs_data *c) +{ + unsigned long mfn, old_base_mfn; + + vmx_vmcs_enter(v); + +...
2019 Aug 09
0
[RFC PATCH v6 16/92] kvm: introspection: handle events and event replies
...struct kvmi_event { + __u16 size; + __u16 vcpu; + __u8 event; + __u8 padding[3]; + struct kvmi_event_arch arch; + } + +On x86 the structure looks like this:: + + struct kvmi_event_arch { + __u8 mode; + __u8 padding[7]; + struct kvm_regs regs; + struct kvm_sregs sregs; + struct { + __u64 sysenter_cs; + __u64 sysenter_esp; + __u64 sysenter_eip; + __u64 efer; + __u64 star; + __u64 lstar; + __u64 cstar; + __u64 pat; + __u64 shadow_gs; + } msrs; + }; + +It contains information about the vCPU state at the time of the event. + +The reply to events have the *KVMI_EVENT_REPLY* messag...
2007 Dec 18
2
[PATCH 1/2] remove __init modifier from header declaration
This patch removes the __init modifier from an extern function declaration in acpi.h. Besides not being strictly needed, it requires the inclusion of linux/init.h, which is usually not even included directly, increasing header mess by a lot. Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> --- include/asm-x86/acpi.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
2007 Dec 18
2
[PATCH 1/2] remove __init modifier from header declaration
This patch removes the __init modifier from an extern function declaration in acpi.h. Besides not being strictly needed, it requires the inclusion of linux/init.h, which is usually not even included directly, increasing header mess by a lot. Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> --- include/asm-x86/acpi.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
2020 Feb 07
0
[RFC PATCH v7 43/78] KVM: introspection: add KVMI_EVENT_UNHOOK
...struct kvmi_event { + __u16 size; + __u16 vcpu; + __u8 event; + __u8 padding[3]; + struct kvmi_event_arch arch; + } + +On x86 the structure looks like this:: + + struct kvmi_event_arch { + __u8 mode; + __u8 padding[7]; + struct kvm_regs regs; + struct kvm_sregs sregs; + struct { + __u64 sysenter_cs; + __u64 sysenter_esp; + __u64 sysenter_eip; + __u64 efer; + __u64 star; + __u64 lstar; + __u64 cstar; + __u64 pat; + __u64 shadow_gs; + } msrs; + }; + +It contains information about the vCPU state at the time of the event. + +Specific data can follow these common structures. + +1...
2007 Apr 18
0
[PATCH 3/14] i386 / Remove unnecessary tls init
...clude/asm-i386/processor.h 2005-08-09 18:37:48.000000000 -0700 +++ linux-2.6.13/include/asm-i386/processor.h 2005-08-10 20:42:20.000000000 -0700 @@ -366,6 +366,7 @@ }; #define INIT_THREAD { \ + .tls_array = { [ 0 ... GDT_ENTRY_TLS_ENTRIES-1 ] = { 0,0 } }, \ .vm86_info = NULL, \ .sysenter_cs = __KERNEL_CS, \ .io_bitmap_ptr = NULL, \ Index: linux-2.6.13/arch/i386/kernel/cpu/common.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/cpu/common.c 2005-08-09 18:37:48.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/cpu/c...
2008 Sep 02
0
capturing cpl changes
I have a 64 bit hvm guest and I''d like to capture when the execution switches to kernel mode in the guest. I''ve tried to capture MSR reads and writes, but I only see writes to SYSENTER_CS/EIP/ESP registers once, during initialization I suppose, but I don''t see any reads from these registers as I''d expect when sysenter is called. My goal is to capture when the execution jumps to guest kernel space either through a system call or any other interrupt/exception. Is...
2007 Apr 18
0
[PATCH 3/14] i386 / Remove unnecessary tls init
...clude/asm-i386/processor.h 2005-08-09 18:37:48.000000000 -0700 +++ linux-2.6.13/include/asm-i386/processor.h 2005-08-10 20:42:20.000000000 -0700 @@ -366,6 +366,7 @@ }; #define INIT_THREAD { \ + .tls_array = { [ 0 ... GDT_ENTRY_TLS_ENTRIES-1 ] = { 0,0 } }, \ .vm86_info = NULL, \ .sysenter_cs = __KERNEL_CS, \ .io_bitmap_ptr = NULL, \ Index: linux-2.6.13/arch/i386/kernel/cpu/common.c =================================================================== --- linux-2.6.13.orig/arch/i386/kernel/cpu/common.c 2005-08-09 18:37:48.000000000 -0700 +++ linux-2.6.13/arch/i386/kernel/cpu/c...
2007 Apr 18
1
[PATCH 1/7] cleanup: paravirt unhandled fallthrough
The current code simply calls "start_kernel" directly if we're under a hypervisor and no paravirt_ops backend wants us, because paravirt.c registers that as a backend. This was always a vain hope; start_kernel won't get far without setup. It's also impossible for paravirt_ops backends which don't sit in the arch/i386/kernel directory: they can't link before
2007 Apr 18
1
[PATCH 1/7] cleanup: paravirt unhandled fallthrough
The current code simply calls "start_kernel" directly if we're under a hypervisor and no paravirt_ops backend wants us, because paravirt.c registers that as a backend. This was always a vain hope; start_kernel won't get far without setup. It's also impossible for paravirt_ops backends which don't sit in the arch/i386/kernel directory: they can't link before
2007 Dec 18
3
[PATCH] finish processor.h integration
...etchw(const void *x) } #define spin_lock_prefetch(x) prefetchw(x) +#ifdef CONFIG_X86_32 +/* + * User space process size: 3GB (default). + */ +#define TASK_SIZE (PAGE_OFFSET) + +#define INIT_THREAD { \ + .sp0 = sizeof(init_stack) + (long)&init_stack, \ + .vm86_info = NULL, \ + .sysenter_cs = __KERNEL_CS, \ + .io_bitmap_ptr = NULL, \ + .fs = __KERNEL_PERCPU, \ +} + +/* + * Note that the .io_bitmap member must be extra-big. This is because + * the CPU will access an additional byte beyond the end of the IO + * permission bitmap. The extra byte must be all 1 bits, and mus...
2007 Dec 18
3
[PATCH] finish processor.h integration
...etchw(const void *x) } #define spin_lock_prefetch(x) prefetchw(x) +#ifdef CONFIG_X86_32 +/* + * User space process size: 3GB (default). + */ +#define TASK_SIZE (PAGE_OFFSET) + +#define INIT_THREAD { \ + .sp0 = sizeof(init_stack) + (long)&init_stack, \ + .vm86_info = NULL, \ + .sysenter_cs = __KERNEL_CS, \ + .io_bitmap_ptr = NULL, \ + .fs = __KERNEL_PERCPU, \ +} + +/* + * Note that the .io_bitmap member must be extra-big. This is because + * the CPU will access an additional byte beyond the end of the IO + * permission bitmap. The extra byte must be all 1 bits, and mus...
2007 Apr 18
1
[RFC, PATCH 12/24] i386 Vmi processor header
...static inline void load_esp0(struct tss_struct *tss, struct thread_struct *thread) { tss->esp0 = thread->esp0; + arch_update_kernel_stack(tss, thread->esp0); /* This can only happen when SEP is enabled, no need to test "SEP"arately */ if (unlikely(tss->ss1 != thread->sysenter_cs)) { tss->ss1 = thread->sysenter_cs; @@ -507,33 +437,6 @@ static inline void load_esp0(struct tss_ regs->esp = new_esp; \ } while (0) -/* - * These special macros can be used to get or set a debugging register - */ -#define get_debugreg(var, register) \ - __asm__("movl...
2007 Apr 18
1
[RFC, PATCH 12/24] i386 Vmi processor header
...static inline void load_esp0(struct tss_struct *tss, struct thread_struct *thread) { tss->esp0 = thread->esp0; + arch_update_kernel_stack(tss, thread->esp0); /* This can only happen when SEP is enabled, no need to test "SEP"arately */ if (unlikely(tss->ss1 != thread->sysenter_cs)) { tss->ss1 = thread->sysenter_cs; @@ -507,33 +437,6 @@ static inline void load_esp0(struct tss_ regs->esp = new_esp; \ } while (0) -/* - * These special macros can be used to get or set a debugging register - */ -#define get_debugreg(var, register) \ - __asm__("movl...