|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1] vmx: set 'SN' bit for the runstate transition from blocked to runnable
__sorry for the noise, please ignore this patch__
On April 13, 2017 11:45 AM, Quan Xu wrote:
>On April 13, 2017 3:35 AM, Chao Gao wrote:
>>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 <xuquan8@xxxxxxxxxx>
>>>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.
>>
>Sorry, a typo 's/set/clear/'....
>You are right. It is clear. that's why I want to set it.
>
>
>>>non-running vCPU.
>>>
>>>Signed-off-by: Quan Xu <xuquan8@xxxxxxxxxx>
>>>---
>>> 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.
>
>If you are right, my patch is wrong..
>
>Chao, thank you. I will check it again..
Chao, checked the code, I think you are right..
For example, HLT:
vmx_vmexit_handler(... case EXIT_REASON_HLT ... )
|
hvm_hlt()
|
do_sched_op(... SCHEDOP_block ...)
|
vcpu_block_enable_events()
|
vcpu_block()
|
arch_vcpu_block()
raise_softirq(SCHEDULE_SOFTIRQ)
if the vcpu is blocked, the vcpu is de-scheduled.. sorry for the noise, please
ignore this patch ..
Quan
>
>Quan
>
>>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@xxxxxxxxxxxxx
>>>https://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |