summaryrefslogtreecommitdiff
path: root/rust/helpers/signal.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2025-04-26 11:51:49 +0200
committerPeter Zijlstra <peterz@infradead.org>2025-08-18 14:23:05 +0200
commit6204aea36b74cd2001a142e92e492e301597eafb (patch)
tree544926c8837f6ec628df81dfaf66bd6a8e0f86d9 /rust/helpers/signal.c
parent0cb6f1e436accba7882bb3115408d1474c1e14af (diff)
KVM: x86: Introduce EM_ASM_1
Replace fastops with C based stubs. There are a bunch of problems with the current fastop infrastructure, most all related to their special calling convention, which bypasses the normal C-ABI. There are two immediate problems with this at present: - it relies on RET preserving EFLAGS; whereas C-ABI does not. - it circumvents compiler based control-flow-integrity checking because its all asm magic. The first is a problem for some mitigations where the x86_indirect_return_thunk needs to include non-trivial work that clobbers EFLAGS (eg. the Skylake call depth tracking thing). The second is a problem because it presents a 'naked' indirect call on kCFI builds, making it a prime target for control flow hijacking. Additionally, given that a large chunk of virtual machine performance relies on absolutely avoiding vmexit these days, this emulation stuff just isn't that critical for performance anymore. As such, replace the fastop calls with normal C functions using the 'execute' member. As noted by Paolo: this code was performance critical for pre-Westmere (2010) and only when running big real mode code. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Sean Christopherson <seanjc@google.com> Link: https://lkml.kernel.org/r/20250714103439.773781574@infradead.org
Diffstat (limited to 'rust/helpers/signal.c')
0 files changed, 0 insertions, 0 deletions