lib: fix cache alignment of structures
authorJia Yu <jyu@vmware.com>
Fri, 7 Nov 2014 17:28:09 +0000 (09:28 -0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 11 Dec 2014 00:42:02 +0000 (01:42 +0100)
Include rte_memory.h for lib files that use __rte_cache_aligned
attribute.

Consider the following code:

struct per_core_foo {
...
} __rte_cache_aligned;

struct global_foo {
struct per_core_foo foo[RTE_MAX_CORE];
};

If __rte_cache_aligned is not defined (rte_memory.h is not included),
the code compiles but the structure is not aligned... it defines the
structure and creates a global variable called __rte_cache_aligned.
And this can lead to really bad things if this code is in a .h that
is included by files that may or may not include rte_memory.h

Signed-off-by: Jia Yu <jyu@vmware.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
15 files changed:
lib/librte_distributor/rte_distributor.c
lib/librte_eal/common/include/rte_malloc_heap.h
lib/librte_ip_frag/rte_ip_frag.h
lib/librte_malloc/malloc_elem.h
lib/librte_mbuf/rte_mbuf.h
lib/librte_port/rte_port_frag.c
lib/librte_table/rte_table_acl.c
lib/librte_table/rte_table_array.c
lib/librte_table/rte_table_hash_ext.c
lib/librte_table/rte_table_hash_key16.c
lib/librte_table/rte_table_hash_key32.c
lib/librte_table/rte_table_hash_key8.c
lib/librte_table/rte_table_hash_lru.c
lib/librte_table/rte_table_lpm.c
lib/librte_table/rte_table_lpm_ipv6.c

index aa2f740..e0fdb4c 100644 (file)
@@ -35,6 +35,7 @@
 #include <sys/queue.h>
 #include <string.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_memzone.h>
 #include <rte_errno.h>
 #include <rte_string_fns.h>
index f727b7a..716216f 100644 (file)
@@ -37,6 +37,7 @@
 #include <stddef.h>
 #include <sys/queue.h>
 #include <rte_spinlock.h>
+#include <rte_memory.h>
 
 /* Number of free lists per heap, grouped by size. */
 #define RTE_HEAP_NUM_FREELISTS  5
index 230a903..3989a5a 100644 (file)
@@ -46,6 +46,7 @@
 
 #include <rte_malloc.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_ip.h>
 #include <rte_byteorder.h>
 
index 72f22a1..9790b1a 100644 (file)
@@ -34,6 +34,8 @@
 #ifndef MALLOC_ELEM_H_
 #define MALLOC_ELEM_H_
 
+#include <rte_memory.h>
+
 /* dummy definition of struct so we can use pointers to it in malloc_elem struct */
 struct malloc_heap;
 
index efdefc4..16059c6 100644 (file)
@@ -55,6 +55,7 @@
 
 #include <stdint.h>
 #include <rte_mempool.h>
+#include <rte_memory.h>
 #include <rte_atomic.h>
 #include <rte_prefetch.h>
 #include <rte_branch_prediction.h>
index 57d930b..ff0ab9b 100644 (file)
@@ -34,6 +34,7 @@
 
 #include <rte_ether.h>
 #include <rte_ip_frag.h>
+#include <rte_memory.h>
 
 #include "rte_port_frag.h"
 
index 8a6eb0d..4416311 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_log.h>
 
index 4d3c05e..c031070 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_log.h>
 
index f34b56d..66e416b 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_log.h>
 
index 9455416..ee5f639 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_log.h>
 
index 7e65516..da0ce6a 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_log.h>
 
index 4b99dba..443ca7d 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_log.h>
 
index 5460a88..c9a8afd 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_log.h>
 
index cf92619..64c684d 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_byteorder.h>
 #include <rte_log.h>
index 2818c25..ce4ddc0 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <rte_common.h>
 #include <rte_mbuf.h>
+#include <rte_memory.h>
 #include <rte_malloc.h>
 #include <rte_byteorder.h>
 #include <rte_log.h>