mbuf: enforce alignment of private area
authorOlivier Matz <olivier.matz@6wind.com>
Thu, 30 Jul 2015 16:22:17 +0000 (18:22 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sun, 2 Aug 2015 22:38:26 +0000 (00:38 +0200)
commita386a3e124d09cf672cc43178018b96a52bc069b
treec48c0e9dc89d4652f636d483bb5bcb9d3769ce2b
parent113c8e13c4201eee207723571f83aaf285277d75
mbuf: enforce alignment of private area

It looks better to have a data buffer address that is aligned to
8 bytes. This is the case when there is no mbuf private area, but
if there is one, the alignment depends on the size of this area
that is located between the mbuf structure and the data buffer.

Indeed, some drivers expects to have the buffer address aligned
to an even address, and moreover an unaligned buffer may impact
the performance when accessing to network headers.

Add a check in rte_pktmbuf_pool_create() to verify the alignment
constraint before creating the mempool. For applications that use
the alternative way (direct call to rte_mempool_create), also
add an assertion in rte_pktmbuf_init().

By the way, also add the MBUF log type.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_eal/common/include/rte_log.h
lib/librte_mbuf/rte_mbuf.c
lib/librte_mbuf/rte_mbuf.h