|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 1/3] arm: remove irq from inflight, then change physical affinity
Hi, On 01/03/17 23:24, Julien Grall wrote: On 01/03/2017 22:15, Stefano Stabellini wrote: I looked a bit more into this. Quoting a commit message in Linux (see 8adbf57fc429 "irqchip: gic: use dmb ishst instead of dsb when raising a softirq"): "When sending an SGI to another CPU, we require a barrier to ensure that any pending stores to normal memory are made visible to the recipient before the interrupt arrives. Rather than use a vanilla dsb() (which will soon cause an assembly error on arm64) before the writel_relaxed, we can instead use dsb(ishst), since we just need to ensure that any pending normal writes are visible within the inner-shareable domain before we poke the GIC. With this observation, we can then further weaken the barrier to admb(ishst), since other CPUs in the inner-shareable domain must observe the write to the distributor before the SGI is generated." So smp_mb() is fine here. You could even use smp_wmb() because you only care you write access. Also, I think the barrier on the other side is not necessary. Because if you received an interrupt it means the processor as observed the change in the distributor. What do you think? Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |