Message ID | d51ae897890ec01de70c44d15450e888f84d34c4.1720501197.git.Sergiy_Kibrik@epam.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | x86: make CPU virtualisation support configurable | expand |
On 09.07.2024 07:56, Sergiy Kibrik wrote: > From: Xenia Ragiadakou <burzalodowa@gmail.com> > > Replace cpu_has_vmx check with using_vmx(), so that we do check if functions > ept_p2m_init() and ept_p2m_uninit() can be called. I still find this an odd way of putting it. Source code ... > --- a/xen/arch/x86/mm/p2m-basic.c > +++ b/xen/arch/x86/mm/p2m-basic.c > @@ -40,7 +40,7 @@ static int p2m_initialise(struct domain *d, struct p2m_domain *p2m) > p2m_pod_init(p2m); > p2m_nestedp2m_init(p2m); > > - if ( hap_enabled(d) && cpu_has_vmx ) > + if ( hap_enabled(d) && using_vmx() ) > ret = ept_p2m_init(p2m); > else > p2m_pt_init(p2m); > @@ -72,7 +72,7 @@ struct p2m_domain *p2m_init_one(struct domain *d) > void p2m_free_one(struct p2m_domain *p2m) > { > p2m_free_logdirty(p2m); > - if ( hap_enabled(p2m->domain) && cpu_has_vmx ) > + if ( hap_enabled(p2m->domain) && using_vmx() ) > ept_p2m_uninit(p2m); > free_cpumask_var(p2m->dirty_cpumask); > xfree(p2m); ... is very clear about them being called. What you're after is the compiler DCEing the calls in generated code. Jan
diff --git a/xen/arch/x86/mm/p2m-basic.c b/xen/arch/x86/mm/p2m-basic.c index 08007a687c..e126fda267 100644 --- a/xen/arch/x86/mm/p2m-basic.c +++ b/xen/arch/x86/mm/p2m-basic.c @@ -40,7 +40,7 @@ static int p2m_initialise(struct domain *d, struct p2m_domain *p2m) p2m_pod_init(p2m); p2m_nestedp2m_init(p2m); - if ( hap_enabled(d) && cpu_has_vmx ) + if ( hap_enabled(d) && using_vmx() ) ret = ept_p2m_init(p2m); else p2m_pt_init(p2m); @@ -72,7 +72,7 @@ struct p2m_domain *p2m_init_one(struct domain *d) void p2m_free_one(struct p2m_domain *p2m) { p2m_free_logdirty(p2m); - if ( hap_enabled(p2m->domain) && cpu_has_vmx ) + if ( hap_enabled(p2m->domain) && using_vmx() ) ept_p2m_uninit(p2m); free_cpumask_var(p2m->dirty_cpumask); xfree(p2m);