[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] xen: introduce XENFEAT_direct_mapped and XENFEAT_not_direct_mapped
Introduce two feature flags to tell the domain whether it is direct-mapped or not. It allows the guest kernel to make informed decisions on things such as swiotlb-xen enablement. Currently, only Dom0 on ARM is direct-mapped, see: xen/include/asm-arm/domain.h:is_domain_direct_mapped xen/include/asm-x86/domain.h:is_domain_direct_mapped However, given that it is theoretically possible to have direct-mapped domains on x86 too, the two new feature flags are arch-neutral. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> CC: jbeulich@xxxxxxxx CC: andrew.cooper3@xxxxxxxxxx CC: julien@xxxxxxx --- xen/common/kernel.c | 4 ++++ xen/include/public/features.h | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/xen/common/kernel.c b/xen/common/kernel.c index 7a345ae45e..6ca1377dec 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -560,6 +560,10 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) (1U << XENFEAT_hvm_callback_vector) | (has_pirq(d) ? (1U << XENFEAT_hvm_pirqs) : 0); #endif + if ( is_domain_direct_mapped(d) ) + fi.submap |= (1U << XENFEAT_direct_mapped); + else + fi.submap |= (1U << XENFEAT_not_direct_mapped); break; default: return -EINVAL; diff --git a/xen/include/public/features.h b/xen/include/public/features.h index 1613b2aab8..18e3e61df0 100644 --- a/xen/include/public/features.h +++ b/xen/include/public/features.h @@ -114,6 +114,13 @@ */ #define XENFEAT_linux_rsdp_unrestricted 15 +/* + * A direct-mapped (or 1:1 mapped) domain is a domain for which its + * local pages have gfn == mfn. + */ +#define XENFEAT_not_direct_mapped 16 +#define XENFEAT_direct_mapped 17 + #define XENFEAT_NR_SUBMAPS 1 #endif /* __XEN_PUBLIC_FEATURES_H__ */ -- 2.17.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |