Re: [PATCH v11 1/3] x86/tdx: Add TDX Guest attestation interface driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 8/28/22 10:30 PM, Greg Kroah-Hartman wrote:
>> struct tdx_report_req {
>>         __u64 reportdata;;
>>         __u64 tdreport;
>>         __u32 rpd_len
>>         __u32 tdr_len;
>>         __u8 subtype;
>> };
> That's better, but again, please use pahole.

Following are the pahole dump of both formats.

With previous format, compiler adds 11 bytes in holes and 4 bytes of
padding.

Total size of struct is 40 bytes.

struct tdx_report_req {
	__u8                       subtype;              /*     0     1 */

	/* XXX 7 bytes hole, try to pack */

	__u64                      reportdata;           /*     8     8 */
	__u32                      rpd_len;              /*    16     4 */

	/* XXX 4 bytes hole, try to pack */

	__u64                      tdreport;             /*    24     8 */
	__u32                      tdr_len;              /*    32     4 */

	/* size: 40, cachelines: 1, members: 5 */
	/* sum members: 25, holes: 2, sum holes: 11 */
	/* padding: 4 */
	/* last cacheline: 40 bytes */
};

With the changed format, we avoided the holes, but it still adds 7 bytes of padding.

Total size of struct is 32 bytes.

struct tdx_report_req {
	__u64                      reportdata;           /*     0     8 */
	__u64                      tdreport;             /*     8     8 */
	__u32                      rpd_len;              /*    16     4 */
	__u32                      tdr_len;              /*    20     4 */
	__u8                       subtype;              /*    24     1 */

	/* size: 32, cachelines: 1, members: 5 */
	/* padding: 7 */
	/* last cacheline: 32 bytes */
};



-- 
Sathyanarayanan Kuppuswamy
Linux Kernel Developer



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux