lkml.org 
[lkml]   [2022]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v11 1/3] x86/tdx: Add TDX Guest attestation interface driver
From
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

\
 
 \ /
  Last update: 2022-08-29 22:10    [W:0.255 / U:0.596 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site