From: Ewan Hai <ewanhai-oc@zhaoxin.com>
To: Zhao Liu <zhao1.liu@intel.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Babu Moger" <babu.moger@amd.com>,
"Xiaoyao Li" <xiaoyao.li@intel.com>,
"Tejus GK" <tejus.gk@nutanix.com>,
"Jason Zeng" <jason.zeng@intel.com>,
"Manish Mishra" <manish.mishra@nutanix.com>,
"Tao Su" <tao1.su@intel.com>,
qemu-devel@nongnu.org, kvm@vger.kernel.org, cobechen@zhaoxin.com,
Frankzhu@zhaoxin.com, Runaguo@zhaoxin.com, yeeli@zhaoxin.com,
Xanderchen@zhaoxin.com, MaryFeng@zhaoxin.com
Subject: Re: [RFC 01/10] i386/cpu: Mark CPUID[0x80000005] as reserved for Intel
Date: Tue, 24 Jun 2025 19:04:02 +0800 [thread overview]
Message-ID: <8bab0159-54d3-4f48-aadf-23491171018d@zhaoxin.com> (raw)
In-Reply-To: <aFpSN+zEgJl72V46@intel.com>
On 6/24/25 3:22 PM, Zhao Liu wrote:
>
> On Tue, May 27, 2025 at 05:56:07PM +0800, Ewan Hai wrote:
>> Date: Tue, 27 May 2025 17:56:07 +0800
>> From: Ewan Hai <ewanhai-oc@zhaoxin.com>
>> Subject: Re: [RFC 01/10] i386/cpu: Mark CPUID[0x80000005] as reserved for
>> Intel
>>
>>
>>
>> On 5/27/25 5:15 PM, Zhao Liu wrote:
>>>
>>>> On 4/23/25 7:46 PM, Zhao Liu wrote:
>>>>>
>>>>> Per SDM, 0x80000005 leaf is reserved for Intel CPU, and its current
>>>>> "assert" check blocks adding new cache model for non-AMD CPUs.
>>>>>
>>>>> Therefore, check the vendor and encode this leaf as all-0 for Intel
>>>>> CPU. And since Zhaoxin mostly follows Intel behavior, apply the vendor
>>>>> check for Zhaoxin as well.
>>>>>
>>>>> Note, for !vendor_cpuid_only case, non-AMD CPU would get the wrong
>>>>> information, i.e., get AMD's cache model for Intel or Zhaoxin CPUs.
>>>>> For this case, there is no need to tweak for non-AMD CPUs, because
>>>>> vendor_cpuid_only has been turned on by default since PC machine v6.1.
>>>>>
>>>>> Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
>>>>> ---
>>>>> target/i386/cpu.c | 16 ++++++++++++++--
>>>>> 1 file changed, 14 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>>>>> index 1b64ceaaba46..8fdafa8aedaf 100644
>> [snip]>>> +
>>>>> *eax = (L1_DTLB_2M_ASSOC << 24) | (L1_DTLB_2M_ENTRIES << 16) |
>>>>> (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES);
>>>>> *ebx = (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) |
>>>>
>>>> I've reviewed the cache-related CPUID path and noticed an oddity: every AMD
>>>> vCPU model still reports identical hard-coded values for the L1 ITLB and L1
>>>> DTLB fields in leaf 0x8000_0005. Your patch fixes this for Intel(and
>>>> Zhaoxin), but all AMD models continue to receive the same constants in
>>>> EAX/EBX.
>>>
>>> Yes, TLB info is hardcoded here. Previously, Babu and Eduardo cleaned up
>>> the cache info but didn't cover TLB [*]. I guess one reason would there
>>> are very few use cases related to TLB's info, and people are more
>>> concerned about the cache itself.
>>>
>>> [*]: https://lore.kernel.org/qemu-devel/20180510204148.11687-2-babu.moger@amd.com/
>>
>> Understood. Keeping the L1 I/D-TLB fields hard-coded for every vCPU model is
>> acceptable.
>>
>>>> Do you know the reason for this choice? Is the guest expected to ignore
>>>> those L1 TLB numbers? If so, I'll prepare a patch that adjusts only the
>>>> Zhaoxin defaults in leaf 0x8000_0005 like below, matching real YongFeng
>>>> behaviour in ecx and edx, but keep eax and ebx following AMD's behaviour.
>>>
>>> This way is fine for me.
>>>
>>
>> Thanks for confirming. I'll post the YongFeng cache-info series once your
>> refactor lands.
>
> Hi Ewan,
>
> By this patch:
>
> https://lore.kernel.org/qemu-devel/20250620092734.1576677-14-zhao1.liu@intel.com/
>
> I fixed the 0x80000005 leaf for Intel and Zhaoxin based on your feedback
> by the way.
>
> It looks like the unified cache_info would be very compatible with
> various vendor needs and corner cases. So I'll respin this series based
> on that cache_info series.
>
> Before sending the patch, I was thinking that maybe I could help you
> rebase and include your Yongfeng cache model patch you added into my v2
> series, or you could rebase and send it yourself afterward. Which way do
> you like?
It would be great if you could include the Yongfeng cache-model patch in your v2
series. Let me know if you need any more information about the Yongfeng cache
model. After you submit v2, I can review the Zhaoxin parts and make any
necessary code changes if needed.
And thanks again for taking Zhaoxin into account.
>
> And for TLB, we can wait and see what maintainers think. Maybe it is
> possible, considering that the cache also transitioned from hardcoding
> to a cache model (since commit 7e3482f82480).
>
Let's wait.> Thanks,
> Zhao
>
next prev parent reply other threads:[~2025-06-25 1:16 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-23 11:46 [RFC 00/10] i386/cpu: Cache CPUID fixup, Intel cache model & topo CPUID enhencement Zhao Liu
2025-04-23 11:46 ` [RFC 01/10] i386/cpu: Mark CPUID[0x80000005] as reserved for Intel Zhao Liu
2025-04-23 13:05 ` Xiaoyao Li
2025-04-24 2:52 ` Zhao Liu
2025-04-24 13:44 ` Ewan Hai
2025-04-25 9:39 ` Zhao Liu
2025-05-26 8:35 ` Ewan Hai
2025-05-27 9:15 ` Zhao Liu
2025-05-27 9:56 ` Ewan Hai
2025-06-24 7:22 ` Zhao Liu
2025-06-24 11:04 ` Ewan Hai [this message]
2025-06-25 3:03 ` Zhao Liu
2025-06-25 2:54 ` Ewan Hai
2025-06-25 9:19 ` Zhao Liu
2025-06-25 10:05 ` Ewan Hai
2025-04-23 11:46 ` [RFC 02/10] i386/cpu: Fix CPUID[0x80000006] for Intel CPU Zhao Liu
2025-04-23 11:46 ` [RFC 03/10] i386/cpu: Introduce cache model for SierraForest Zhao Liu
2025-04-23 11:46 ` [RFC 04/10] i386/cpu: Introduce cache model for GraniteRapids Zhao Liu
2025-04-23 11:46 ` [RFC 05/10] i386/cpu: Introduce cache model for SapphireRapids Zhao Liu
2025-04-24 4:54 ` Tejus GK
2025-04-24 6:53 ` Zhao Liu
2025-04-23 11:46 ` [RFC 06/10] i386/cpu: Introduce enable_cpuid_0x1f to force exposing CPUID 0x1f Zhao Liu
2025-05-13 12:45 ` Igor Mammedov
2025-05-14 15:23 ` Zhao Liu
2025-05-15 6:43 ` Xiaoyao Li
2025-04-23 11:46 ` [RFC 07/10] i386/cpu: Add a "cpuid-0x1f" property Zhao Liu
2025-04-23 11:47 ` [RFC 08/10] i386/cpu: Enable 0x1f leaf for SierraForest by default Zhao Liu
2025-04-23 11:47 ` [RFC 09/10] i386/cpu: Enable 0x1f leaf for GraniteRapids " Zhao Liu
2025-04-23 11:47 ` [RFC 10/10] i386/cpu: Enable 0x1f leaf for SapphireRapids " Zhao Liu
2025-04-24 6:57 ` [RFC 00/10] i386/cpu: Cache CPUID fixup, Intel cache model & topo CPUID enhencement Zhao Liu
2025-05-26 10:52 ` Ewan Hai
2025-05-27 9:19 ` Zhao Liu
2025-05-27 9:58 ` Ewan Hai
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=8bab0159-54d3-4f48-aadf-23491171018d@zhaoxin.com \
--to=ewanhai-oc@zhaoxin.com \
--cc=Frankzhu@zhaoxin.com \
--cc=MaryFeng@zhaoxin.com \
--cc=Runaguo@zhaoxin.com \
--cc=Xanderchen@zhaoxin.com \
--cc=babu.moger@amd.com \
--cc=berrange@redhat.com \
--cc=cobechen@zhaoxin.com \
--cc=imammedo@redhat.com \
--cc=jason.zeng@intel.com \
--cc=kvm@vger.kernel.org \
--cc=manish.mishra@nutanix.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=tao1.su@intel.com \
--cc=tejus.gk@nutanix.com \
--cc=xiaoyao.li@intel.com \
--cc=yeeli@zhaoxin.com \
--cc=zhao1.liu@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).