Because of different cache line size, the alignment of struct
rte_kni_mbuf in rte_kni_common.h doesn't work on IBM Power. This patch
changed from 64 to RTE_CACHE_LINE_SIZE micro to do the alignment.
Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
*/
#define RTE_KNI_NAMESIZE 32
+#ifndef RTE_CACHE_LINE_SIZE
+#define RTE_CACHE_LINE_SIZE 64 /**< Cache line size. */
+#endif
+
/*
* Request id.
*/
* Padding is necessary to assure the offsets of these fields
*/
struct rte_kni_mbuf {
- void *buf_addr __attribute__((__aligned__(64)));
+ void *buf_addr __attribute__((__aligned__(RTE_CACHE_LINE_SIZE)));
char pad0[10];
uint16_t data_off; /**< Start address of data in segment buffer. */
char pad1[4];
uint32_t pkt_len; /**< Total pkt len: sum of all segment data_len. */
/* fields on second cache line */
- char pad3[8] __attribute__((__aligned__(64)));
+ char pad3[8] __attribute__((__aligned__(RTE_CACHE_LINE_SIZE)));
void *pool;
void *next;
};