kni: fix build on IBM Power
authorChao Zhu <chaozhu@linux.vnet.ibm.com>
Thu, 4 Dec 2014 10:14:08 +0000 (18:14 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 4 Dec 2014 11:59:03 +0000 (12:59 +0100)
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>
lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h

index e548161..1e55c2d 100644 (file)
  */
 #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;
 };