[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Remove a set operation for VCPU_KICK_SOFTIRQ when post interrupt to vm.



I believe this also has something to do with a windows guest boot hang issue.

It randomly occured, when boot a guest has windows 2008 os and pv-driver installed.
The boot process hangs when wait xenstored replay event signal.

It can be reproduced after hundreds reboot using the xen staging branch.
But after I changed this code the hang issue can not reproduce.

Any Ideas?

On 2015/9/7 22:46, - wrote:
From: liuqiming 00178499 <john.liuqiming@xxxxxxxxxx>

This set operation doesn't make any sense, and it will block later
interrupt injected into vm (by vcpu_kick or deliver_posted_intr),
which will cause a performance issue on CPU supporting posted-interrupt.

Signed-off-by: Qiming Liu <john.liuqiming@xxxxxxxxxx>
Cc: Yang Zhang <yang.z.zhang@xxxxxxxxx>
---
  xen/arch/x86/hvm/vmx/vmx.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 2582cdd..9480b44 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1681,7 +1681,7 @@ static void __vmx_deliver_posted_interrupt(struct vcpu *v)
      {
          unsigned int cpu = v->processor;
- if ( !test_and_set_bit(VCPU_KICK_SOFTIRQ, &softirq_pending(cpu))
+        if ( !test_bit(VCPU_KICK_SOFTIRQ, &softirq_pending(cpu))
               && (cpu != smp_processor_id()) )
              send_IPI_mask(cpumask_of(cpu), posted_intr_vector);
      }



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.