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

Re: [Xen-devel] [ PATCH 2/2] xen: enable Virtual-interrupt delivery


  • To: "Li, Jiongxi" <jiongxi.li@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxx>
  • From: Keir Fraser <keir@xxxxxxx>
  • Date: Thu, 06 Sep 2012 11:47:09 +0100
  • Delivery-date: Thu, 06 Sep 2012 10:47:33 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>
  • Thread-index: Ac2HWp7G2HqBx++QQP2kPrY5SPXyLgABHshJAPpQGPAANScdiA==
  • Thread-topic: [Xen-devel] [ PATCH 2/2] xen: enable Virtual-interrupt delivery

On 06/09/2012 11:00, "Li, Jiongxi" <jiongxi.li@xxxxxxxxx> wrote:

>>>  int hvm_local_events_need_delivery(struct vcpu *v) {
>>> -    struct hvm_intack intack = hvm_vcpu_has_pending_irq(v);
>>> +    struct hvm_intack intack;
>>> +
>>> +    pt_update_irq(v);
>> 
>> Why would this change be needed for vAPIC?
> When vcpu is scheduled out, there will be periodic timer interrupt pending for
> injection. Every VMExit is a chance to inject the pending periodic timer
> interrupt on vmx_intr_assist. In no virtual interrupt delivery case, although
> injected timer interrupt is edge trigger, EOI always induces VMExit, pending
> periodic timer can be kept injected till there is no pending left. But in
> virtual interrupt delivery case, only level trigger interrupt can induce
> VMExit, there is much less chance for injecting pending timer interrupt
> through VMExit. 
> Adding pt_update_irq here is another code path to inject pending periodic
> timer, but it can't guarantee every pending timer interrupt can be injected.
> Another way is to make every EOI of pending timer interrupt induce VMExit, but
> it may obey the spirit of virtual interrupt delivery - reducing VMExit.
> We have been evaluating that.

Should cause EOI to induce VMExit only when there is more periodic timer
work to be done? That would be better than this hack.

 -- Keir



_______________________________________________
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®.