x86 - cpu_relax - why nop vs. pause?

From: Michael Breuer
Date: Sun Feb 07 2010 - 12:30:08 EST


I did search and noticed some old discussions. Looking at both Intel and AMD documentation, it would seem that PAUSE is the preferred instruction within a spin lock. Further, both Intel and AMD specifications state that the instruction is backward compatible with older x86 processors.

For fun, I changed nop to pause on my core i7 920 (smt enabled) and I'm seeing about a 5-10% performance improvement on 2.6.33 rc7. Perf top shows time spent in spin_lock under load drops from an average of around 35% to about 25%.

Thoughts?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/