[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 5/6] xen: arm: relax barriers in tlb flushes
On Thu, 2014-04-03 at 12:12 +0100, Julien Grall wrote: > On 04/03/2014 09:59 AM, Ian Campbell wrote: > > @@ -333,12 +333,12 @@ static inline void > > flush_xen_data_tlb_range_va(unsigned long va, > > unsigned long size) > > { > > unsigned long end = va + size; > > - dsb(sy); /* Ensure preceding are visible */ > > + dsb(ish); /* Ensure preceding are visible */ > > I'm a bit lost with ish/nsh/sy/... shall we keep sy here? > flush_xen_data_tlb is used in iounmap Is it? I can't see it. I do see it in clear_fixmap though. > and we want to make sure that > every write as been done just before. The barrier here is to ensure that any writes to the page tables themselves are complete, not really to ensure that writes using those page tables are complete. If users of this call have additional requirements to make sure other writes complete (which iounmap surely does) then I think they need to have their own barriers (or further punt this up to their callers). Anyway, I should certainly hold off on this change until we are sure that the appropriate barriers are in place in other places which are current relying on this barrier being too strong. It seems like clear_fixmap is one such place, as might vunmap or iounmap (which uses vunmap, I need to think more carefully about which one needs the barrier). Incidentally, I think we can actually go one further an use an ishst (store only) barrier for the dsb before the tlb flush since we only care about PTE writes not reads. THat is something I might look at later. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |