[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 16/23] x86/p2m/pod: make it build with !CONFIG_HVM
Populate-on-demand is HVM only. Provide a bunch of stubs for common p2m code and guard one invocation of guest_physmap_mark_populate_on_demand with is_hvm_domain. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- xen/common/memory.c | 3 ++- xen/include/asm-x86/p2m.h | 40 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/xen/common/memory.c b/xen/common/memory.c index 996f94b..5c71ce1 100644 --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -210,7 +210,8 @@ static void populate_physmap(struct memop_args *a) if ( d == curr_d ) goto out; - if ( guest_physmap_mark_populate_on_demand(d, gpfn, + if ( is_hvm_domain(d) && + guest_physmap_mark_populate_on_demand(d, gpfn, a->extent_order) < 0 ) goto out; } diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h index d4b3cfc..d0c25ea 100644 --- a/xen/include/asm-x86/p2m.h +++ b/xen/include/asm-x86/p2m.h @@ -646,6 +646,12 @@ int p2m_add_foreign(struct domain *tdom, unsigned long fgfn, /* Dump PoD information about the domain */ void p2m_pod_dump_data(struct domain *d); +#ifdef CONFIG_HVM + +/* Called by p2m code when demand-populating a PoD page */ +bool +p2m_pod_demand_populate(struct p2m_domain *p2m, gfn_t gfn, unsigned int order); + /* Move all pages from the populate-on-demand cache to the domain page_list * (usually in preparation for domain destruction) */ int p2m_pod_empty_cache(struct domain *d); @@ -662,6 +668,36 @@ p2m_pod_offline_or_broken_hit(struct page_info *p); void p2m_pod_offline_or_broken_replace(struct page_info *p); +#else + +static inline bool +p2m_pod_demand_populate(struct p2m_domain *p2m, gfn_t gfn, unsigned int order) +{ + return false; +} + +static inline int p2m_pod_empty_cache(struct domain *d) +{ + return 0; +} + +static inline int p2m_pod_set_mem_target(struct domain *d, unsigned long target) +{ + return 0; +} + +static inline int p2m_pod_offline_or_broken_hit(struct page_info *p) +{ + return 0; +} + +static inline void p2m_pod_offline_or_broken_replace(struct page_info *p) +{ + ASSERT_UNREACHABLE(); +} + +#endif + /* * Paging to disk and page-sharing @@ -730,10 +766,6 @@ extern void audit_p2m(struct domain *d, #define P2M_DEBUG(f, a...) do { (void)(f); } while(0) #endif -/* Called by p2m code when demand-populating a PoD page */ -bool -p2m_pod_demand_populate(struct p2m_domain *p2m, gfn_t gfn, unsigned int order); - /* * Functions specific to the p2m-pt implementation */ -- git-series 0.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |