qemu-devel
[Top][All Lists]
Advanced

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

Re: More than 255 vcpus Windows VM setup without viommu ?


From: David Woodhouse
Subject: Re: More than 255 vcpus Windows VM setup without viommu ?
Date: Wed, 24 Jul 2024 10:22:03 +0100
User-agent: Evolution 3.44.4-0ubuntu2

On Tue, 2024-07-16 at 05:13 +0000, Sandesh Patel wrote:
> 
> 
> > On 11 Jul 2024, at 5:22 PM, Sandesh Patel <sandesh.patel@nutanix.com> wrote:
> > 
> > Thanks David for all the analysis.
> > > 
> > > Looking at the Linux guest support, it seems to look just at the HyperV
> > > CPUID leaves 0x40000081 and 0x40000082. QEMU knows of those only for
> > > SYNDBG; Sandesh do you want to try setting the
> > > HYPERV_VS_PROPERTIES_EAX_EXTENDED_IOAPIC_RTE bit that Linux looks for,
> > > and see how that affects Windows guests (with no emulated IOMMU)?
> > > 
> > 
> 
> I am enabling same bit (BIT(2) under
> HYPERV_CPUID_SYNDBG_PLATFORM_CAPABILITIES (0x40000082) with simple
> kvm patch (need to check how do we switch to 15 bit destination id
> when enabling this)-
> 
> 
> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> index 04cca46fed1e..b9e74b791247 100644
> --- a/arch/x86/kvm/hyperv.c
> +++ b/arch/x86/kvm/hyperv.c
> @@ -2567,6 +2567,7 @@ int kvm_get_hv_cpuid(struct kvm_vcpu *vcpu, struct 
> kvm_cpuid2 *cpuid,
>  
>                 case HYPERV_CPUID_SYNDBG_PLATFORM_CAPABILITIES:
>                         ent->eax |= HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING;
> +                      ent->eax |= 
> HYPERV_VS_PROPERTIES_EAX_EXTENDED_IOAPIC_RTE;
>                         break;
>  
>                 default:
> diff --git a/arch/x86/kvm/hyperv.h b/arch/x86/kvm/hyperv.h
> index 1030b1b50552..384585a1f165 100644
> --- a/arch/x86/kvm/hyperv.h
> +++ b/arch/x86/kvm/hyperv.h
> @@ -41,6 +41,7 @@
>   * These are HYPERV_CPUID_SYNDBG_PLATFORM_CAPABILITIES.EAX bits.
>   */
>  #define HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING       BIT(1)
> +#define HYPERV_VS_PROPERTIES_EAX_EXTENDED_IOAPIC_RTE   BIT(2)
>  
>  /* Hyper-V Synthetic debug options MSR */
>  #define HV_X64_MSR_SYNDBG_CONTROL              0x400000F1
> 
> 
> I am hitting an issue where the Windows guest is not booting (guest
> reset in loop) when adding hv-syndbg hyperv feature (or using hv-
> passthrough). Possibly an occurrence of -
>  https://patchew.org/QEMU/20230612084201.294248-1-vkuznets@redhat.com
> /
> Anything special to take care here?

As a simple test, have you tried just *not* setting the
ALLOW_KERNEL_DEBUGGING bit? Just comment that line out? So we're only
setting the magic value in 0x40000081 and then the extended I/OAPIC RTE
bit in 0x40000082? 

Although we've heard separately that this *isn't* implemented in
Windows, so we guess it isn't going to work.

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]