From: Binbin Wu <binbin.wu@linux.intel.com>
To: Chao Gao <chao.gao@intel.com>
Cc: linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev,
kvm@vger.kernel.org, yilun.xu@linux.intel.com,
tony.lindgren@linux.intel.com, rick.p.edgecombe@intel.com,
nik.borisov@suse.com, Thomas Gleixner <tglx@kernel.org>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Kiryl Shutsemau <kas@kernel.org>
Subject: Re: [PATCH v4 07/10] x86/virt/tdx: Convert the td_conf metadata reader
Date: Tue, 13 Oct 2026 17:57:18 +0800 [thread overview]
Message-ID: <4c41933d-b43f-4ae7-8b80-fa97ef4d4623@linux.intel.com> (raw)
In-Reply-To: <20261012094754.27702-8-chao.gao@intel.com>
On 10/12/2026 5:47 PM, Chao Gao wrote:
> Continue converting the metadata readers to the table-driven helper.
>
> The "TD Configurability" class holds several scalar fields plus two CPUID
> arrays. The arrays have a fixed capacity, but the number of entries to
> read is variable and reported by the num_cpuid_config scalar field.
>
> Add a table that pairs each scalar field ID with the 'struct
> tdx_sys_info_td_conf' member that holds its value, and read those fields
> by walking that table.
>
> Annotate the table as __initconst as it is referenced only during init.
>
> Leave the two arrays open coded. 'struct field_mapping' pairs one field ID
> with one structure member, so describing an array would require a field ID
> per field plus an entry count that is unknown until num_cpuid_config has
> been read. That is not worth building for the only two arrays the kernel
> reads.
>
> Read both arrays in a single loop, as both have num_cpuid_config
> entries. Store each value directly into its array member instead of
> into a temporary u64 first. The members are u64 already, so the extra
> copies serve no purpose.
>
> The inner dimension of cpuid_config_values[] is fixed at 2. Read the
> two values with two calls instead of an inner loop. This saves a level
> of indentation and is simpler to read.
>
> AI was used under supervision to review code and workshop logs.
>
> Signed-off-by: Chao Gao <chao.gao@intel.com>
> ---
Reviewed-by: Binbin Wu <binbin.wu@linux.intel.com>
> +static __init int get_tdx_sys_info_td_conf(struct tdx_sys_info_td_conf *td_conf)
> +{
> + int ret, i;
> +
> + ret = read_sys_metadata_table(td_conf_mappings, td_conf);
> + if (ret)
> + return ret;
> +
> + /*
> + * The number of CPUID config entries must not exceed the array
> + * sizes.
> + */
Nit:
The comment seems to be redundant since the code itself tells it.
> + if (td_conf->num_cpuid_config > ARRAY_SIZE(td_conf->cpuid_config_leaves) ||
> + td_conf->num_cpuid_config > ARRAY_SIZE(td_conf->cpuid_config_values))
> + return -EINVAL;
> +
[...]
next prev parent reply other threads:[~2026-10-13 9:57 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 9:47 [PATCH v4 00/10] TDX: Stop auto-generating the global metadata code Chao Gao
2026-10-12 9:47 ` [PATCH v4 01/10] x86/virt/tdx: Add a helper to read a table of metadata fields Chao Gao
2026-10-13 7:00 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 02/10] x86/virt/tdx: Convert the version metadata reader Chao Gao
2026-10-13 8:22 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 03/10] x86/virt/tdx: Convert the features " Chao Gao
2026-10-13 8:45 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 04/10] x86/virt/tdx: Convert the tdmr " Chao Gao
2026-10-13 9:02 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 05/10] x86/virt/tdx: Convert the td_ctrl " Chao Gao
2026-10-13 9:13 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 06/10] x86/virt/tdx: Convert the handoff " Chao Gao
2026-10-13 9:21 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 07/10] x86/virt/tdx: Convert the td_conf " Chao Gao
2026-10-13 9:57 ` Binbin Wu [this message]
2026-10-12 9:47 ` [PATCH v4 08/10] x86/virt/tdx: Remove tdx_global_metadata.c Chao Gao
2026-10-13 10:18 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 09/10] x86/virt/tdx: Use early returns in get_tdx_sys_info() Chao Gao
2026-10-13 10:33 ` Binbin Wu
2026-10-12 9:47 ` [PATCH v4 10/10] x86/virt/tdx: Verify structure member sizes against metadata field IDs Chao Gao
2026-10-13 11:10 ` Binbin Wu
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=4c41933d-b43f-4ae7-8b80-fa97ef4d4623@linux.intel.com \
--to=binbin.wu@linux.intel.com \
--cc=bp@alien8.de \
--cc=chao.gao@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=kas@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nik.borisov@suse.com \
--cc=rick.p.edgecombe@intel.com \
--cc=tglx@kernel.org \
--cc=tony.lindgren@linux.intel.com \
--cc=x86@kernel.org \
--cc=yilun.xu@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.