LLVM Lands Support For ARMv8.5's Branch Target Identification (BTI)
A bulk of the Linux/open-source enablement we have seen taking place for ARM's new ARMv8.5 architecture revision is around its new Spectre defenses to help SoCs that will begin shipping later in 2019.
Back in September the first of the ARMv8.5 support began landing in the LLVM/Clang compiler and it's work to battle Spectre-style vulnerabilities. That work included speculation restriction system registers, a new speculation barrier, prediction invalidation instructions, and SSBB/PSSBB speculation barriers. ARMv8.5 also brings some additions outside of the Spectre/security space like new persistent memory instructions and random number instructions.
In the Linux kernel space, patches are pending that implement Speculation Store Bypass Safe for ARMv8.5 and will be included in the Linux 4.20~5.0 kernel.
The latest work on the compiler front landing in the LLVM tree is for Branch Target Identification or BTI for short and for helping fend off Spectre Variant Two with ARMv8.5.
Branch Target Identification allows marking of valid targets of indirect branches and the CPU will trap an instruction in a protected page that is trying to perform an indirect branch to an instruction other than a marked BTI.
Developers interested in more of the technical details of ARMv8.5 BTI can find them via this patch comment on the code merged earlier this week. These initial ARMv8.5 additions will be found in the LLVM Clang 8.0 update due out in early 2019.
Back in September the first of the ARMv8.5 support began landing in the LLVM/Clang compiler and it's work to battle Spectre-style vulnerabilities. That work included speculation restriction system registers, a new speculation barrier, prediction invalidation instructions, and SSBB/PSSBB speculation barriers. ARMv8.5 also brings some additions outside of the Spectre/security space like new persistent memory instructions and random number instructions.
In the Linux kernel space, patches are pending that implement Speculation Store Bypass Safe for ARMv8.5 and will be included in the Linux 4.20~5.0 kernel.
The latest work on the compiler front landing in the LLVM tree is for Branch Target Identification or BTI for short and for helping fend off Spectre Variant Two with ARMv8.5.
Branch Target Identification allows marking of valid targets of indirect branches and the CPU will trap an instruction in a protected page that is trying to perform an indirect branch to an instruction other than a marked BTI.
Developers interested in more of the technical details of ARMv8.5 BTI can find them via this patch comment on the code merged earlier this week. These initial ARMv8.5 additions will be found in the LLVM Clang 8.0 update due out in early 2019.
1 Comment