[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] IPI sending difference between x86 and ARM
On Wed, 2014-09-10 at 07:36 +0100, Jan Beulich wrote: > All, > > is it intentional that gicv2_send_SGI() (and all of the higher layers) keep > the sending CPU in the target mask, while all x86's send_IPI_mask_...() > specifically exclude the local CPU? I guess you mean specifically the SGI_TARGET_LIST case? This is a pretty low level function arch specific function, I don't have a particular opinion on how it should behave in this respect, although since we have both SGI_TARGET_OTHERS and SGI_TARGET_SELF I think it seems OK to let SGI_TARGET_LIST include SELF. I suspect it mainly matters at the next level up, when we get to the common arch interfaces, though and in general that is where we currently try and add these checks. > I'm asking namely in the context of > cpumask_raise_softirq(), which - other than cpu_raise_softirq() - does > not itself exclude the local CPU (and hence I wonder whether adding > that check would have the potential of breaking ARM). cpumask_raise_softirq calls smp_send_event_check_mask, I think that would be the right place to handle the cross-arch semantics of whether to include self in the mask or not, as we do e.g. in smp_send_call_function_mask. Part of the problem is that the expected behaviour of some of these arch interfaces (e.g. smp_*) is not clearly defined so we had to reverse engineer them from the x86 behaviour (which has multiple backends and function ptrs etc), it's not improbable that we got it wrong. Anyway, if smp_send_event_check_mask is supposed to exclude the calling CPU then we should fix that on ARM in the name of consistency/sanity. In the event it causes other issues then we should fix those as they arise. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |