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(...