I also enjoyed discovering that HTTPS didn’t work on Internet Explorer 5.5, jump jets recharged at 10% the expected rate in MechWarrior 2, and a certain modem worked on PCI slots 1 and 3 & didn’t work in PCI slots 2 and 4.
I also enjoyed discovering that HTTPS didn’t work on Internet Explorer 5.5, jump jets recharged at 10% the expected rate in MechWarrior 2, and a certain modem worked on PCI slots 1 and 3 & didn’t work in PCI slots 2 and 4.
The issue I remember the most clearly was one that an engineer Simon Barrett discovered: a specific sequence of MMX instructions would cross-talk (and cause the occasional bit to flip) on two perpendicular busses in the pipeline when run at a specific voltage/frequency. It sounds simple enough, but imagine trying to figure that one out.
https://youtrack.jetbrains.com/issue/JBR-2310#focus=streamIt...
Read the whole thing... it's a ride. Serious WTFBBQ with a side of potato salad.
Once Apple and/or Intel notices this there will probably be a microcode update. Until then if AWS or some other host fields Ice Lake based server cores you may be able to crash the VM host by starting up a Jetbrains IDE in a VM. LOL
The parent post on Transmeta QA shows that obscure bugs causing wacky edge cases are not that rare. It's a function of the complexity of modern chips, especially the X86 lineage with its crazy variable instruction widths and legacy cruft. You can, I think, still boot 16-bit DOS and Windows 3.1 on them!
ARM is intrinsically less prone to this due to simpler pipelines and less cruft, but ARM64 chips are still pretty complex. Any real world chip that has been around for a while is going to grow some hair on it. ARM has some shag but X86 is hairier than a wizened yak.
RISC-V is clean... for now. But there are no really high performance RV chips.
I wonder though... do they not fuzz chips? How do these things escape QA at a serious experienced house like Intel? I can understand obscure security issues slipping by but an a hard crash?
Did they rule out GPU driver crashes? They said it also occurs in VM, but didn't specify whether they had any guest integrations enabled.
Both of which featured driver models of... not too much system protection.
So applications (especially games) looked a lot more like their console cousins, in that they took advantage of all kinds of weird hacks and did things 1,000 different ways.
As opposed to now, when you have more strict intermediary layers, and software sits on top of more defined interfaces.
So things like "the MechWarrior developer in charge of jump jets decided to base timing off the PCI bus speed" or god knows what, isn't that surprising.
Did you use any specific stress-testing programs, or just tested with regular applications? Something like the LINPACK benchmark is extremely stressful on the CPU and memory system, and is commonly used today for system stability testing.
The only relevant metric: does it run the applications that customers use.
The Crusoe/Efficeon issues were performance related.
The computer is somewhat sluggish with huge software (like Firefox) and especially software that does JIT-compilation, maybe due to limited size of the "code-morphing" cache. For simple java programs the only way to make them start up timely was to fully disable the JIT-compiler.
But other than that it's a usable x86 machine (and all other laptops I know that are of similar age eventually failed to boot much earlier).
SPARC64 V | 191M transistors | 2001
DEC Alpha 21364 (EV7) | 152M transistors | 2003
SPARC64 V+ | 400M transistors | 2004
Cell | 250M transistors | 2005
POWER6 | 789M transistors | 2007
SPARC64 VI | 540M transistors | 2007
SPARC64 VIIIfx | 760M transistors | 2009
16-core SPARC T3 | 1B transistors | 2010
8-core POWER7 | 1.2B transistors | 2010
Quad-core z196 | 1.4B transistors | 2010
SPARC64 IXfx | 1.87B transistors | 2011
SPARC64 X | 2.99B transistors | 2012
8-core POWER7+ | 2.1B transistors | 2012
Apple A7 | 1B transistors | 2013
12-core POWER8 | 4.2B transistors | 2013
Apple A8 | 2B transistors | 2014
Apple A8X | 3B transistors | 2014
32-core SPARC M7 | 10B transistors | 2015
[insert a crapton of ARM CPUs here]
AWS Graviton2 | 30B transistors | 2019
Cloning other ISAs either from clean room or from licensed designs like ARM seems to be much easier than matching Intel CPUs with a massive breadth of software and less hard specifics at the edges.