-
nospec
macro - lfence when swapping gs
- Enhanced IBRS on Cascade Lake+ /
-mindirect-branch=thunk
for indirect branches / "optpolines" for software branch prediction -
-mfunction-return=thunk
on Skylake+ for return stack underflows - Indirect branch predictor barrier (IBPB) instruction on context switch between user processes.
- KAISER / kernel page table isolation
- RSB on context switch (+other times?) to prevent Return Stack Underflow
- new microcode
- Set SSBD bit in the IA32_SPEC_CTRL MSR
- In Ubuntu, SSBD is OFF by default because it is not needed by most programs and carries a notable performance impact.
- TODO
- TODO
- TODO
- Either present bit set or PTE=0 in all page tables
- Clear buffers on kernel exit with VERW instruction and disable HT
- Fixed in “select 8th+ gen hardware”
- VERW + disable HT
- VERW + disable HT
- VERW + disable HT
- VERW + disable HT
- Disable HT or hardware transactional memory
- Disable HT
- Retpolines in userspace