Re:ARM64 CPUs speculatively execute instructions after ERET
by saagarjha on Wednesday December 18, 2019 @11:38AM
(#21826586)
Is there an actual thing as a “speculation barrier“ instruction on any real platform? Linux has it be ish/dsb because nothing seems to support it: https://github.com/torvalds/linux/blob/cef7298262e9af841fb70...
[ Parent
| on HN ]
Re:ARM64 CPUs speculatively execute instructions after ERET
by mdriley on Wednesday December 18, 2019 @02:29PM
(#21828366)
An actual speculation barrier (SB) instruction was added in later releases of ARMv8.0:
- https://cpu.fyi/d/047#G6.11222648
- https://cpu.fyi/d/047#E9.CHDHDDBE
along with the Consumption of Speculative Data Barrier (CSDB): https://cpu.fyi/d/047#G9.10257993
But, as noted elsewhere in this thread, the canonical choice in most systems is DSB/ISB. Just one or the other isn't sufficient because they synchronize different things.
The canonical barriers on other platforms are LFENCE (x86) and SYNC (PowerPC).
For more references, see:
- https://github.com/google/safeside/blob/5fb6f00f/demos/asm/m...
- https://github.com/google/safeside/blob/5fb6f00f/demos/asm/m...
- https://github.com/google/safeside/blob/5fb6f00f/demos/asm/m...
[disclosure: I work on the Safeside project and wrote cpu.fyi as a side project]
Re:ARM64 CPUs speculatively execute instructions after ERET
by saagarjha on Wednesday December 18, 2019 @03:16PM
(#21828943)
Unrelated question: are you using PDF.js to render those?
Re:ARM64 CPUs speculatively execute instructions after ERET
by mdriley on Wednesday December 18, 2019 @03:19PM
(#21828976)
I am. The goal was to create permalinks to specific sections of CPU reference PDFs.
Re:ARM64 CPUs speculatively execute instructions after ERET
by saagarjha on Wednesday December 18, 2019 @03:29PM
(#21829083)
And it does that quite well. Thanks for this!
Re:ARM64 CPUs speculatively execute instructions after ERET
by cesarb on Wednesday December 18, 2019 @11:56AM
(#21826793)
That looks like an "alternative" block, which means it's patched at runtime to use that instruction when it's available.
Re:ARM64 CPUs speculatively execute instructions after ERET
by saagarjha on Wednesday December 18, 2019 @12:56PM
(#21827409)
Right, it's there because future CPUs may have that instruction. Do you know of any that have it today?
Re:ARM64 CPUs speculatively execute instructions after ERET
by tedunangst on Wednesday December 18, 2019 @12:15PM
(#21826997)
The retconned VERW may qualify in some sense.