All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: "Michał Zegan" <webczat@outlook.com>
Cc: kvm@vger.kernel.org
Subject: Re: Nested virtualization not working with hyperv guest/windows 11
Date: Fri, 24 Mar 2023 07:40:37 -0700	[thread overview]
Message-ID: <ZB22ZbhyneWevHJo@google.com> (raw)
In-Reply-To: <MN2PR12MB3023F67FF37889AB3E8885F2A0849@MN2PR12MB3023.namprd12.prod.outlook.com>

On Fri, Mar 24, 2023, Michał Zegan wrote:
> Hi,
> 
> I've sent this some time ago, but was not subscribed here, so unsure if I
> didn't get a reply or maybe missed it, so repeating:
> 
> I have a linux host with cpu intel core i7 12700h, kernel currently 6.2,
> fedora37.
> 
> I have a kvm/qemu/libvirt virtual machine, cpu model set to host, machine
> type q35, uefi with secureboot enabled, smm on.
> 
> The kvm_intel module has nested=y set in parameters so nested virtualization
> is enabled on host.
> 
> The virtual machine has windows11 pro guest installed.
> 
> When I install hyperv/virtualization platform/other similar functions, after
> reboot, the windows does not boot. Namely it reboots three times and then
> goes to recovery.

This is going to be nearly impossible to debug without more information.  Assuming
you can't extract more information from the guest, can you try enabling KVM
tracepoints?  E.g. to see if KVM is injecting an exception or a nested VM-Entry
failure that leads to the reboot.

I.e. enable tracing

    echo 1 > /sys/kernel/debug/tracing/tracing_on

and then to get the full blast from the trace firehose:

    echo 1 > /sys/kernel/debug/tracing/events/kvm/enable

or to get slightly less noisy log:

    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_entry/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_exit/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_inj_exception/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_nested_intercepts/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_nested_intr_vmexit/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_nested_vmenter_failed/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_nested_vmexit/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_nested_vmexit_inject/enable
    echo 1 > /sys/kernel/debug/tracing/events/kvm/kvm_nested_vmenter/enable

To capture something useful, you may need to (significantly) increase the size of
the buffer, 

    echo 131072 > /sys/kernel/debug/tracing/buffer_size_kb

The log itself can be found at

    /sys/kernel/debug/tracing/trace

  reply	other threads:[~2023-03-24 14:40 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-24 10:55 Nested virtualization not working with hyperv guest/windows 11 Michał Zegan
2023-03-24 14:40 ` Sean Christopherson [this message]
2023-03-24 14:59   ` Michał Zegan
     [not found]   ` <a054ea77-e53c-8207-1e25-1081e4ecbb50@outlook.com>
2023-03-30 16:46     ` ping: " Michał Zegan
     [not found]     ` <9e2ac05c-74f7-ecf6-b81f-873e24425795@outlook.com>
2023-04-04 15:38       ` Michał Zegan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZB22ZbhyneWevHJo@google.com \
    --to=seanjc@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=webczat@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.