Thank you Omar, this is indeed the same issue.
> -----Original Message----- > From: Omar Cardona <[email protected]> > Sent: Wednesday, May 13, 2020 11:08 AM > To: Tal Shnaiderman <[email protected]>; Dmitry Kozlyuk > <[email protected]>; Thomas Monjalon <[email protected]>; > [email protected]; [email protected]; > [email protected]; Harini Ramakrishnan > <[email protected]>; Dmitry Malloy (MESHCHANINOV) > <[email protected]>; Yohad Tor <[email protected]>; Jie Zhou > <[email protected]> > Cc: [email protected] > Subject: RE: rte_mbuf structure size in Windows > > Tal, > See attached compiler bug section for details. > > -----Original Message----- > From: Omar Cardona > Sent: Wednesday, May 13, 2020 1:04 AM > To: Tal Shnaiderman <[email protected]>; Dmitry Kozlyuk > <[email protected]>; Thomas Monjalon <[email protected]>; > [email protected]; [email protected]; > [email protected]; Harini Ramakrishnan > <[email protected]>; Dmitry Malloy (MESHCHANINOV) > <[email protected]>; Yohad Tor <[email protected]>; Jie Zhou > <[email protected]> > Cc: [email protected] > Subject: RE: rte_mbuf structure size in Windows > > IIRC, it's this issue. > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs. > llvm.org%2Fshow_bug.cgi%3Fid%3D24383&data=02%7C01%7Ctalshn%4 > 0mellanox.com%7C2987047b646b4854350e08d7f714b2ea%7Ca652971c7d2e4 > d9ba6a4d149256f461b%7C0%7C0%7C637249540596603575&sdata=83m > NExOvXtXpKIt%2FZaqkoZadkuGpX1olQE3Scc1xOAQ%3D&reserved=0 > > -----Original Message----- > From: Tal Shnaiderman <[email protected]> > Sent: Wednesday, May 13, 2020 12:55 AM > To: Dmitry Kozlyuk <[email protected]>; Thomas Monjalon > <[email protected]>; [email protected]; > [email protected]; [email protected]; Harini > Ramakrishnan <[email protected]>; Omar Cardona > <[email protected]>; Dmitry Malloy (MESHCHANINOV) > <[email protected]>; Yohad Tor <[email protected]> > Cc: [email protected] > Subject: [EXTERNAL] rte_mbuf structure size in Windows > > Hi, > > I've noticed that there is a difference between the size of rte_mbuf in a Unix > build comparing to Windows. > > The requirements is for rte_mbuf is to be RTE_CACHE_LINE_MIN_SIZE * 2 > bytes however when I'm building it in Windows the size is > RTE_CACHE_LINE_MIN_SIZE * 3. > > Looks like the diff results from the usage of bit fields inside rte_mbuf, from > my testing it looks to me like the usage of 2 different bit fielded types > inside > rte_mbuf causes additional padding in Windows. > > For example from rte_mbuf, the following unions have the same size in > Windows and Linux: > > union { > uint32_t packet_type; > // bit fields of type uint32_t will follow > ... > };... > > 4 bytes both in Unix and Windows. > > union { > uint64_t tx_offload; > // bit fields of type uint64_t will follow > ... > }; > > 8 bytes both in Unix and Windows. > > However when creating a struct containing both unions I'm getting sizeof 16 > bytes in Unix and 24 bytes in Windows. > > Did someone faced this issue before? Is this a result of different alignment > between gcc and clang when bit fields are used? > > Thanks, > > Tal

