search for: iret

Displaying 20 results from an estimated 326 matches for "iret".

2007 May 21
2
changing definition of paravirt_ops.iret
I'm implementing a more efficient version of the Xen iret paravirt_op, so that it can use the real iret instruction where possible. I really need to get access to per-cpu variables, so I can set the event mask state in the vcpu_info structure, but unfortunately at the point where INTERRUPT_RETURN is used in entry.S, the usermode %fs has already been rest...
2007 May 21
2
changing definition of paravirt_ops.iret
I'm implementing a more efficient version of the Xen iret paravirt_op, so that it can use the real iret instruction where possible. I really need to get access to per-cpu variables, so I can set the event mask state in the vcpu_info structure, but unfortunately at the point where INTERRUPT_RETURN is used in entry.S, the usermode %fs has already been rest...
2007 Apr 18
1
[PATCH 1/2] Transparent entry.S IRQ holdoff handling
i386 Transparent paravirtualization patch #1. Add support for interrupt holdoff to the entry.S fault and syscall paths. This is a straightforward macro-ization for the default sub-architecture. Note that CLI, STI and IRET may be called with non-flat segments because guest %ds and %es segments are live at the time. Any alternative implementation (such as a virtual interrupt mask) is required to be compatible with this requirement. This makes maintenance of the code in entry.S much more easy, and eliminates some very...
2007 Apr 18
1
[PATCH 1/2] Transparent entry.S IRQ holdoff handling
i386 Transparent paravirtualization patch #1. Add support for interrupt holdoff to the entry.S fault and syscall paths. This is a straightforward macro-ization for the default sub-architecture. Note that CLI, STI and IRET may be called with non-flat segments because guest %ds and %es segments are live at the time. Any alternative implementation (such as a virtual interrupt mask) is required to be compatible with this requirement. This makes maintenance of the code in entry.S much more easy, and eliminates some very...
2020 Aug 07
2
[PATCH v3 4/7] x86/paravirt: remove 32-bit support from PARAVIRT_XXL
On Fri, Aug 07, 2020 at 10:38:23AM +0200, Juergen Gross wrote: > -# else > - const unsigned char cpu_iret[1]; > -# endif > }; > > static const struct patch_xxl patch_data_xxl = { > @@ -42,7 +38,6 @@ static const struct patch_xxl patch_data_xxl = { > .irq_save_fl = { 0x9c, 0x58 }, // pushf; pop %[re]ax > .mmu_read_cr2 = { 0x0f, 0x20, 0xd0 }, // mov %cr2, %[re]ax > .mm...
2020 Aug 07
2
[PATCH v3 4/7] x86/paravirt: remove 32-bit support from PARAVIRT_XXL
On Fri, Aug 07, 2020 at 10:38:23AM +0200, Juergen Gross wrote: > -# else > - const unsigned char cpu_iret[1]; > -# endif > }; > > static const struct patch_xxl patch_data_xxl = { > @@ -42,7 +38,6 @@ static const struct patch_xxl patch_data_xxl = { > .irq_save_fl = { 0x9c, 0x58 }, // pushf; pop %[re]ax > .mmu_read_cr2 = { 0x0f, 0x20, 0xd0 }, // mov %cr2, %[re]ax > .mm...
2006 Oct 06
0
V4L + Theora small app...
...t iV4LbufferSize; unsigned char* pucV4Lbuffer; struct video_mmap tV4LvideoMMap; int V4L_Init( const char *szDevice ) { struct video_capability tVideoCapability; struct video_channel tVideoChannel; struct video_mbuf tVideoMBuf; int iRet = 0; printf( "+++ V4L_Init() \n" ); if( szDevice == NULL ) { fprintf( stderr, "### Invalid device name \n" ); iRet = -1; goto V4L_Init_quit; } if( ( iV4Lfd = open( szDevice, O_RDWR ) ) == -1 ) { perror( "### open()&qu...
2012 Nov 22
41
[PATCH V3] vmx/nmi: Do not use self_nmi() in VMEXIT handler
The self_nmi() code cause''s an NMI to be triggered by sending an APIC message to the local processor. However, NMIs are blocked by the VMEXIT, until the next iret or VMENTER. Volume 3 Chapter 27 Section 1 of the Intel SDM states: An NMI causes subsequent NMIs to be blocked, but only after the VM exit completes. As a result, as soon as the VMENTER happens, an immediate VMEXIT happens as a result of the queued NMI. We have seen hundreds of iterations of th...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
xen: use iret directly where possible Most of the time we can simply use the iret instruction to exit the kernel, rather than having to use the iret hypercall - the only exception is if we're returning into vm86 mode, or from delivering an NMI (which we don't support yet). When running native, iret has...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
xen: use iret directly where possible Most of the time we can simply use the iret instruction to exit the kernel, rather than having to use the iret hypercall - the only exception is if we're returning into vm86 mode, or from delivering an NMI (which we don't support yet). When running native, iret has...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
xen: use iret directly where possible Most of the time we can simply use the iret instruction to exit the kernel, rather than having to use the iret hypercall - the only exception is if we're returning into vm86 mode, or from delivering an NMI (which we don't support yet). When running native, iret has...
2007 Jun 06
0
[PATCH UPDATE] xen: use iret directly where possible
[ Expand, correct and clarify comments; minor code change. ] Most of the time we can simply use the iret instruction to exit the kernel, rather than having to use the iret hypercall - the only exception is if we're returning into vm86 mode, or from delivering an NMI (which we don't support yet). When running native, iret has the behaviour of testing for a pending interrupt atomically with re-...
2007 Jun 06
0
[PATCH UPDATE] xen: use iret directly where possible
[ Expand, correct and clarify comments; minor code change. ] Most of the time we can simply use the iret instruction to exit the kernel, rather than having to use the iret hypercall - the only exception is if we're returning into vm86 mode, or from delivering an NMI (which we don't support yet). When running native, iret has the behaviour of testing for a pending interrupt atomically with re-...
2007 Apr 18
1
[RFC, PATCH 8/24] i386 Vmi syscall assembly
...the native processor exception frame interface. N.B. Sti; Sysexit is a required abstraction, as the STI instruction implies holdoff of interrupts, which is destroyed by any NOP padding. There is a race condition is present in all virtualization solutions in which the guest kernel may issue a raw IRET instruction, as the IRET instruction is not properly virtualizable on non-hardware assisted Intel platforms. This is because the interrupt flag, which indicates whether an IRQ may be delivered, is not changed by the instruction when running without I/O privilege level Thus, there is no way to ato...
2007 Apr 18
1
[RFC, PATCH 8/24] i386 Vmi syscall assembly
...the native processor exception frame interface. N.B. Sti; Sysexit is a required abstraction, as the STI instruction implies holdoff of interrupts, which is destroyed by any NOP padding. There is a race condition is present in all virtualization solutions in which the guest kernel may issue a raw IRET instruction, as the IRET instruction is not properly virtualizable on non-hardware assisted Intel platforms. This is because the interrupt flag, which indicates whether an IRQ may be delivered, is not changed by the instruction when running without I/O privilege level Thus, there is no way to ato...
2020 May 18
0
[PATCH 4.4 67/86] x86/paravirt: Remove the unused irq_enable_sysexit pv op
...@@ sysenter_past_esp: * Return back to the vDSO, which will pop ecx and edx. * Don't bother with DS and ES (they already contain __USER_DS). */ - ENABLE_INTERRUPTS_SYSEXIT + sti + sysexit .pushsection .fixup, "ax" 2: movl $0, PT_FS(%esp) @@ -554,11 +555,6 @@ ENTRY(native_iret) iret _ASM_EXTABLE(native_iret, iret_exc) END(native_iret) - -ENTRY(native_irq_enable_sysexit) - sti - sysexit -END(native_irq_enable_sysexit) #endif ENTRY(overflow) --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -938,13 +938,6 @@ extern void default_banner(...
2015 Nov 18
0
[PATCH 2/3] x86: irq_enable_sysexit pv op is no longer needed
...@@ sysenter_past_esp: * Return back to the vDSO, which will pop ecx and edx. * Don't bother with DS and ES (they already contain __USER_DS). */ - ENABLE_INTERRUPTS_SYSEXIT + sti + sysexit .pushsection .fixup, "ax" 2: movl $0, PT_FS(%esp) @@ -552,11 +553,6 @@ ENTRY(native_iret) iret _ASM_EXTABLE(native_iret, iret_exc) END(native_iret) - -ENTRY(native_irq_enable_sysexit) - sti - sysexit -END(native_irq_enable_sysexit) #endif ENTRY(overflow) diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 10d0596..c28518e 100644 --- a/arch/x86/...
2015 Nov 18
8
[PATCH 0/3] Fix and cleanup for 32-bit PV sysexit
The first patch fixes Xen PV regression introduced by 32-bit rewrite. Unlike the earlier version it uses ALTERNATIVE instruction and avoids using xen_sysexit (and sysret32 in compat mode) pv ops, as suggested by Andy. (I ended up patching TEST with XOR to avoid extra NOPs, even though I said yesterday it would be wrong. It's not wrong) As result of this patch irq_enable_sysexit and
2015 Nov 18
8
[PATCH 0/3] Fix and cleanup for 32-bit PV sysexit
The first patch fixes Xen PV regression introduced by 32-bit rewrite. Unlike the earlier version it uses ALTERNATIVE instruction and avoids using xen_sysexit (and sysret32 in compat mode) pv ops, as suggested by Andy. (I ended up patching TEST with XOR to avoid extra NOPs, even though I said yesterday it would be wrong. It's not wrong) As result of this patch irq_enable_sysexit and
2020 May 18
0
Patch "x86/paravirt: Remove the unused irq_enable_sysexit pv op" has been added to the 4.4-stable tree
...@@ sysenter_past_esp: * Return back to the vDSO, which will pop ecx and edx. * Don't bother with DS and ES (they already contain __USER_DS). */ - ENABLE_INTERRUPTS_SYSEXIT + sti + sysexit .pushsection .fixup, "ax" 2: movl $0, PT_FS(%esp) @@ -554,11 +555,6 @@ ENTRY(native_iret) iret _ASM_EXTABLE(native_iret, iret_exc) END(native_iret) - -ENTRY(native_irq_enable_sysexit) - sti - sysexit -END(native_irq_enable_sysexit) #endif ENTRY(overflow) --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -938,13 +938,6 @@ extern void default_banner(...