[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/arm: Make local_events_need_delivery working with idle VPCU
On Mon, 2015-04-27 at 17:32 +0100, Julien Grall wrote: > >> diff --git a/xen/include/asm-arm/event.h b/xen/include/asm-arm/event.h > >> index 5330dfe..0149d06 100644 > >> --- a/xen/include/asm-arm/event.h > >> +++ b/xen/include/asm-arm/event.h > >> @@ -39,7 +39,12 @@ static inline int > >> local_events_need_delivery_nomask(void) > >> > >> static inline int local_events_need_delivery(void) > >> { > >> - if ( !vcpu_event_delivery_is_enabled(current) ) > >> + struct vcpu *v = current; > >> + > >> + if ( unlikely(is_idle_vcpu(v)) ) > >> + return 0; > >> + > >> + if ( !vcpu_event_delivery_is_enabled(v) ) > >> return 0; > >> return local_events_need_delivery_nomask(); > >> } > > > > Is it actually considered correct in Xen to call hypercall_preempt_check > > and/or local_events_need_delivery on the idle vcpu? > > It seems that the x86 version of hypercall_preempt_check is able to cope > with idle VCPU. AFAICT that's just a coincidence, since an idle vcpu won't ever have a pending up call. > Although, I'm not sure if there is path where > hypercall_preempt_check can be called on an idle VCPU (cc x86 > maintainers for this purpose). > > > Shouldn't it be avoided and maybe a BUG_ON added here instead? > > This patch was the simple way to fix the bug. I have other ideas in mind > which require some rework in apply_p2m_changes. > > I'll wait to see what x86 maintainers think. I'm inclined to just go with this patch for now, unless Stefano is nacking it. One question first: What aspect of local_events_need_delivery relies on the vcpu not being an idle one? I suppose something is not initialised, but what. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |