[Bug target/91043] GCC produces unaligned vmovdqa vector data access
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jul 1 13:57:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91043
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Hanoch Haim from comment #12)
> Removing __rte_cache_aligned does not solve the issue
>
>
> diff --git a/src/time_histogram.h b/src/time_histogram.h
> index 07e66b49..26a37248 100755
> --- a/src/time_histogram.h
> +++ b/src/time_histogram.h
> @@ -133,10 +133,10 @@ private:
> uint32_t m_win_cnt;
> uint32_t m_hot_max;
> dsec_t m_max_ar[HISTOGRAM_QUEUE_SIZE]; // Array of maximum latencies
> for previous periods
> - uint64_t m_hcnt[HISTOGRAM_SIZE_LOG][HISTOGRAM_SIZE] __rte_cache_aligned
> ;
> + uint64_t m_hcnt[HISTOGRAM_SIZE_LOG][HISTOGRAM_SIZE] ;
> // Hdr histogram instance
> hdr_histogram *m_hdrh;
> -};
> +} __rte_cache_aligned;
There are more aligned attributes. I see
class CLatencyManager : public TrexRxCore {
...
volatile bool m_do_stop __attribute__((__aligned__(64))) ;
struct rte_ring {
char name[32] __attribute__((__aligned__(64)));
class CFlowGenListPerThread {
...
} __attribute__((__aligned__(64)));
etc.
Can you check the .bss section Alignment in the final executable/shared object?
Do you by chance substitute the program loader for something not honoring
large alignment of .bss sections?
More information about the Gcc-bugs
mailing list