From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Zhu Subject: [PATCH] Fix KNI compiling issue on IBM Power Date: Thu, 4 Dec 2014 18:14:08 +0800 Message-ID: <1417688048-23076-2-git-send-email-chaozhu@linux.vnet.ibm.com> References: <1417688048-23076-1-git-send-email-chaozhu@linux.vnet.ibm.com> To: dev-VfR2kkLFssw@public.gmane.org Return-path: In-Reply-To: <1417688048-23076-1-git-send-email-chaozhu-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 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 --- .../linuxapp/eal/include/exec-env/rte_kni_common.h | 7 +++++-- 1 files changed, 5 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..6fc6442 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 @@ -67,6 +67,9 @@ * KNI name is part of memzone name. */ #define RTE_KNI_NAMESIZE 32 +#ifndef RTE_CACHE_LINE_SIZE +#define RTE_CACHE_LINE_SIZE 64 /**< Cache line size. */ +#endif /* * Request id. @@ -108,7 +111,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 +121,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; }; -- 1.7.1