[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC 21/22] xen/arm: p2m: Re-implement p2m_set_mem_access using p2m_{set, get}_entry
On Tue, Aug 02, 2016 at 10:58:00AM +0100, Julien Grall wrote: > On 01/08/2016 19:22, Mark Rutland wrote: > >On Mon, Aug 01, 2016 at 06:26:54PM +0100, Mark Rutland wrote: > >>On Mon, Aug 01, 2016 at 05:57:50PM +0100, Julien Grall wrote: > >>>however we only need one TLBI instruction (assuming there is > >>>no superpage shattering) per-batch rather than one per-entry in this > >>>case. > >> > >>I got Cc'd to a reply without the original patch context, so I'm not > >>sure what the case is here. I'm not exactly sure what you mean by > >>"per-batch". > > Sorry for that. I CCed in case I did not summarize correctly the > conversation we had. > > The page table handling code can be found in patch #18 [1]. If I've understood, you're asking if you can do a TLBI VMALLE1IS per batch of leaf entry updates in p2m_set_entry? As below, if only the AP and/or XN bits are changing, that should be safe. If any other fields are being altered (inc. the output address, even for intermediate entries), that may not be safe. > >>Assuming that you've (only) changed the permissions (i.e. the AP bits > >>and XN bits) of a number of stage-2 leaf entries, you need either: > >>* Per entry, a TLBI IPAS2LE1IS > >> > >> e.g. > > for_each_entry(x) > > modify_ap_bits(x); > > dsb(ishst); > > for_each_entry(x) > > tlbi(ipas2le1is, x); > > dsb(ish); > > I have a question related to this example. Is there a threshold > where invalidate all the TLB entry for a given VMID/ASID is worth? Strictly speaking, "yes", but the value is going to depend on implementation and workload, so there's no "good" value as such provided by the architecture. In Linux, we end up doing so in some cases to avoid softlockups. Look for MAX_TLB_RANGE in arch/arm64/include/asm/tlbflush.h. There are some more details in commit 05ac65305437e8ef ("arm64: fix soft lockup due to large tlb flush range"). Thanks, Mark. > [1] https://lists.xen.org/archives/html/xen-devel/2016-07/msg02966.html _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |