summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChao Zhu <chaozhu@linux.vnet.ibm.com>2014-12-04 18:14:08 +0800
committerThomas Monjalon <thomas.monjalon@6wind.com>2014-12-04 12:59:03 +0100
commit8436acd6ba8c37c560171923dca2407c56438c7a (patch)
tree2fa1c3cc604d6bbc2a4922f9dc511181e32b176a
parenta0547e0a751100e6d1a783e69f5bfad85890845f (diff)
downloaddpdk-8436acd6ba8c37c560171923dca2407c56438c7a.zip
dpdk-8436acd6ba8c37c560171923dca2407c56438c7a.tar.gz
dpdk-8436acd6ba8c37c560171923dca2407c56438c7a.tar.xz
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 <chaozhu@linux.vnet.ibm.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
-rw-r--r--lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h8
1 files 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 e548161..1e55c2d 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;
};