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

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



>>> On 06.09.12 at 12:00, "Li, Jiongxi" <jiongxi.li@xxxxxxxxx> wrote:
>> From: Keir Fraser [mailto:keir.xen@xxxxxxxxx]
>> On 31/08/2012 10:30, "Li, Jiongxi" <jiongxi.li@xxxxxxxxx> wrote:
>> > --- a/xen/arch/x86/hvm/irq.c  Fri Aug 31 09:30:38 2012 +0800
>> > +++ b/xen/arch/x86/hvm/irq.c         Fri Aug 31 09:49:39 2012 +0800
>> > @@ -452,7 +452,11 @@ struct hvm_intack hvm_vcpu_ack_pending_i
>> >
>> >  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 

Probably rather "may"?

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

And it's not possible to set the respective VIRR[] bit, and let the
hardware take care of injecting at the right time?

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

With which result?

Jan


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