[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v10 01/32] ARM: vGIC: avoid rank lock when reading priority
Hi Andre, On 06/06/17 18:20, Andre Przywara wrote: What about this one (in xen/arch/arm/vgic-v[23].c): static int vgic_v2_distr_mmio_write(struct vcpu *v, ... { - uint32_t *ipriorityr; + uint32_t *ipriorityr, priority; .... vgic_lock_rank(v, rank, flags); ipriorityr = &rank->ipriorityr[REG_RANK_INDEX(8, gicd_reg - GICD_IPRIORITYR, DABT_WORD)]; - vgic_reg32_update(ipriorityr, r, info); + priority = ACCESS_ONCE(*ipriorityr); + vgic_reg32_update(&priority, r, info); + ACCESS_ONCE(*ipriorityr) = priority; vgic_unlock_rank(v, rank, flags); ....What you do is very similar to my patch but open-code it. It might be possible to have other place which could take advantage of the a generic solution, so I am not convinced this would be the right way.My idea was to confine this fix to what we care for right now. I guess eventually it doesn't matter as we will probably get rid of the rank and its lock anyway. That's a good point. So we may want to wait until the vGIC rework to see what we can do here. Stefano, any opinion? 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 |