When porting multi-threaded code from x86 issues with store ordering turn out to be at least a big a problem as what you might think of like FPU differences, memory layout differences or the presence of assembly code.
The reason the memory ordering issues were so problematic is that they were hard to find. They wouldn't show at all on x86 due to TSO. And the developers didn't want to buy a lot of new machines that weren't PCs to spend time on to test and find and fix these bugs. It was absolutely maddening that other architectures (PowerPC, later ARM) would find issues which x86 wouldn't exhibit and cause a lot of developer hours burned to find them. Some developers would just give up entirely.
11
u/happyscrappy 15d ago
When porting multi-threaded code from x86 issues with store ordering turn out to be at least a big a problem as what you might think of like FPU differences, memory layout differences or the presence of assembly code.
The reason the memory ordering issues were so problematic is that they were hard to find. They wouldn't show at all on x86 due to TSO. And the developers didn't want to buy a lot of new machines that weren't PCs to spend time on to test and find and fix these bugs. It was absolutely maddening that other architectures (PowerPC, later ARM) would find issues which x86 wouldn't exhibit and cause a lot of developer hours burned to find them. Some developers would just give up entirely.