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

Re: [Xen-devel] [PATCH v12 03/18] xen/pvh: Early bootup changes in PV code (v2).



On 01/01/14 04:35, Konrad Rzeszutek Wilk wrote:
> From: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
> 
> In the bootup code for PVH we can trap cpuid via vmexit, so don't
> need to use emulated prefix call. We also check for vector callback
> early on, as it is a required feature. PVH also runs at default kernel
> IOPL.
> 
> Finally, pure PV settings are moved to a separate function that are
> only called for pure PV, ie, pv with pvmmu. They are also #ifdef
> with CONFIG_XEN_PVMMU.
[...]
> @@ -331,12 +333,15 @@ static void xen_cpuid(unsigned int *ax, unsigned int 
> *bx,
>               break;
>       }
>  
> -     asm(XEN_EMULATE_PREFIX "cpuid"
> -             : "=a" (*ax),
> -               "=b" (*bx),
> -               "=c" (*cx),
> -               "=d" (*dx)
> -             : "0" (*ax), "2" (*cx));
> +     if (xen_pvh_domain())
> +             native_cpuid(ax, bx, cx, dx);
> +     else
> +             asm(XEN_EMULATE_PREFIX "cpuid"
> +                     : "=a" (*ax),
> +                     "=b" (*bx),
> +                     "=c" (*cx),
> +                     "=d" (*dx)
> +                     : "0" (*ax), "2" (*cx));

For this one off cpuid call it seems preferrable to me to use the
emulate prefix rather than diverge from PV.

> @@ -1431,13 +1449,18 @@ asmlinkage void __init xen_start_kernel(void)
>  
>       xen_domain_type = XEN_PV_DOMAIN;
>  
> +     xen_setup_features();
> +     xen_pvh_early_guest_init();
>       xen_setup_machphys_mapping();
>  
>       /* Install Xen paravirt ops */
>       pv_info = xen_info;
>       pv_init_ops = xen_init_ops;
> -     pv_cpu_ops = xen_cpu_ops;
>       pv_apic_ops = xen_apic_ops;
> +     if (xen_pvh_domain())
> +             pv_cpu_ops.cpuid = xen_cpuid;
> +     else
> +             pv_cpu_ops = xen_cpu_ops;

If cpuid is trapped for PVH guests why does PVH need non-native cpuid op?

David

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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