|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC] xen/pvh: detect PVH after kexec
On 03/20/2017 02:20 PM, Vitaly Kuznetsov wrote:
> PVH guests after kexec boot like normal HVM guests and we're not entering
> xen_prepare_pvh()
Is it not? Aren't we going via xen_hvm_shutdown() and then
SHUTDOWN_soft_reset which would restart at the same entry point as
regular boot?
-boris
> but we still want to know that we're PVH. This hack does
> the job by using XEN_IOPORT_MAGIC but I didn't find any straitforward way
> to do it. Did I miss something? Or shall we introduce a CPUID leaf or
> something like that?
>
> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
> ---
> arch/x86/xen/enlighten.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
> index ec1d5c4..4a30886 100644
> --- a/arch/x86/xen/enlighten.c
> +++ b/arch/x86/xen/enlighten.c
> @@ -51,6 +51,7 @@
> #include <xen/hvm.h>
> #include <xen/hvc-console.h>
> #include <xen/acpi.h>
> +#include <xen/platform_pci.h>
>
> #include <asm/paravirt.h>
> #include <asm/apic.h>
> @@ -1765,6 +1766,20 @@ void __init xen_prepare_pvh(void)
>
> x86_init.oem.arch_setup = xen_pvh_arch_setup;
> }
> +
> +static void xen_detect_pvh(void)
> +{
> + short magic;
> +
> + if (xen_pvh)
> + return;
> +
> + magic = inw(XEN_IOPORT_MAGIC);
> + if (magic != XEN_IOPORT_MAGIC_VAL) {
> + xen_pvh = 1;
> + xen_pvh_arch_setup();
> + }
> +}
> #endif
>
> void __ref xen_hvm_init_shared_info(void)
> @@ -1912,6 +1927,9 @@ static void __init xen_hvm_guest_init(void)
>
> init_hvm_pv_info();
>
> + /* Detect PVH booting after kexec */
> + xen_detect_pvh();
> +
> xen_hvm_init_shared_info();
>
> xen_panic_handler_init();
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |