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/