DragonFly kernel List (threaded) for 2012-03
AMD cpu bug update -- AMD confirms! (additional info)
Upfront before people dive this please note that Bulldozer is NOT
effected by this bug.
I talked with AMD a bit more after it got slashdotted and they suggested
that I include the second paragraph as well, because the slashdotting
created some confusion. I posted the clarification to slashdot
which I will include here. Here are both paragraphs:
AMD has taken your example and also analyzed the segmentation
fault and the fill_sons_in_loop code. We confirm that you have
found an erratum with some AMD processor families. The specific
compiled version of the fill_sons_in_loop code, through a very
specific sequence of consecutive back-to-back pops and (near)
return instructions, can create a condition where the processor
incorrectly updates the stack pointer.
AMD will be updating the Revision Guide for AMD Family
10h Processors and the Revision Guide for AMD Family
12h Processors, to document this erratum. In this documentation
update, which will be available on amd.com<http://amd.com/> later
this month, the erratum number for this issue will be #721. The
revision guide will also note a workaround that can be programmed
in a model-specific register (MSR).
(and in another email):
Bulldozer processors, by the way, do not have this erratum.
I don't know precisely which of the older family processors has the bug.
We will all have to wait for the errata to come out to get that info.
I can only attest to the two specific cpus I was testing on
(a Phenom II X4 820 and a quad-socket Opteron 6118 = 48 cores).
However, AMD has told me specifically that Bulldozer is NOT effected.
Here is a reference to the email I posted to the DragonFly lists
in December outlining my suspicions, for additional background on
what it took to narrow the bug down:
Again, while this is certainly a serious cpu bug it looks like there
will be a MSR fix for it on the older cpus. We will all have to wait
for AMD to finalize and publish the errata, now.