News for hackers. Stuff that matters.
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...
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.

https://github.com/mmdriley/cpu.fyi

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.