diff options
| author | Isaku Yamahata <[email protected]> | 2025-02-22 01:42:24 +0000 |
|---|---|---|
| committer | Paolo Bonzini <[email protected]> | 2025-03-14 18:20:55 +0000 |
| commit | 33608aaf71e16b2db5e0eaa7656505e1fef61e88 (patch) | |
| tree | d78b3fe12af0d25cc3edb464448631e6c667f034 /rust/helpers/workqueue.c | |
| parent | KVM: TDX: Handle TDG.VP.VMCALL<ReportFatalError> (diff) | |
| download | kernel-33608aaf71e16b2db5e0eaa7656505e1fef61e88.tar.gz kernel-33608aaf71e16b2db5e0eaa7656505e1fef61e88.zip | |
KVM: TDX: Handle TDX PV port I/O hypercall
Emulate port I/O requested by TDX guest via TDVMCALL with leaf
Instruction.IO (same value as EXIT_REASON_IO_INSTRUCTION) according to
TDX Guest Host Communication Interface (GHCI).
All port I/O instructions inside the TDX guest trigger the #VE exception.
On #VE triggered by I/O instructions, TDX guest can call TDVMCALL with
leaf Instruction.IO to request VMM to emulate I/O instructions.
Similar to normal port I/O emulation, try to handle the port I/O in kernel
first, if kernel can't support it, forward the request to userspace.
Note string I/O operations are not supported in TDX. Guest should unroll
them before calling the TDVMCALL.
Suggested-by: Sean Christopherson <[email protected]>
Signed-off-by: Isaku Yamahata <[email protected]>
Co-developed-by: Binbin Wu <[email protected]>
Signed-off-by: Binbin Wu <[email protected]>
Reviewed-by: Paolo Bonzini <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Diffstat (limited to 'rust/helpers/workqueue.c')
0 files changed, 0 insertions, 0 deletions
