[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 02/11] early PV on HVM



On Mon, 10 May 2010, Konrad Rzeszutek Wilk wrote:
> > @@ -1014,6 +1015,7 @@ void __init setup_arch(char **cmdline_p)
> >     probe_nr_irqs_gsi();
> >  
> >     kvm_guest_init();
> > +   xen_guest_init();
> 
> Upstream has this new mechanism for detecting hypervisors with a fancy
> data structure that makes '->detect' and other things. You might want to
> take that under consideration as when you post this patch upstream
> upstream they are going to ask why you aren't using it.
> 
> > @@ -1189,3 +1191,88 @@ asmlinkage void __init xen_start_kernel(void)
> >     x86_64_start_reservations((char *)__pa_symbol(&boot_params));
> >  #endif
> >  }
> > +
> > +static uint32_t xen_cpuid_base(void)
> > +{
> > +   uint32_t base, eax, ebx, ecx, edx;
> > +   char signature[13];
> > +
> > +   for (base = 0x40000000; base < 0x40010000; base += 0x100) {
> > +           cpuid(base, &eax, &ebx, &ecx, &edx);
> > +           *(uint32_t*)(signature + 0) = ebx;
> > +           *(uint32_t*)(signature + 4) = ecx;
> > +           *(uint32_t*)(signature + 8) = edx;
> > +           signature[12] = 0;
> > +
> > +           if (!strcmp("XenVMMXenVMM", signature) && ((eax - base) >= 2))
> > +                   return base;
> > +   }
> > +
> > +   return 0;
> > +}
> 
> And this seems to be used by the VMWare/HyperV detection engine too.
> 
> Maybe make another patch that makes a generic cpuid function that can be
> shared with VMWAre/HyperV/Xen?
> 

When I rebased to upstream before sending the series to LKML I'll
keep this in mind.
I am pretty sure I can at least avoid adding the call to xen_guest_init
in setup.c, using init_hypervisor_platform instead.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.