[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-next v2 7/9] x86: switch xen implementation to use hypervisor framework
On Mon, Oct 21, 2019 at 11:56:36AM +0200, Roger Pau Monné wrote: [...] > > static struct hypervisor_ops *hops __read_mostly; > > > > @@ -31,7 +31,34 @@ bool hypervisor_probe(void) > > if ( hops ) > > return true; > > > > - return false; > > + /* Too early to use cpu_has_hypervisor */ > > + if ( !(cpuid_ecx(1) & cpufeat_mask(X86_FEATURE_HYPERVISOR)) ) > > + return false; > > + > > +#ifdef CONFIG_XEN_GUEST > > + if ( xen_probe() ) > > + hops = &xen_hypervisor_ops; > > +#endif > > I think you likely want something like: > > if ( xen_probe() ) > { > hops = &xen_hypervisor_ops; > return true; > } > if ( hyperv_probe() ) > { > .... > return true; > } > > return false; > > In order to return after a successful probe, or else you lose cycles > probing for hypervisors when a match has been found, and also in the > Xen case you risk detecting the HyperV support in Xen and thus using > that instead of the Xen one. > Good point. > Long term if we gain more guests support I would likely want to see > hypervisor_ops turning into an array and gaining a probe function so > that this can be done in a loop instead of having this function. > That was my plan from the get-go but Xen lacked appropriate infrastructure, hence I resorted to something akin to HVM hooks. [...] > > -void __init hypervisor_setup(void) > > +void __init xen_setup(void) > > { > > init_memmap(); > > > > @@ -277,7 +272,7 @@ void __init hypervisor_setup(void) > > init_evtchn(); > > } > > > > -void hypervisor_ap_setup(void) > > +void xen_ap_setup(void) > > { > > set_vcpu_id(); > > map_vcpuinfo(); > > @@ -307,7 +302,7 @@ static void ap_resume(void *unused) > > init_evtchn(); > > } > > > > -void hypervisor_resume(void) > > +void xen_resume(void) > > I think xen_{setup/ap_setup/resume} can be made static now? Indeed. I will fix this. Wei. > > Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |