All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
@ 2023-08-21  3:26 Hao Xiang
  2023-08-21  7:52 ` Chao Gao
  0 siblings, 1 reply; 14+ messages in thread
From: Hao Xiang @ 2023-08-21  3:26 UTC (permalink / raw)
  To: kvm; +Cc: shannon.zhao, pbonzini, seanjc, linux-kernel, Hao Xiang

For intel platform, The BzyMhz field of Turbostat shows zero
due to the missing of part msr bits of MSR_PLATFORM_INFO.

Acquire necessary msr bits, and expose following msr info to guest,
to make sure guest can get correct turbo frequency info.

MSR_PLATFORM_INFO bits
bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)

Signed-off-by: Hao Xiang <hao.xiang@linux.alibaba.com>
---
 arch/x86/include/asm/msr-index.h |  4 ++++
 arch/x86/kvm/x86.c               | 25 ++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index 1d11135..1c8a276 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -68,6 +68,10 @@
 #define MSR_PLATFORM_INFO		0x000000ce
 #define MSR_PLATFORM_INFO_CPUID_FAULT_BIT	31
 #define MSR_PLATFORM_INFO_CPUID_FAULT		BIT_ULL(MSR_PLATFORM_INFO_CPUID_FAULT_BIT)
+/* MSR_PLATFORM_INFO bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO) */
+#define MSR_PLATFORM_INFO_MAX_NON_TURBO_LIM_RATIO	0x00000000ff00
+/* MSR_PLATFORM_INFO bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO) */
+#define MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO		0xff0000000000
 
 #define MSR_IA32_UMWAIT_CONTROL			0xe1
 #define MSR_IA32_UMWAIT_CONTROL_C02_DISABLE	BIT(0)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c381770..621c3e1 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1679,6 +1679,29 @@ static u64 kvm_get_arch_capabilities(void)
 	return data;
 }
 
+
+static u64 kvm_get_msr_platform_info(void)
+{
+	u64 msr_platform_info = 0;
+
+	rdmsrl_safe(MSR_PLATFORM_INFO, &msr_platform_info);
+	/*
+	 * MSR_PLATFORM_INFO bits:
+	 * bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
+	 * bit 31, CPUID Faulting Enabled (CPUID_FAULTING_EN)
+	 * bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
+	 *
+	 * Emulate part msr bits, expose above msr info to guest,
+	 * to make sure guest can get correct turbo frequency info.
+	 */
+
+	msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_LIM_RATIO |
+			MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO);
+	msr_platform_info |= MSR_PLATFORM_INFO_CPUID_FAULT;
+
+	return msr_platform_info;
+}
+
 static int kvm_get_msr_feature(struct kvm_msr_entry *msr)
 {
 	switch (msr->index) {
@@ -11919,7 +11942,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
 		goto free_guest_fpu;
 
 	vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
-	vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
+	vcpu->arch.msr_platform_info = kvm_get_msr_platform_info();
 	kvm_xen_init_vcpu(vcpu);
 	kvm_vcpu_mtrr_init(vcpu);
 	vcpu_load(vcpu);
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21  3:26 [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits Hao Xiang
@ 2023-08-21  7:52 ` Chao Gao
  2023-08-21  9:11   ` Hao Xiang
  0 siblings, 1 reply; 14+ messages in thread
From: Chao Gao @ 2023-08-21  7:52 UTC (permalink / raw)
  To: Hao Xiang; +Cc: kvm, shannon.zhao, pbonzini, seanjc, linux-kernel

On Mon, Aug 21, 2023 at 11:26:32AM +0800, Hao Xiang wrote:
>For intel platform, The BzyMhz field of Turbostat shows zero
>due to the missing of part msr bits of MSR_PLATFORM_INFO.
>
>Acquire necessary msr bits, and expose following msr info to guest,
>to make sure guest can get correct turbo frequency info.

Userspace VMM (e.g., QEMU) can configure this MSR for guests. Please refer to
tools/testing/selftests/kvm/x86_64/platform_info_test.c.

The question is why KVM needs this patch given KVM already provides interfaces
for QEMU to configure the MSR.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21  7:52 ` Chao Gao
@ 2023-08-21  9:11   ` Hao Xiang
  2023-08-21 10:44     ` Chao Gao
  0 siblings, 1 reply; 14+ messages in thread
From: Hao Xiang @ 2023-08-21  9:11 UTC (permalink / raw)
  To: Chao Gao; +Cc: kvm, shannon.zhao, pbonzini, seanjc, linux-kernel

For reason that,

The turbo frequency info depends on specific machine type. And the msr 
value of MSR_PLATFORM_INFO may be diferent on diffrent generation machine.

Get following msr bits (needed by turbostat on intel platform) by rdmsr 
MSR_PLATFORM_INFO directly in KVM is more reasonable. And set these msr 
bits as vcpu->arch.msr_platform_info default value.
  -bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
  -bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)

On 2023/8/21 15:52, Chao Gao wrote:
> On Mon, Aug 21, 2023 at 11:26:32AM +0800, Hao Xiang wrote:
>> For intel platform, The BzyMhz field of Turbostat shows zero
>> due to the missing of part msr bits of MSR_PLATFORM_INFO.
>>
>> Acquire necessary msr bits, and expose following msr info to guest,
>> to make sure guest can get correct turbo frequency info.
> 
> Userspace VMM (e.g., QEMU) can configure this MSR for guests. Please refer to
> tools/testing/selftests/kvm/x86_64/platform_info_test.c.
> 
> The question is why KVM needs this patch given KVM already provides interfaces
> for QEMU to configure the MSR.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21  9:11   ` Hao Xiang
@ 2023-08-21 10:44     ` Chao Gao
  2023-08-21 11:44       ` Hao Xiang
  0 siblings, 1 reply; 14+ messages in thread
From: Chao Gao @ 2023-08-21 10:44 UTC (permalink / raw)
  To: Hao Xiang; +Cc: kvm, shannon.zhao, pbonzini, seanjc, linux-kernel

On Mon, Aug 21, 2023 at 05:11:16PM +0800, Hao Xiang wrote:
>For reason that,
>
>The turbo frequency info depends on specific machine type. And the msr value
>of MSR_PLATFORM_INFO may be diferent on diffrent generation machine.
>
>Get following msr bits (needed by turbostat on intel platform) by rdmsr
>MSR_PLATFORM_INFO directly in KVM is more reasonable. And set these msr bits
>as vcpu->arch.msr_platform_info default value.
> -bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
> -bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)

I don't get why QEMU cannot do this with the existing interface, e.g.,
KVM_SET_MSRS.

will the MSR value be migrated during VM migration?

looks we are in a dilemma. on one side, if the value is migrated, the value can
become inconsisntent with hardware value. On the other side, changing the ratio
bits at runtime isn't the architectural behavior.

And the MSR is per-socket. In theory, a system can have two sockets with
different values of the MSR. what if a vCPU is created on a socket and then
later runs on the other socket?

>
>On 2023/8/21 15:52, Chao Gao wrote:
>> On Mon, Aug 21, 2023 at 11:26:32AM +0800, Hao Xiang wrote:
>> > For intel platform, The BzyMhz field of Turbostat shows zero
>> > due to the missing of part msr bits of MSR_PLATFORM_INFO.
>> > 
>> > Acquire necessary msr bits, and expose following msr info to guest,
>> > to make sure guest can get correct turbo frequency info.
>> 
>> Userspace VMM (e.g., QEMU) can configure this MSR for guests. Please refer to
>> tools/testing/selftests/kvm/x86_64/platform_info_test.c.
>> 
>> The question is why KVM needs this patch given KVM already provides interfaces
>> for QEMU to configure the MSR.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21 10:44     ` Chao Gao
@ 2023-08-21 11:44       ` Hao Xiang
  2023-08-21 16:11         ` Sean Christopherson
  0 siblings, 1 reply; 14+ messages in thread
From: Hao Xiang @ 2023-08-21 11:44 UTC (permalink / raw)
  To: Chao Gao; +Cc: kvm, shannon.zhao, pbonzini, seanjc, linux-kernel



On 2023/8/21 18:44, Chao Gao wrote:
> On Mon, Aug 21, 2023 at 05:11:16PM +0800, Hao Xiang wrote:
>> For reason that,
>>
>> The turbo frequency info depends on specific machine type. And the msr value
>> of MSR_PLATFORM_INFO may be diferent on diffrent generation machine.
>>
>> Get following msr bits (needed by turbostat on intel platform) by rdmsr
>> MSR_PLATFORM_INFO directly in KVM is more reasonable. And set these msr bits
>> as vcpu->arch.msr_platform_info default value.
>> -bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
>> -bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
> 
> I don't get why QEMU cannot do this with the existing interface, e.g.,
> KVM_SET_MSRS.
> 
> will the MSR value be migrated during VM migration?
> 
> looks we are in a dilemma. on one side, if the value is migrated, the value can
> become inconsisntent with hardware value. On the other side, changing the ratio
> bits at runtime isn't the architectural behavior.
> 
> And the MSR is per-socket. In theory, a system can have two sockets with
> different values of the MSR. what if a vCPU is created on a socket and then
> later runs on the other socket?
> 

Set these msr bits (needed by turbostat on intel platform) in KVM by 
default.
Of cource, QEMU can also set MSR value by need. It does not conflict.

