From: Zhao Liu <zhao1.liu@linux.intel.com>
To: Xiaoyao Li <xiaoyao.li@intel.com>
Cc: Yuan Yao <yuan.yao@linux.intel.com>,
Eduardo Habkost <eduardo@habkost.net>,
Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
qemu-devel@nongnu.org, kvm@vger.kernel.org,
Zhenyu Wang <zhenyu.z.wang@intel.com>,
Zhuocheng Ding <zhuocheng.ding@intel.com>,
Zhao Liu <zhao1.liu@intel.com>, Babu Moger <babu.moger@amd.com>,
Yongwei Ma <yongwei.ma@intel.com>
Subject: Re: [PATCH v7 08/16] i386: Expose module level in CPUID[0x1F]
Date: Mon, 15 Jan 2024 23:46:53 +0800 [thread overview]
Message-ID: <ZaVTbY6m0/qUyeKK@intel.com> (raw)
In-Reply-To: <00873298-06b5-4286-9c92-54376ed2d09d@intel.com>
Hi Xiaoyao,
On Mon, Jan 15, 2024 at 03:16:43PM +0800, Xiaoyao Li wrote:
> Date: Mon, 15 Jan 2024 15:16:43 +0800
> From: Xiaoyao Li <xiaoyao.li@intel.com>
> Subject: Re: [PATCH v7 08/16] i386: Expose module level in CPUID[0x1F]
>
> On 1/15/2024 2:35 PM, Zhao Liu wrote:
> > On Mon, Jan 15, 2024 at 02:11:17PM +0800, Xiaoyao Li wrote:
> > > Date: Mon, 15 Jan 2024 14:11:17 +0800
> > > From: Xiaoyao Li <xiaoyao.li@intel.com>
> > > Subject: Re: [PATCH v7 08/16] i386: Expose module level in CPUID[0x1F]
> > >
> > > On 1/15/2024 2:12 PM, Zhao Liu wrote:
> > > > Hi Xiaoyao,
> > > >
> > > > On Mon, Jan 15, 2024 at 12:34:12PM +0800, Xiaoyao Li wrote:
> > > > > Date: Mon, 15 Jan 2024 12:34:12 +0800
> > > > > From: Xiaoyao Li <xiaoyao.li@intel.com>
> > > > > Subject: Re: [PATCH v7 08/16] i386: Expose module level in CPUID[0x1F]
> > > > >
> > > > > > Yes, I think it's time to move to default 0x1f.
> > > > >
> > > > > we don't need to do so until it's necessary.
> > > >
> > > > Recent and future machines all support 0x1f, and at least SDM has
> > > > emphasized the preferred use of 0x1f.
> > >
> > > The preference is the guideline for software e.g., OS. QEMU doesn't need to
> > > emulate cpuid leaf 0x1f to guest if there is only smt and core level.
> >
> > Please, QEMU is emulating hardware not writing software.
>
> what I want to conveyed was that, SDM is teaching software how to probe the
> cpu topology, not suggesting VMM how to advertise cpu topology to guest.
>
This reflects the hardware's behavioral tendency. Additionally, due to SDM
related suggestion about 0x1f preference, lots of new software may rely on
0x1f, making 0x1f as the default enabling leaf helps to enhance Guest
compatibility.
>
> > Is there any
> > reason why we shouldn't emulate new and generic hardware behaviors and
> > stick with the old ones?
>
> I didn't say we shouldn't, but we don't need to do it if it's unnecessary.
Probably never going to deprecate 0x0b, and 0x1f is in fact replacing 0x0b,
kind of like a timing issue, when should 0x1f be enabled by default?
Maybe for some new CPU models or -host, we can start making it as default.
This eliminates the difference in the CPU topology enumeration interface
between Host and Guest. What do you think?
>
> if cpuid 0x1f is advertised to guest by default, it will also introduce the
> inconsistence. Old product doesn't have cpuid 0x1f, but using QEMU to
> emualte an old product, it has.
Yes, this is the similar case as 0x0b. Old machine doens't has 0x0b. And
QEMU uses cpuid-0xb option to resolve compatibility issue.
>
> sure we can have code to fix it, that only expose 0x1f to new enough cpu
> model. But it just make thing complicated.
>
> > > because in this case, they are exactly the same in leaf 0xb and 0x1f. we don't
> > > need to bother advertising the duplicate data.
> >
> > You can't "define" the same 0x0b and 0x1f as duplicates. SDM doesn't
> > have such the definition.
>
> for QEMU, they are duplicate data that need to be maintained and need to be
> passed to KVM by KVM_SET_CPUID. For guest, it's also unnecessary, because it
> doesn't provide any additional information with cpuid leaf 1f.
I understand your concerns. The benefit is to follow the behavior of the
new hardware and spec recommendations, on new machines people are going
to be more accustomed to using 0x1f to get topology, and VMs on new
machines that don't have 0x1f will tend to get confused.
I could start by having a look at if we could synchronize Host in -host
to enable 0x1f. If there isn't too much block, -host is an acceptable
starting point, after all, there are no additional compatibility issues
for this case. ;-)
Thanks,
Zhao
>
> SDM keeps cpuid 0xb is for backwards compatibility.
>
next prev parent reply other threads:[~2024-01-15 15:34 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-08 8:27 [PATCH v7 00/16] Support smp.clusters for x86 in QEMU Zhao Liu
2024-01-08 8:27 ` [PATCH v7 01/16] i386/cpu: Fix i/d-cache topology to core level for Intel CPU Zhao Liu
2024-01-08 8:27 ` [PATCH v7 02/16] i386/cpu: Use APIC ID offset to encode cache topo in CPUID[4] Zhao Liu
2024-01-10 9:31 ` Xiaoyao Li
2024-01-11 8:43 ` Zhao Liu
2024-01-14 14:11 ` Xiaoyao Li
2024-01-15 3:04 ` Zhao Liu
2024-01-15 3:51 ` Xiaoyao Li
2024-01-15 4:16 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 03/16] i386/cpu: Consolidate the use of topo_info in cpu_x86_cpuid() Zhao Liu
2024-01-10 11:52 ` Xiaoyao Li
2024-01-11 8:46 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 04/16] i386: Split topology types of CPUID[0x1F] from the definitions of CPUID[0xB] Zhao Liu
2024-01-08 8:27 ` [PATCH v7 05/16] i386: Decouple CPUID[0x1F] subleaf with specific topology level Zhao Liu
2024-01-11 3:19 ` Xiaoyao Li
2024-01-11 9:07 ` Zhao Liu
2024-01-23 9:56 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 06/16] i386: Introduce module-level cpu topology to CPUX86State Zhao Liu
2024-01-08 8:27 ` [PATCH v7 07/16] i386: Support modules_per_die in X86CPUTopoInfo Zhao Liu
2024-01-11 5:53 ` Xiaoyao Li
2024-01-11 9:18 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 08/16] i386: Expose module level in CPUID[0x1F] Zhao Liu
2024-01-11 6:04 ` Xiaoyao Li
2024-01-11 9:21 ` Zhao Liu
2024-01-15 3:25 ` Yuan Yao
2024-01-15 4:09 ` Zhao Liu
2024-01-15 4:34 ` Xiaoyao Li
2024-01-15 5:20 ` Yuan Yao
2024-01-15 6:20 ` Zhao Liu
2024-01-15 6:57 ` Yuan Yao
2024-01-15 7:20 ` Zhao Liu
2024-01-15 9:03 ` Yuan Yao
2024-01-15 6:12 ` Zhao Liu
2024-01-15 6:11 ` Xiaoyao Li
2024-01-15 6:35 ` Zhao Liu
2024-01-15 7:16 ` Xiaoyao Li
2024-01-15 15:46 ` Zhao Liu [this message]
2024-01-08 8:27 ` [PATCH v7 09/16] i386: Support module_id in X86CPUTopoIDs Zhao Liu
2024-01-14 12:42 ` Xiaoyao Li
2024-01-15 3:52 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 10/16] i386/cpu: Introduce cluster-id to X86CPU Zhao Liu
2024-01-14 13:49 ` Xiaoyao Li
2024-01-15 3:27 ` Zhao Liu
2024-01-15 4:18 ` Xiaoyao Li
2024-01-15 5:59 ` Zhao Liu
2024-01-15 7:45 ` Xiaoyao Li
2024-01-15 15:18 ` Zhao Liu
2024-01-16 16:40 ` Xiaoyao Li
2024-01-19 7:59 ` Zhao Liu
2024-01-26 3:37 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 11/16] tests: Add test case of APIC ID for module level parsing Zhao Liu
2024-01-08 8:27 ` [PATCH v7 12/16] hw/i386/pc: Support smp.clusters for x86 PC machine Zhao Liu
2024-01-08 8:27 ` [PATCH v7 13/16] i386: Add cache topology info in CPUCacheInfo Zhao Liu
2024-01-08 8:27 ` [PATCH v7 14/16] i386: Use CPUCacheInfo.share_level to encode CPUID[4] Zhao Liu
2024-01-14 14:31 ` Xiaoyao Li
2024-01-15 3:40 ` Zhao Liu
2024-01-15 4:25 ` Xiaoyao Li
2024-01-15 6:25 ` Zhao Liu
2024-01-15 7:00 ` Xiaoyao Li
2024-01-15 14:55 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 15/16] i386: Use offsets get NumSharingCache for CPUID[0x8000001D].EAX[bits 25:14] Zhao Liu
2024-01-14 14:42 ` Xiaoyao Li
2024-01-15 3:48 ` Zhao Liu
2024-01-15 4:27 ` Xiaoyao Li
2024-01-15 14:54 ` Zhao Liu
2024-01-08 8:27 ` [PATCH v7 16/16] i386: Use CPUCacheInfo.share_level to encode " Zhao Liu
2024-01-08 17:46 ` [PATCH v7 00/16] Support smp.clusters for x86 in QEMU Moger, Babu
2024-01-09 1:48 ` Zhao Liu
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=ZaVTbY6m0/qUyeKK@intel.com \
--to=zhao1.liu@linux.intel.com \
--cc=babu.moger@amd.com \
--cc=eduardo@habkost.net \
--cc=kvm@vger.kernel.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=xiaoyao.li@intel.com \
--cc=yongwei.ma@intel.com \
--cc=yuan.yao@linux.intel.com \
--cc=zhao1.liu@intel.com \
--cc=zhenyu.z.wang@intel.com \
--cc=zhuocheng.ding@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).