All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiaoyao Li <xiaoyao.li@intel.com>
To: Binbin Wu <binbin.wu@linux.intel.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	seanjc@google.com, pbonzini@redhat.com,
	dave.hansen@linux.intel.com, andrew.cooper3@citrix.com,
	nik.borisov@suse.com, kas@kernel.org, rick.p.edgecombe@intel.com,
	chao.gao@intel.com, tony.lindgren@linux.intel.com,
	kishen.maloor@intel.com, dedekind1@gmail.com
Subject: Re: [PATCH v4 1/4] KVM: TDX: Track configurable CPUID bits allowed by KVM
Date: Thu, 24 Sep 2026 22:33:43 +0800	[thread overview]
Message-ID: <de109514-91b8-49a6-bbbe-c1f7f1ee407f@intel.com> (raw)
In-Reply-To: <8bcba51e-2a3b-44b8-89cd-aebfd1e50cfd@linux.intel.com>

On 9/24/2026 7:41 PM, Binbin Wu wrote:
>> After some search, I find that X86_FEATURE_CID (CPUID.0x1:ECX[10]) is related to
>> MSR_IA32_MISC_ENABLE[24], which seems to be a model specific bit.
>>
>> And on SDM, vol3. 14.5.6 L1 Data Cache Context Mode
>>
>>   L1 data cache context mode is a feature of processors based on the Intel
>>   NetBurst microarchitecture that support Intel Hyper-Threading Technology.
>>   When CPUID.01H:ECX[10] =1, the processor supports setting L1 data cache
>>   context mode using the L1 data cache context mode flag (IA32_MISC_ENABLE[bit
>>   24]). Selectable modes are adaptive mode (default) and shared mode.
>>
>> CPUID.0x1:ECX[10] is 0 on SPR and EMR (I didn't check more). It looks this CPUID
>> bit will not show up on any TDX capable CPUs. I think we can report it to TDX
>> architects and just make the bit fixed0 as a spec fix?
> I think we can confirm with the TDX module team. If it will never show up on TDX
> capable CPUs, then this is similar to PREFETCHWT1. 
> 
> But I am not sure we want new fixed-0 bits.

Leave it as current "Configured & Native" is also OK. Since no TDX capable CPU
has this bit as 1, it's effectively a fixed-0 bit.

>> For X86_FEATURE_PBE (CPUID.0x1:EDX[31]), it's related to bit 10 of MSR
>> IA32_MISC_ENABLE. The CPUID is 1 on SPR and EMR. But bit 10 of MSR
>> IA32_MISC_ENABLE is always 0 and setting bit 10 to 1 fails. It seems though
>> CPUID.0x1:EDX[31] is set to 1, but it's not related to bit 10 of MSR
>> IA32_MISC_ENABLE?
> In the ISE (319433-062, table 1-6), it says:
>   PBE:
>   Pending Break Enable. The processor supports the use of the FERR#/PBE# pin
>   when the processor is in the stop-clock state (STPCLK# is asserted) to signal
>   the processor that an interrupt is pending and that the processor should
>   return to normal operation to handle the interrupt. Bit 10 (PBE enable) in the
>   IA32_MISC_ENABLE MSR enables this capability.
> 
> TDX module doesn't allow IA32_MISC_ENABLE[10] to be 1 is since it's reserved
> TDCS.TD_CTLS.REDUCE_VE is set, so my understanding was the CPUID bit should be 0. 
> 
> It seems bit 10 is phased out in IA32_MISC_ENABLE on modern processors like SPR
> and EMR, since the bit 10 is reserved in "IA-32 Architectural MSRs" table. But
> somehow, CPUID still reports PBE as supported.

yeah. arch/x86/include/asm/msr-index.h divides the bits of MSR IA32_MISC_ENABLE
into two groups: architectural and model-specific. Bit 10 falls into model-specific.

Maybe we can ask internally why CPUID still reports 1.

> I don't know why the CPUID is disconnected with the MSR.
> But this bit is present on the host, I think we can add it to the allowlist.

I have opposite opinion. Since 1) this feature is related to hardware processor
PIN, 2) KVM never advertise it to normal VMs, and 3) no usage in kernel for this
feature. I think no TD relies on it and don't allow it should be OK.


  parent reply	other threads:[~2026-09-24 14:33 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-17  7:25 [PATCH v4 0/4] KVM: TDX: Validate directly configurable CPUID bits Binbin Wu
2026-09-17  7:25 ` [PATCH v4 1/4] KVM: TDX: Track configurable CPUID bits allowed by KVM Binbin Wu
2026-09-23  0:01   ` Edgecombe, Rick P
2026-09-23  0:14     ` Binbin Wu
2026-09-23  0:45       ` Edgecombe, Rick P
2026-09-23  0:57         ` Binbin Wu
2026-09-23  1:09           ` Edgecombe, Rick P
2026-09-23  1:17             ` Binbin Wu
2026-09-23 11:21               ` Xiaoyao Li
2026-09-23 14:25                 ` Edgecombe, Rick P
2026-09-24  2:05                   ` Xiaoyao Li
2026-09-24  6:36   ` Xiaoyao Li
2026-09-24  7:49     ` Binbin Wu
2026-09-24  9:30       ` Xiaoyao Li
2026-09-24 11:41         ` Binbin Wu
2026-09-24 13:55           ` Xiaoyao Li
2026-09-24 15:10             ` Binbin Wu
2026-09-24 14:33           ` Xiaoyao Li [this message]
2026-09-28  8:08             ` Binbin Wu
2026-09-28 23:58               ` Edgecombe, Rick P
2026-09-29  0:19                 ` Binbin Wu
2026-09-17  7:25 ` [PATCH v4 2/4] KVM: TDX: Report CORE_CAPABILITIES as configurable Binbin Wu
2026-09-22 21:11   ` Edgecombe, Rick P
2026-09-23  0:03     ` Binbin Wu
2026-09-24  6:44   ` Xiaoyao Li
2026-09-17  7:25 ` [PATCH v4 3/4] KVM: TDX: Filter configurable CPUID bits Binbin Wu
2026-09-23  0:16   ` Edgecombe, Rick P
2026-09-23  0:28     ` Binbin Wu
2026-09-23  0:34       ` Edgecombe, Rick P
2026-09-17  7:25 ` [PATCH v4 4/4] KVM: TDX: Validate userspace CPUID input for KVM_TDX_INIT_VM Binbin Wu
2026-09-23  0:16   ` Edgecombe, Rick P

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=de109514-91b8-49a6-bbbe-c1f7f1ee407f@intel.com \
    --to=xiaoyao.li@intel.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=chao.gao@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=dedekind1@gmail.com \
    --cc=kas@kernel.org \
    --cc=kishen.maloor@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nik.borisov@suse.com \
    --cc=pbonzini@redhat.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=seanjc@google.com \
    --cc=tony.lindgren@linux.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 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.