>>
>> On 2023/8/21 15:52, Chao Gao wrote:
>>> On Mon, Aug 21, 2023 at 11:26:32AM +0800, Hao Xiang wrote:
>>>> For intel platform, The BzyMhz field of Turbostat shows zero
>>>> due to the missing of part msr bits of MSR_PLATFORM_INFO.
>>>>
>>>> Acquire necessary msr bits, and expose following msr info to guest,
>>>> to make sure guest can get correct turbo frequency info.
>>>
>>> Userspace VMM (e.g., QEMU) can configure this MSR for guests. Please refer to
>>> tools/testing/selftests/kvm/x86_64/platform_info_test.c.
>>>
>>> The question is why KVM needs this patch given KVM already provides interfaces
>>> for QEMU to configure the MSR.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21 11:44       ` Hao Xiang
@ 2023-08-21 16:11         ` Sean Christopherson
  2023-08-23  6:24           ` Xiaoyao Li
  0 siblings, 1 reply; 14+ messages in thread
From: Sean Christopherson @ 2023-08-21 16:11 UTC (permalink / raw)
  To: Hao Xiang
  Cc: Chao Gao, kvm, shannon.zhao, pbonzini, linux-kernel, Aaron Lewis

+Aaron

When resending a patch, e.g. to change To: or Cc:, tag it RESEND.  I got three
copies of this...

On Mon, Aug 21, 2023, Hao Xiang wrote:
> 
> 
> On 2023/8/21 18:44, Chao Gao wrote:
> > On Mon, Aug 21, 2023 at 05:11:16PM +0800, Hao Xiang wrote:
> > > For reason that,
> > > 
> > > The turbo frequency info depends on specific machine type. And the msr value
> > > of MSR_PLATFORM_INFO may be diferent on diffrent generation machine.
> > > 
> > > Get following msr bits (needed by turbostat on intel platform) by rdmsr
> > > MSR_PLATFORM_INFO directly in KVM is more reasonable. And set these msr bits
> > > as vcpu->arch.msr_platform_info default value.
> > > -bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
> > > -bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
> > 
> > I don't get why QEMU cannot do this with the existing interface, e.g.,
> > KVM_SET_MSRS.
> > 
> > will the MSR value be migrated during VM migration?
> > 
> > looks we are in a dilemma. on one side, if the value is migrated, the value can
> > become inconsisntent with hardware value. On the other side, changing the ratio
> > bits at runtime isn't the architectural behavior.
> > 
> > And the MSR is per-socket. In theory, a system can have two sockets with
> > different values of the MSR. what if a vCPU is created on a socket and then
> > later runs on the other socket?
> > 
> 
> Set these msr bits (needed by turbostat on intel platform) in KVM by
> default.
> Of cource, QEMU can also set MSR value by need. It does not conflict.

It doesn't conflict per se, but it's still problematic.  By stuffing a default
value, KVM _forces_ userspace to override the MSR to align with the topology and
CPUID defined by userspace.  And if userspace uses KVM's "default" CPUID, or lack
thereof, using the underlying values from hardware are all but guaranteed to be
wrong.

The existing code that sets MSR_PLATFORM_INFO_CPUID_FAULT really should not exist,
i.e. KVM shouldn't shouldn't assume userspace wants to expose CPUID faulting to
the guest.  That particular one probably isn't worth trying to retroactively fix.

Ditto for setting MSR_IA32_ARCH_CAPABILITIES; KVM is overstepping, but doing so
likely doesn't cause problems.

MSR_IA32_PERF_CAPABILITIES is a different story.  Setting a non-zero default value
is blatantly wrong, as KVM will advertise vPMU features even if userspace doesn't
advertise.  Aaron is planning on sending a patch for this one (I'm hoping we can
get away with retroactively dropping the code without having to add a quirk).

*If* we need KVM to expose the ratios to userspace, then the correct way to do so
is handle turbo and efficiency ratio information is to by implementing support in
kvm_get_msr_feature(), i.e. KVM_GET_MSRS on /dev/kvm.  Emphasis on "if", because
I would prefer to do nothing in KVM if that information is already surfaced to
userspace through other mechanisms in the kernel.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21 16:11         ` Sean Christopherson
@ 2023-08-23  6:24           ` Xiaoyao Li
  2023-08-23 14:31             ` Sean Christopherson
  0 siblings, 1 reply; 14+ messages in thread
From: Xiaoyao Li @ 2023-08-23  6:24 UTC (permalink / raw)
  To: Sean Christopherson, Hao Xiang
  Cc: Chao Gao, kvm, shannon.zhao, pbonzini, linux-kernel, Aaron Lewis

On 8/22/2023 12:11 AM, Sean Christopherson wrote:
> +Aaron
> 
> When resending a patch, e.g. to change To: or Cc:, tag it RESEND.  I got three
> copies of this...
> 
> On Mon, Aug 21, 2023, Hao Xiang wrote:
>>
>>
>> On 2023/8/21 18:44, Chao Gao wrote:
>>> On Mon, Aug 21, 2023 at 05:11:16PM +0800, Hao Xiang wrote:
>>>> For reason that,
>>>>
>>>> The turbo frequency info depends on specific machine type. And the msr value
>>>> of MSR_PLATFORM_INFO may be diferent on diffrent generation machine.
>>>>
>>>> Get following msr bits (needed by turbostat on intel platform) by rdmsr
>>>> MSR_PLATFORM_INFO directly in KVM is more reasonable. And set these msr bits
>>>> as vcpu->arch.msr_platform_info default value.
>>>> -bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
>>>> -bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
>>>
>>> I don't get why QEMU cannot do this with the existing interface, e.g.,
>>> KVM_SET_MSRS.
>>>
>>> will the MSR value be migrated during VM migration?
>>>
>>> looks we are in a dilemma. on one side, if the value is migrated, the value can
>>> become inconsisntent with hardware value. On the other side, changing the ratio
>>> bits at runtime isn't the architectural behavior.
>>>
>>> And the MSR is per-socket. In theory, a system can have two sockets with
>>> different values of the MSR. what if a vCPU is created on a socket and then
>>> later runs on the other socket?
>>>
>>
>> Set these msr bits (needed by turbostat on intel platform) in KVM by
>> default.
>> Of cource, QEMU can also set MSR value by need. It does not conflict.
> 
> It doesn't conflict per se, but it's still problematic.  By stuffing a default
> value, KVM _forces_ userspace to override the MSR to align with the topology and
> CPUID defined by userspace.  

I don't understand how this MSR is related to topology and CPUID?

> And if userspace uses KVM's "default" CPUID, or lack
> thereof, using the underlying values from hardware are all but guaranteed to be
> wrong.

Could you please elaborate?

