[dpdk-dev] rte_mbuf structure size in Windows

Tal Shnaiderman talshn at mellanox.com
Wed May 13 10:50:18 CEST 2020


Thank you Omar, this is indeed the same issue.

> -----Original Message-----
> From: Omar Cardona <ocardona at microsoft.com>
> Sent: Wednesday, May 13, 2020 11:08 AM
> To: Tal Shnaiderman <talshn at mellanox.com>; Dmitry Kozlyuk
> <dmitry.kozliuk at gmail.com>; Thomas Monjalon <thomas at monjalon.net>;
> pallavi.kadam at intel.com; navasile at linux.microsoft.com;
> ranjit.menon at intel.com; Harini Ramakrishnan
> <Harini.Ramakrishnan at microsoft.com>; Dmitry Malloy (MESHCHANINOV)
> <dmitrym at microsoft.com>; Yohad Tor <yohadt at mellanox.com>; Jie Zhou
> <jizh at microsoft.com>
> Cc: dev at dpdk.org
> 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 <talshn at mellanox.com>; Dmitry Kozlyuk
> <dmitry.kozliuk at gmail.com>; Thomas Monjalon <thomas at monjalon.net>;
> pallavi.kadam at intel.com; navasile at linux.microsoft.com;
> ranjit.menon at intel.com; Harini Ramakrishnan
> <Harini.Ramakrishnan at microsoft.com>; Dmitry Malloy (MESHCHANINOV)
> <dmitrym at microsoft.com>; Yohad Tor <yohadt at mellanox.com>; Jie Zhou
> <jizh at microsoft.com>
> Cc: dev at dpdk.org
> 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 <talshn at mellanox.com>
> Sent: Wednesday, May 13, 2020 12:55 AM
> To: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>; Thomas Monjalon
> <thomas at monjalon.net>; pallavi.kadam at intel.com;
> navasile at linux.microsoft.com; ranjit.menon at intel.com; Harini
> Ramakrishnan <Harini.Ramakrishnan at microsoft.com>; Omar Cardona
> <ocardona at microsoft.com>; Dmitry Malloy (MESHCHANINOV)
> <dmitrym at microsoft.com>; Yohad Tor <yohadt at mellanox.com>
> Cc: dev at dpdk.org
> 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


More information about the dev mailing list