One of Intel's new ways to make software go faster is called Transactional Synchronization Extensions (TSX), an innovation that gives developers fine control over how multi-threaded code uses a CPU's resources.
TSX is a reasonably big deal, because as Intel never tires of pointing out it long-ago decided that grunt alone is not the way to keep Moore's Law alive. Chipzilla instead decided that cleverness is the way to go, hence today's multi-core chips and innovations like TSX that allow developers to use just about every cycle they offer.
So far so good … except for one small problem first noticed by Techreport, namely that TSX is broken in early batches of CPUs that are supposed to offer the feature.
The problem is described in this errata document (PDF) for the Xeon E3-1200 v3 Product Family. Errata are Intel's notes about chip performance.
The one for TSX offers the following advice:
Problem: Under a complex set of internal timing conditions and system events, software using the Intel TSX instructions may result in unpredictable system behavior. Implication: This erratum may result in unpredictable system behavior. Workaround: It is possible for the BIOS to contain a workaround for this erratum.
That workaround is a motherboard firmware update that, once installed, pushes a microcode patch to the processor to simply turn TSX off. Once it's off, so is the chance of “unpredictable system behavior”.
Intel's saying the workaround, and the bug, are not a big deal and won't be present in Haswell products once they ship in volume. That will happen with the forthcoming Haswell-EX, an 18-to-20-core bruiser expected to land in early 2015.
Chipzilla's also advising that you can, if you choose to do so, tweak firmware so that TSX will work in current CPUs. With “a complex set of internal timing conditions and system events” required to trigger the bug, that may well mean that developers can at least play with TSX in non-production environments. Which may well be the dominant use for the technology at this point in its life anyway. ®