From 8436acd6ba8c37c560171923dca2407c56438c7a Mon Sep 17 00:00:00 2001 From: Chao Zhu Date: Thu, 4 Dec 2014 18:14:08 +0800 Subject: [PATCH] kni: fix build on IBM Power 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 Acked-by: Thomas Monjalon --- .../linuxapp/eal/include/exec-env/rte_kni_common.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h index e548161bee..1e55c2d96f 100644 --- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h +++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h @@ -68,6 +68,10 @@ */ #define RTE_KNI_NAMESIZE 32 +#ifndef RTE_CACHE_LINE_SIZE +#define RTE_CACHE_LINE_SIZE 64 /**< Cache line size. */ +#endif + /* * Request id. */ @@ -108,7 +112,7 @@ struct rte_kni_fifo { * 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]; @@ -118,7 +122,7 @@ struct rte_kni_mbuf { 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; }; -- 2.20.1