[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |