public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <nik.borisov@suse.com>
To: Kai Huang <kai.huang@intel.com>, linux-kernel@vger.kernel.org
Cc: x86@kernel.org, dave.hansen@intel.com, dan.j.williams@intel.com,
	kirill.shutemov@linux.intel.com, rick.p.edgecombe@intel.com,
	peterz@infradead.org, tglx@linutronix.de, bp@alien8.de,
	mingo@redhat.com, hpa@zytor.com, seanjc@google.com,
	pbonzini@redhat.com, kvm@vger.kernel.org,
	isaku.yamahata@intel.com, binbin.wu@linux.intel.com
Subject: Re: [PATCH 3/9] x86/virt/tdx: Support global metadata read for all element sizes
Date: Tue, 18 Jun 2024 14:42:19 +0300	[thread overview]
Message-ID: <a7552693-e0df-4225-9cbf-a5f482900626@suse.com> (raw)
In-Reply-To: <210f7747058e01c4d2ed683660a4cb18c5d88440.1718538552.git.kai.huang@intel.com>

<snip>

>   
> -static int read_sys_metadata_field16(u64 field_id,
> -				     int offset,
> -				     void *stbuf)
> +/*
> + * Read one global metadata field and store the data to a location of a
> + * given buffer specified by the offset and size (in bytes).
> + */
> +static int stbuf_read_sysmd_field(u64 field_id, void *stbuf, int offset,

read_system_metadat_field or read_sys_metadata_field or simply
read_metadata_field

> +				  int bytes)
s/bytes/size
>   {
> -	u16 *st_member = stbuf + offset;
> +	void *st_member = stbuf + offset;

Again, this could be renamed to just 'member', what value does the 'st' 
prefix bring?

>   	u64 tmp;
>   	int ret;
>   
> -	if (WARN_ON_ONCE(MD_FIELD_ID_ELE_SIZE_CODE(field_id) !=
> -			MD_FIELD_ID_ELE_SIZE_16BIT))
> +	if (WARN_ON_ONCE(MD_FIELD_BYTES(field_id) != bytes))
>   		return -EINVAL;
>   
>   	ret = read_sys_metadata_field(field_id, &tmp);
>   	if (ret)
>   		return ret;
>   
> -	*st_member = tmp;
> +	memcpy(st_member, &tmp, bytes);
>   
>   	return 0;
>   }
> @@ -294,11 +296,13 @@ static int read_sys_metadata_field16(u64 field_id,
>   struct field_mapping {
>   	u64 field_id;
>   	int offset;
> +	int size;
>   };
>   
> -#define TD_SYSINFO_MAP(_field_id, _struct, _member)	\
> -	{ .field_id = MD_FIELD_ID_##_field_id,		\
> -	  .offset   = offsetof(_struct, _member) }
> +#define TD_SYSINFO_MAP(_field_id, _struct, _member)		\
> +	{ .field_id = MD_FIELD_ID_##_field_id,			\
> +	  .offset   = offsetof(_struct, _member),		\
> +	  .size	    = sizeof(typeof(((_struct *)0)->_member)) }
>   
>   #define TD_SYSINFO_MAP_TDMR_INFO(_field_id, _member)	\
>   	TD_SYSINFO_MAP(_field_id, struct tdx_tdmr_sysinfo, _member)
> @@ -319,9 +323,8 @@ static int get_tdx_tdmr_sysinfo(struct tdx_tdmr_sysinfo *tdmr_sysinfo)
>   
>   	/* Populate 'tdmr_sysinfo' fields using the mapping structure above: */
>   	for (i = 0; i < ARRAY_SIZE(fields); i++) {
> -		ret = read_sys_metadata_field16(fields[i].field_id,
> -						fields[i].offset,
> -						tdmr_sysinfo);
> +		ret = stbuf_read_sysmd_field(fields[i].field_id, tdmr_sysinfo,
> +				fields[i].offset, fields[i].size);
>   		if (ret)
>   			return ret;
>   	}
> diff --git a/arch/x86/virt/vmx/tdx/tdx.h b/arch/x86/virt/vmx/tdx/tdx.h
> index b701f69485d3..812943516946 100644
> --- a/arch/x86/virt/vmx/tdx/tdx.h
> +++ b/arch/x86/virt/vmx/tdx/tdx.h
> @@ -53,7 +53,8 @@
>   #define MD_FIELD_ID_ELE_SIZE_CODE(_field_id)	\
>   		(((_field_id) & GENMASK_ULL(33, 32)) >> 32)
>   
> -#define MD_FIELD_ID_ELE_SIZE_16BIT	1
> +#define MD_FIELD_BYTES(_field_id)	\

Just name it MD_FIELD_SIZE, even the MD_FIELD_ID member is called 
ELEMENT_SIZE_CODE, rather than ELEMENT_BYTES_CODE or some such.

> +		(1 << MD_FIELD_ID_ELE_SIZE_CODE(_field_id))
>   
>   struct tdmr_reserved_area {
>   	u64 offset;

  reply	other threads:[~2024-06-18 11:42 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-16 12:01 [PATCH 0/9] TDX host: metadata reading tweaks, bug fix and info dump Kai Huang
2024-06-16 12:01 ` [PATCH 1/9] x86/virt/tdx: Rename _offset to _member for TD_SYSINFO_MAP() macro Kai Huang
2024-06-16 12:01 ` [PATCH 2/9] x86/virt/tdx: Unbind global metadata read with 'struct tdx_tdmr_sysinfo' Kai Huang
2024-06-18 11:23   ` Nikolay Borisov
2024-06-18 23:29     ` Huang, Kai
2024-06-16 12:01 ` [PATCH 3/9] x86/virt/tdx: Support global metadata read for all element sizes Kai Huang
2024-06-18 11:42   ` Nikolay Borisov [this message]
2024-06-18 23:28     ` Huang, Kai
2024-06-19  8:05   ` Nikolay Borisov
2024-06-19  9:51     ` Huang, Kai
2024-06-16 12:01 ` [PATCH 4/9] x86/virt/tdx: Abstract reading multiple global metadata fields as a helper Kai Huang
2024-06-18 11:45   ` Nikolay Borisov
2024-06-18 23:42     ` Huang, Kai
2024-06-16 12:01 ` [PATCH 5/9] x86/virt/tdx: Move field mapping table of getting TDMR info to function local Kai Huang
2024-06-18 11:47   ` Nikolay Borisov
2024-06-18 23:44     ` Huang, Kai
2024-06-16 12:01 ` [PATCH 6/9] x86/virt/tdx: Start to track all global metadata in one structure Kai Huang
2024-06-18 13:17   ` Nikolay Borisov
2024-06-18 23:54     ` Huang, Kai
2024-06-16 12:01 ` [PATCH 7/9] x86/virt/tdx: Print TDX module basic information Kai Huang
2024-06-18 13:52   ` Nikolay Borisov
2024-06-19  0:22     ` Huang, Kai
2024-06-16 12:01 ` [PATCH 8/9] x86/virt/tdx: Exclude memory region hole within CMR as TDMR's reserved area Kai Huang
2024-06-17 10:54   ` Chao Gao
2024-06-18  0:12     ` Huang, Kai
2024-06-18 15:10   ` Nikolay Borisov
2024-06-19  1:23     ` Huang, Kai
2024-06-19  4:58       ` Huang, Kai
2024-07-05  3:00       ` Binbin Wu
2024-07-05  9:36         ` Huang, Kai
2024-06-16 12:01 ` [PATCH 9/9] x86/virt/tdx: Don't initialize module that doesn't support NO_RBP_MOD feature Kai Huang
2024-06-18 15:12   ` Nikolay Borisov

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=a7552693-e0df-4225-9cbf-a5f482900626@suse.com \
    --to=nik.borisov@suse.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dan.j.williams@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=hpa@zytor.com \
    --cc=isaku.yamahata@intel.com \
    --cc=kai.huang@intel.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rick.p.edgecombe@intel.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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