> The existing code that sets MSR_PLATFORM_INFO_CPUID_FAULT really should not exist,
> i.e. KVM shouldn't shouldn't assume userspace wants to expose CPUID faulting to
> the guest.  That particular one probably isn't worth trying to retroactively fix.
> 
> Ditto for setting MSR_IA32_ARCH_CAPABILITIES; KVM is overstepping, but doing so
> likely doesn't cause problems.
> 
> MSR_IA32_PERF_CAPABILITIES is a different story.  Setting a non-zero default value
> is blatantly wrong, as KVM will advertise vPMU features even if userspace doesn't
> advertise.  Aaron is planning on sending a patch for this one (I'm hoping we can
> get away with retroactively dropping the code without having to add a quirk).
> 
> *If* we need KVM to expose the ratios to userspace, then the correct way to do so
> is handle turbo and efficiency ratio information is to by implementing support in
> kvm_get_msr_feature(), i.e. KVM_GET_MSRS on /dev/kvm.  Emphasis on "if", because
> I would prefer to do nothing in KVM if that information is already surfaced to
> userspace through other mechanisms in the kernel.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-23  6:24           ` Xiaoyao Li
@ 2023-08-23 14:31             ` Sean Christopherson
  2023-08-25  3:27               ` Xiaoyao Li
  0 siblings, 1 reply; 14+ messages in thread
From: Sean Christopherson @ 2023-08-23 14:31 UTC (permalink / raw)
  To: Xiaoyao Li
  Cc: Hao Xiang, Chao Gao, kvm, shannon.zhao, pbonzini, linux-kernel,
	Aaron Lewis

On Wed, Aug 23, 2023, Xiaoyao Li wrote:
> On 8/22/2023 12:11 AM, Sean Christopherson wrote:
> > > Set these msr bits (needed by turbostat on intel platform) in KVM by
> > > default.  Of cource, QEMU can also set MSR value by need. It does not
> > > conflict.
> > 
> > It doesn't conflict per se, but it's still problematic.  By stuffing a default
> > value, KVM _forces_ userspace to override the MSR to align with the topology and
> > CPUID defined by userspace.
> 
> I don't understand how this MSR is related to topology and CPUID?

Heh, looked at the SDM to double check myself, and the first hit when searching
for MSR_PLATFORM_INFO says:

  When TSC scaling is enabled for a guest using Intel PT, the VMM should ensure
  that the value of Maximum Non-Turbo Ratio[15:8] in MSR_PLATFORM_INFO (MSR 0CEH)
  and the TSC/”core crystal clock” ratio (EBX/EAX) in CPUID leaf 15H are set in
  a manner consistent with the resulting TSC rate that will be visible to the VM.

As Chao pointed out, the MSR is technically per package, so a weird setup could
have sockets with different frequencies, or enumerate a virtual topology to the
guest with such a configuration.  I doubt/hope no one actually does something
like that, but it's theoretically possible, and one of the many reasons why KVM
needs to stay out of the way and let userspace define the vCPU model.

> > And if userspace uses KVM's "default" CPUID, or lack thereof, using the
> > underlying values from hardware are all but guaranteed to be wrong.
> 
> Could you please elaborate?

I guess an empty CPUID would probably be ok?  If there's no CPUID.0x15, it can't
be wrong.  It's largely a moot point though, I highly doubt anyone runs a "real"
VM without populating _something_ in guest CPUID.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-23 14:31             ` Sean Christopherson
@ 2023-08-25  3:27               ` Xiaoyao Li
  0 siblings, 0 replies; 14+ messages in thread
From: Xiaoyao Li @ 2023-08-25  3:27 UTC (permalink / raw)
  To: Sean Christopherson
  Cc: Hao Xiang, Chao Gao, kvm, shannon.zhao, pbonzini, linux-kernel,
	Aaron Lewis

On 8/23/2023 10:31 PM, Sean Christopherson wrote:
> On Wed, Aug 23, 2023, Xiaoyao Li wrote:
>> On 8/22/2023 12:11 AM, Sean Christopherson wrote:
>>>> Set these msr bits (needed by turbostat on intel platform) in KVM by
>>>> default.  Of cource, QEMU can also set MSR value by need. It does not
>>>> conflict.
>>>
>>> It doesn't conflict per se, but it's still problematic.  By stuffing a default
>>> value, KVM _forces_ userspace to override the MSR to align with the topology and
>>> CPUID defined by userspace.
>>
>> I don't understand how this MSR is related to topology and CPUID?
> 
> Heh, looked at the SDM to double check myself, and the first hit when searching
> for MSR_PLATFORM_INFO says:
> 
>    When TSC scaling is enabled for a guest using Intel PT, the VMM should ensure
>    that the value of Maximum Non-Turbo Ratio[15:8] in MSR_PLATFORM_INFO (MSR 0CEH)
>    and the TSC/”core crystal clock” ratio (EBX/EAX) in CPUID leaf 15H are set in
>    a manner consistent with the resulting TSC rate that will be visible to the VM.

I see.

> As Chao pointed out, the MSR is technically per package, so a weird setup could
> have sockets with different frequencies, or enumerate a virtual topology to the
> guest with such a configuration.  

Every feature might get into trouble if not consistent across packages, 
no matter per-thread/per-core/per-package.

> I doubt/hope no one actually does something
> like that, but it's theoretically possible, and one of the many reasons why KVM
> needs to stay out of the way and let userspace define the vCPU model.

For this specific case, the max non-turbo frequency needs to be 
consistent with TSC frequency. Because KVM has default TSC frequency as 
host's tsc_khz, for correctness, it should have a default value to match 
with KVM's default TSC when userspace provide no explicit configuration.

But it's not the problem this patch targets. I'm OK to keep returning 0 
as-is until some bug reported due to the inconsistent between max 
non-turbo frequency and TSC frequency.

>>> And if userspace uses KVM's "default" CPUID, or lack thereof, using the
>>> underlying values from hardware are all but guaranteed to be wrong.
>>
>> Could you please elaborate?
> 
> I guess an empty CPUID would probably be ok?  If there's no CPUID.0x15, it can't
> be wrong.  It's largely a moot point though, I highly doubt anyone runs a "real"
> VM without populating _something_ in guest CPUID.

current QEMU doesn't configure CPUID leaf 0x15, nor does it configure 
MSR_PLATFORM_INFO[15:8]. I need to take time to dig how Linux gets the 
TSC frequency.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21  3:22 Hao Xiang
  2023-08-22 16:50 ` kernel test robot
  2023-08-23  0:26 ` kernel test robot
@ 2023-08-23  3:41 ` Xiaoyao Li
  2 siblings, 0 replies; 14+ messages in thread
From: Xiaoyao Li @ 2023-08-23  3:41 UTC (permalink / raw)
  To: Hao Xiang, kvm; +Cc: shannon.zhao, pbonzini, seanjc, linux-kernel

On 8/21/2023 11:22 AM, Hao Xiang wrote:
> For intel platform, The BzyMhz field of Turbostat shows zero
> due to the missing of part msr bits of MSR_PLATFORM_INFO.
> 
> Acquire necessary msr bits, and expose following msr info to guest,
> to make sure guest can get correct turbo frequency info.
>
> MSR_PLATFORM_INFO bits
> bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
> bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)

I'm curious. How are they related to turbo frequency info?

bits 15:8, tell the Non-turbo frequency and bits 47:40 tells the min 
frequency.

> Signed-off-by: Hao Xiang <hao.xiang@linux.alibaba.com>
> ---
>   arch/x86/include/asm/msr-index.h |  4 ++++
>   arch/x86/kvm/x86.c               | 25 ++++++++++++++++++++++++-
>   2 files changed, 28 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
> index 1d11135..1c8a276 100644
> --- a/arch/x86/include/asm/msr-index.h
> +++ b/arch/x86/include/asm/msr-index.h
> @@ -68,6 +68,10 @@
>   #define MSR_PLATFORM_INFO		0x000000ce
>   #define MSR_PLATFORM_INFO_CPUID_FAULT_BIT	31
>   #define MSR_PLATFORM_INFO_CPUID_FAULT		BIT_ULL(MSR_PLATFORM_INFO_CPUID_FAULT_BIT)
> +/* MSR_PLATFORM_INFO bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO) */
> +#define MSR_PLATFORM_INFO_MAX_NON_TURBO_LIM_RATIO	0x00000000ff00
> +/* MSR_PLATFORM_INFO bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO) */
> +#define MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO		0xff0000000000

They are mask not the value, please name them with _MASK suffix.

>   
>   #define MSR_IA32_UMWAIT_CONTROL			0xe1
>   #define MSR_IA32_UMWAIT_CONTROL_C02_DISABLE	BIT(0)
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index c381770..621c3e1 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -1679,6 +1679,29 @@ static u64 kvm_get_arch_capabilities(void)
>   	return data;
>   }
>   
> +
> +static u64 kvm_get_msr_platform_info(void)
> +{
> +	u64 msr_platform_info = 0;
> +
> +	rdmsrl_safe(MSR_PLATFORM_INFO, &msr_platform_info);
> +	/*
> +	 * MSR_PLATFORM_INFO bits:
> +	 * bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
> +	 * bit 31, CPUID Faulting Enabled (CPUID_FAULTING_EN)
> +	 * bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
> +	 *
> +	 * Emulate part msr bits, expose above msr info to guest,
> +	 * to make sure guest can get correct turbo frequency info.
> +	 */
> +
> +	msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO |
> +			MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO);
> +	msr_platform_info |= MSR_PLATFORM_INFO_CPUID_FAULT;
> +
> +	return msr_platform_info;
> +}
> +
>   static int kvm_get_msr_feature(struct kvm_msr_entry *msr)
>   {
>   	switch (msr->index) {
> @@ -11919,7 +11942,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
>   		goto free_guest_fpu;
>   
>   	vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
> -	vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
> +	vcpu->arch.msr_platform_info = kvm_get_msr_platform_info();
>   	kvm_xen_init_vcpu(vcpu);
>   	kvm_vcpu_mtrr_init(vcpu);
>   	vcpu_load(vcpu);


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21  3:22 Hao Xiang
  2023-08-22 16:50 ` kernel test robot
@ 2023-08-23  0:26 ` kernel test robot
  2023-08-23  3:41 ` Xiaoyao Li
  2 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2023-08-23  0:26 UTC (permalink / raw)
  To: Hao Xiang, kvm
  Cc: llvm, oe-kbuild-all, shannon.zhao, pbonzini, seanjc,
	linux-kernel, Hao Xiang

Hi Hao,

kernel test robot noticed the following build errors:

[auto build test ERROR on kvm/queue]
[also build test ERROR on mst-vhost/linux-next tip/x86/core linus/master v6.5-rc7 next-20230822]
[cannot apply to kvm/linux-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Hao-Xiang/kvm-x86-emulate-MSR_PLATFORM_INFO-msr-bits/20230821-125755
base:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
patch link:    https://lore.kernel.org/r/1692588151-33716-1-git-send-email-hao.xiang%40linux.alibaba.com
patch subject: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
config: i386-buildonly-randconfig-003-20230823 (https://download.01.org/0day-ci/archive/20230823/202308230803.qc3KTHx1-lkp@intel.com/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce: (https://download.01.org/0day-ci/archive/20230823/202308230803.qc3KTHx1-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308230803.qc3KTHx1-lkp@intel.com/

All errors (new ones prefixed by >>):

>> arch/x86/kvm/x86.c:1695:24: error: use of undeclared identifier 'MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO'
           msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO |
                                 ^
   1 error generated.


vim +/MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO +1695 arch/x86/kvm/x86.c

  1678	
  1679	
  1680	static u64 kvm_get_msr_platform_info(void)
  1681	{
  1682		u64 msr_platform_info = 0;
  1683	
  1684		rdmsrl_safe(MSR_PLATFORM_INFO, &msr_platform_info);
  1685		/*
  1686		 * MSR_PLATFORM_INFO bits:
  1687		 * bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
  1688		 * bit 31, CPUID Faulting Enabled (CPUID_FAULTING_EN)
  1689		 * bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
  1690		 *
  1691		 * Emulate part msr bits, expose above msr info to guest,
  1692		 * to make sure guest can get correct turbo frequency info.
  1693		 */
  1694	
> 1695		msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO |
  1696				MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO);
  1697		msr_platform_info |= MSR_PLATFORM_INFO_CPUID_FAULT;
  1698	
  1699		return msr_platform_info;
  1700	}
  1701	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
  2023-08-21  3:22 Hao Xiang
@ 2023-08-22 16:50 ` kernel test robot
  2023-08-23  0:26 ` kernel test robot
  2023-08-23  3:41 ` Xiaoyao Li
  2 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2023-08-22 16:50 UTC (permalink / raw)
  To: Hao Xiang, kvm
  Cc: oe-kbuild-all, shannon.zhao, pbonzini, seanjc, linux-kernel, Hao Xiang

Hi Hao,

kernel test robot noticed the following build errors:

[auto build test ERROR on kvm/queue]
[also build test ERROR on mst-vhost/linux-next tip/x86/core linus/master v6.5-rc7 next-20230822]
[cannot apply to kvm/linux-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Hao-Xiang/kvm-x86-emulate-MSR_PLATFORM_INFO-msr-bits/20230821-125755
base:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
patch link:    https://lore.kernel.org/r/1692588151-33716-1-git-send-email-hao.xiang%40linux.alibaba.com
patch subject: [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
config: i386-randconfig-003-20230822 (https://download.01.org/0day-ci/archive/20230823/202308230059.Z4m5fuN7-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230823/202308230059.Z4m5fuN7-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308230059.Z4m5fuN7-lkp@intel.com/

All errors (new ones prefixed by >>):

   arch/x86/kvm/x86.c: In function 'kvm_get_msr_platform_info':
>> arch/x86/kvm/x86.c:1695:31: error: 'MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO' undeclared (first use in this function); did you mean 'MSR_PLATFORM_INFO_MAX_NON_TURBO_LIM_RATIO'?
    1695 |         msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO |
         |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                               MSR_PLATFORM_INFO_MAX_NON_TURBO_LIM_RATIO
   arch/x86/kvm/x86.c:1695:31: note: each undeclared identifier is reported only once for each function it appears in


vim +1695 arch/x86/kvm/x86.c

  1678	
  1679	
  1680	static u64 kvm_get_msr_platform_info(void)
  1681	{
  1682		u64 msr_platform_info = 0;
  1683	
  1684		rdmsrl_safe(MSR_PLATFORM_INFO, &msr_platform_info);
  1685		/*
  1686		 * MSR_PLATFORM_INFO bits:
  1687		 * bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
  1688		 * bit 31, CPUID Faulting Enabled (CPUID_FAULTING_EN)
  1689		 * bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
  1690		 *
  1691		 * Emulate part msr bits, expose above msr info to guest,
  1692		 * to make sure guest can get correct turbo frequency info.
  1693		 */
  1694	
> 1695		msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO |
  1696				MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO);
  1697		msr_platform_info |= MSR_PLATFORM_INFO_CPUID_FAULT;
  1698	
  1699		return msr_platform_info;
  1700	}
  1701	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
@ 2023-08-21  3:22 Hao Xiang
  2023-08-22 16:50 ` kernel test robot
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Hao Xiang @ 2023-08-21  3:22 UTC (permalink / raw)
  To: kvm; +Cc: shannon.zhao, pbonzini, seanjc, linux-kernel, Hao Xiang

For intel platform, The BzyMhz field of Turbostat shows zero
due to the missing of part msr bits of MSR_PLATFORM_INFO.

Acquire necessary msr bits, and expose following msr info to guest,
to make sure guest can get correct turbo frequency info.

MSR_PLATFORM_INFO bits
bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)

Signed-off-by: Hao Xiang <hao.xiang@linux.alibaba.com>
---
 arch/x86/include/asm/msr-index.h |  4 ++++
 arch/x86/kvm/x86.c               | 25 ++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index 1d11135..1c8a276 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -68,6 +68,10 @@
 #define MSR_PLATFORM_INFO		0x000000ce
 #define MSR_PLATFORM_INFO_CPUID_FAULT_BIT	31
 #define MSR_PLATFORM_INFO_CPUID_FAULT		BIT_ULL(MSR_PLATFORM_INFO_CPUID_FAULT_BIT)
+/* MSR_PLATFORM_INFO bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO) */
+#define MSR_PLATFORM_INFO_MAX_NON_TURBO_LIM_RATIO	0x00000000ff00
+/* MSR_PLATFORM_INFO bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO) */
+#define MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO		0xff0000000000
 
 #define MSR_IA32_UMWAIT_CONTROL			0xe1
 #define MSR_IA32_UMWAIT_CONTROL_C02_DISABLE	BIT(0)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c381770..621c3e1 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1679,6 +1679,29 @@ static u64 kvm_get_arch_capabilities(void)
 	return data;
 }
 
+
+static u64 kvm_get_msr_platform_info(void)
+{
+	u64 msr_platform_info = 0;
+
+	rdmsrl_safe(MSR_PLATFORM_INFO, &msr_platform_info);
+	/*
+	 * MSR_PLATFORM_INFO bits:
+	 * bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
+	 * bit 31, CPUID Faulting Enabled (CPUID_FAULTING_EN)
+	 * bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
+	 *
+	 * Emulate part msr bits, expose above msr info to guest,
+	 * to make sure guest can get correct turbo frequency info.
+	 */
+
+	msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO |
+			MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO);
+	msr_platform_info |= MSR_PLATFORM_INFO_CPUID_FAULT;
+
+	return msr_platform_info;
+}
+
 static int kvm_get_msr_feature(struct kvm_msr_entry *msr)
 {
 	switch (msr->index) {
@@ -11919,7 +11942,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
 		goto free_guest_fpu;
 
 	vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
-	vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
+	vcpu->arch.msr_platform_info = kvm_get_msr_platform_info();
 	kvm_xen_init_vcpu(vcpu);
 	kvm_vcpu_mtrr_init(vcpu);
 	vcpu_load(vcpu);
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits
@ 2023-08-21  3:19 Hao Xiang
  0 siblings, 0 replies; 14+ messages in thread
From: Hao Xiang @ 2023-08-21  3:19 UTC (permalink / raw)
  To: kvm; +Cc: Hao Xiang, xianghao.xiang

For intel platform, The BzyMhz field of Turbostat shows zero
due to the missing of part msr bits of MSR_PLATFORM_INFO.

Acquire necessary msr bits, and expose following msr info to guest,
to make sure guest can get correct turbo frequency info.

MSR_PLATFORM_INFO bits
bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)

Signed-off-by: Hao Xiang <hao.xiang@linux.alibaba.com>
Signed-off-by: xianghao.xiang <xianghao.xiang@alibaba-inc.com>
---
 arch/x86/include/asm/msr-index.h |  4 ++++
 arch/x86/kvm/x86.c               | 25 ++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index 1d11135..1c8a276 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -68,6 +68,10 @@
 #define MSR_PLATFORM_INFO		0x000000ce
 #define MSR_PLATFORM_INFO_CPUID_FAULT_BIT	31
 #define MSR_PLATFORM_INFO_CPUID_FAULT		BIT_ULL(MSR_PLATFORM_INFO_CPUID_FAULT_BIT)
+/* MSR_PLATFORM_INFO bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO) */
+#define MSR_PLATFORM_INFO_MAX_NON_TURBO_LIM_RATIO	0x00000000ff00
+/* MSR_PLATFORM_INFO bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO) */
+#define MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO		0xff0000000000
 
 #define MSR_IA32_UMWAIT_CONTROL			0xe1
 #define MSR_IA32_UMWAIT_CONTROL_C02_DISABLE	BIT(0)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c381770..621c3e1 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1679,6 +1679,29 @@ static u64 kvm_get_arch_capabilities(void)
 	return data;
 }
 
+
+static u64 kvm_get_msr_platform_info(void)
+{
+	u64 msr_platform_info = 0;
+
+	rdmsrl_safe(MSR_PLATFORM_INFO, &msr_platform_info);
+	/*
+	 * MSR_PLATFORM_INFO bits:
+	 * bit 15:8, Maximum Non-Turbo Ratio (MAX_NON_TURBO_LIM_RATIO)
+	 * bit 31, CPUID Faulting Enabled (CPUID_FAULTING_EN)
+	 * bit 47:40, Maximum Efficiency Ratio (MAX_EFFICIENCY_RATIO)
+	 *
+	 * Emulate part msr bits, expose above msr info to guest,
+	 * to make sure guest can get correct turbo frequency info.
+	 */
+
+	msr_platform_info &= (MSR_PLATFORM_INFO_MAX_NON_TURBO_RATIO |
+			MSR_PLATFORM_INFO_MAX_EFFICIENCY_RATIO);
+	msr_platform_info |= MSR_PLATFORM_INFO_CPUID_FAULT;
+
+	return msr_platform_info;
+}
+
 static int kvm_get_msr_feature(struct kvm_msr_entry *msr)
 {
 	switch (msr->index) {
@@ -11919,7 +11942,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
 		goto free_guest_fpu;
 
 	vcpu->arch.arch_capabilities = kvm_get_arch_capabilities();
-	vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
+	vcpu->arch.msr_platform_info = kvm_get_msr_platform_info();
 	kvm_xen_init_vcpu(vcpu);
 	kvm_vcpu_mtrr_init(vcpu);
 	vcpu_load(vcpu);
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-08-25  3:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-21  3:26 [PATCH] kvm: x86: emulate MSR_PLATFORM_INFO msr bits Hao Xiang
2023-08-21  7:52 ` Chao Gao
2023-08-21  9:11   ` Hao Xiang
2023-08-21 10:44     ` Chao Gao
2023-08-21 11:44       ` Hao Xiang
2023-08-21 16:11         ` Sean Christopherson
2023-08-23  6:24           ` Xiaoyao Li
2023-08-23 14:31             ` Sean Christopherson
2023-08-25  3:27               ` Xiaoyao Li
  -- strict thread matches above, loose matches on Subject: below --
2023-08-21  3:22 Hao Xiang
2023-08-22 16:50 ` kernel test robot
2023-08-23  0:26 ` kernel test robot
2023-08-23  3:41 ` Xiaoyao Li
2023-08-21  3:19 Hao Xiang

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.