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

RE: [Xen-devel] [PATCH] [RESEND] remove redundent call tohvm_do_resume

  • To: "Li, Xin B" <xin.b.li@xxxxxxxxx>, "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Li, Xin B" <xin.b.li@xxxxxxxxx>
  • Date: Wed, 25 Oct 2006 20:03:08 +0800
  • Delivery-date: Wed, 25 Oct 2006 05:03:51 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: Acb0CVpf06Hxya4XT6uW1ULXYRyKAQCGO58QABu3EN4AAPpr0ABl5NXw
  • Thread-topic: [Xen-devel] [PATCH] [RESEND] remove redundent call tohvm_do_resume

>>I like avoiding hvm_do_resume() on every vm entry, so I took 
>>that part of
>>the patch. The change to ioemu was odd -- there are other 
>>places that set
>>send_event to 1 (the code that adds IRQs to the PIC IRR). We 
>>know that code
>>is somewhat broken for SMP guests, but you *do* need to 
>notify Xen when
>>interrupts happen, right?
>Acturally for the current code, it's not necessary to notify xen when
>interrupts happen in Qemu dm: When interrupts happen in Qemu dm, we set
>PIC state in IO shared page, then just before next vmentry,
>vmx_intr_assist will automatically distribute and inject the interrupt.
>There are 3 cases we call hvm_do_resume:
>1) an IO done event notification, and it's possible that an interupt
>event notification comes with it.
>2) schedule in after a schedule out for using up its time slice.
>3) an interupt event notification, if this vcpu is in an IO 
>then it gets blocked again and this case will become case 1 at last.
>So the only case we need care about is the current vcpu is not in an IO
>transaction and an interrupt event happens, In my mind we should call
>vcpu_kick to the target vcpu, but the current code has no idea of this.
>That's to say it's no use to notify xen for current code.  But even we
>kick the target vcpu, we may be wrong, because the target vcpu may not
>be real target vcpu the interrupt should be delivered to, as you've
>already noticed.

Keir, how about your opinion on removing interrupts notification in
current Qemu?

>Ideally, we should take IOAPIC and PIC code out of vcpu execution
>context as the patch you've worked out :-)

2 options:
1) use a hypercall to execute IOAPIC interrupt distribute logic, then
return to Qemu
2) execute IOAPIC interrupt distribute logic in a new xen softirq and
use a hypercall to raise a softirq in Qemu.

What do you think of this?

Xen-devel mailing list



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