On Thu, Jun 20, 2019 at 5:19 AM Nicholas Piggin <npiggin@xxxxxxxxx> wrote: > > The processor aliasing problem happens because the struct will > be initialised with stores using one base register (e.g., stack > register), and then same memory is loaded using a different > register (e.g., parameter register). Hmm. Honestly, I've never seen anything like that in any kernel profiles. Compared to the problems I _do_ see (which is usually the obvious cache misses, and locking), it must either be in the noise or it's some problem specific to whatever CPU you are doing performance work on? I've occasionally seen pipeline hiccups in profiles, but it's usually been either some serious glass jaw of the core, or it's been something really stupid we did (or occasionally that the compiler did: one in particular I remember was how there was a time when gcc would narrow stores when it could, so if you set a bit in a word, it would do it with a byte store, and then when you read the whole word afterwards you'd get a major pipeline stall and it happened to show up in some really hot paths). Linus