[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] xen: arm: clarify cacheability requirements of hypercall arguments.
Accepting hypercall arguments which are either consistently in cached or uncached is tricky and/or potentially slow, requiring a guest mapping lookup to determine whether/when to do a cache clean or invalidate. There are very few reasons, and no current use cases in practice, for a guest to use uncached memory for their hypercall arguments. Therefore mandate that all hypercall arguments must be mapped inner-cacheable. Do not place any restriction on the outer-cacheability or on the cache fill/flush strategy used. If use cases arise then we can consider specific exemptions to this rule. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- v2: Expliclty mention Outer-cacheability and cache allocation strategy. --- xen/include/public/arch-arm.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h index 475cb4a..ef6217d 100644 --- a/xen/include/public/arch-arm.h +++ b/xen/include/public/arch-arm.h @@ -58,6 +58,11 @@ * (AAPCS64). Where there is a conflict the 64-bit standard should be * used regardless of guest type. Structures which are passed as * hypercall arguments are always little endian. + * + * All hypercall arguments passed via a pointer to guest memory must + * reside in memory which is mapped as Normal Inner-cacheable. Any + * Inner cache allocation strategy (Write-Back, Write-Through etc) is + * acceptable. There is no restriction on the Outer-cacheability. */ /* -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |