https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91043
--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #14) > (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? You can also check with a debugger whether your global static object is properly aligned.