On Thu, Apr 13, 2017 at 02:20:23AM +0000, Xuquan (Quan Xu) wrote:
>From 946e7589e5a875574c7567a91943d47c38218a6f Mon Sep 17 00:00:00 2001
>From: Quan Xu <xuqu...@huawei.com>
>Date: Fri, 14 Apr 2017 02:11:30 +0800
>Subject: [PATCH v1] vmx: set 'SN' bit for the runstate transition from blocked
> to runnable
>
>set 'SN' bit of posted-interrupt descriptor when the runstate transition
>is from blocked to runnable (SN bit of posted-interrupt descriptor is still
>set to a blocked vCPU), otherwise PI notification event may be sent to a

Currently, we clear 'SN' bit for a blocked vCPU in order to receive a wakeup
interrupt to wake up the blocked vCPU. Also note that wakeup interrupt is not
a special vector for CPU.

>non-running vCPU.
>
>Signed-off-by: Quan Xu <xuqu...@huawei.com>
>---
> xen/arch/x86/hvm/vmx/vmx.c | 3 ---
> 1 file changed, 3 deletions(-)
>
>diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
>index 9c5a388..956f104 100644
>--- a/xen/arch/x86/hvm/vmx/vmx.c
>+++ b/xen/arch/x86/hvm/vmx/vmx.c
>@@ -142,9 +142,6 @@ static void vmx_pi_switch_from(struct vcpu *v)
> {
>     struct pi_desc *pi_desc = &v->arch.hvm_vmx.pi_desc;
>
>-    if ( test_bit(_VPF_blocked, &v->pause_flags) )
>-        return;
>-

I wander whether vmx_pi_switch_from() will be called in the transition
blocked -> runnable.
In my mind, the function is called during context switch and consumes
the vcpu that is to be blocked or runnable. I think this if() statement
is to distinguish 'block' case and doesn't set 'SN' for this case.

Thanks
Chao

>     pi_set_sn(pi_desc);
> }
>
>--
>1.8.3.1


>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xen.org
>https://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to