Note that we already disable interrupts before getting here once the APIC 
series is applied, so this patch is either not necessary, or someone needs to 
merge this into the lapic branch and clean it up.

Regards,
-Greg

>>> Avi Kivity <[EMAIL PROTECTED]> 06/05/07 7:32 AM >>>
Dong, Eddie wrote:
> When in kernel device model is introduced, the guest interrupt status 
> may get changed when after it injected an IRQ and thus guest see a 
> messed interrupt state. This patch tries to disable irq at that window 
> to avoid the confusion.
>
>
>      Signed-off-by: Yaozu (Eddie) Dong <[EMAIL PROTECTED]>
>
>
>
> diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
> index ef9e32b..0cf6ea7 100644
> --- a/drivers/kvm/vmx.c
> +++ b/drivers/kvm/vmx.c
> @@ -1977,9 +1977,6 @@ static int vmx_vcpu_run(struct kvm_vcpu *vcpu,
> struct kvm_run *kvm_run)
>       int r;
>  
>  preempted:
> -     if (!vcpu->mmio_read_completed)
> -             do_interrupt_requests(vcpu, kvm_run);
> -
>       if (vcpu->guest_debug.enabled)
>               kvm_guest_debug_pre(vcpu);
>  
> @@ -1996,9 +1993,16 @@ again:
>        */
>       vmcs_writel(HOST_CR0, read_cr0());
>  
> +     /*
> +      * Disable interrupt to avoid future in kernel 
> +      * APIC interrupt state confuse.
> +      */
> +     asm ( "pushf; cli \n\t");
> +     if (!vcpu->mmio_read_completed)
> +             do_interrupt_requests(vcpu, kvm_run);
> +
>   

This is broken.  pushf changes %rsp, and if the compiler uses %rsp based 
addressing (-fomit-frame-pointer), it will use the wrong addresses for 
variables.

Suggest using local_irq_disable()/local_irq_enable() (and removing 
pushf/popf from the entry/exit sequence).

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to