[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 2/2] xen/arm: trap guest WFI
On Thu, 2013-04-18 at 19:49 +0100, Stefano Stabellini wrote: > static inline void local_event_delivery_enable(void) > { > - /* TODO current->vcpu_info->evtchn_upcall_mask = 0; */ > + current->vcpu_info->evtchn_upcall_mask = 0; Did you miss my comments re the meaninglessness of evtchn_upcall_mask on ARM? Nothing in the guest ever sets this bit and nothing pays it any attention on the actual interrupt/evtchn delivery path either, so looking at it in the "are events pending" path doesn't make sense. Look at $ rgrep evtchn_upcall_mask xen/arch/arm/ xen/include/asm-arm/ and all you will see is false positives like the above commented out code. The only generic user is the dump_domains() debugkey output (which is therefore wrong on ARM). This logic needs to be based around looking at the I bit in the CPSR. To avoid this confusion reoccuring perhaps we should #define HAVE_PV_INTERRUPT_MASK and use it to turn this field in vcpu_info into a padding field? Ian. > } > > /* No arch specific virq definition now. Default to global. */ > diff --git a/xen/include/asm-arm/gic.h b/xen/include/asm-arm/gic.h > index 24c0d5c..92711d5 100644 > --- a/xen/include/asm-arm/gic.h > +++ b/xen/include/asm-arm/gic.h > @@ -143,6 +143,7 @@ extern void gic_route_ppis(void); > extern void gic_route_spis(void); > > extern void gic_inject(void); > +extern int gic_events_need_delivery(void); > > extern void __cpuinit init_maintenance_interrupt(void); > extern void gic_set_guest_irq(struct vcpu *v, unsigned int irq, _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |