Current code in eal_trace_init() specifies 8 byte alignment for CTF
generation, but fallback code in __rte_trace_mem_per_thread() does
not enforce similar requirements when calling malloc(). Modify fallback
heap requests to use posix_memalign() with proper alignment.

Signed-off-by: David Christensen <d...@linux.ibm.com>
Bugzilla-ID: 1715
---
 lib/eal/common/eal_common_trace.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/eal/common/eal_common_trace.c 
b/lib/eal/common/eal_common_trace.c
index be1f78a68d..3dadd58e3e 100644
--- a/lib/eal/common/eal_common_trace.c
+++ b/lib/eal/common/eal_common_trace.c
@@ -363,8 +363,11 @@ __rte_trace_mem_per_thread_alloc(void)
                goto found;
        }

-       /* Second attempt from heap */
-       header = malloc(trace_mem_sz(trace->buff_len));
+       /* Second attempt from heap with proper alignment*/
+        size_t mem_size = trace_mem_sz(trace->buff_len);
+        void *aligned_ptr = NULL;
+        int ret = posix_memalign(&aligned_ptr, 8, mem_size);
+        header = (ret == 0) ? aligned_ptr : NULL;
        if (header == NULL) {
                trace_crit("trace mem malloc attempt failed");
                header = NULL;
--
2.43.5

Reply via email to