diff options
author | Liran Alon <liran.alon@oracle.com> | 2018-03-12 13:12:52 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2018-03-16 22:01:43 +0100 |
commit | 9718420e9fd462ac6b7ea840f9e63eb6af7e1bda (patch) | |
tree | cf8ffb44c2dec7e3e8faae138e196c2c456d469b /lib/cmpdi2.c | |
parent | 9e86948041f2ec6b7868d4849181cb7bb1bdee70 (diff) | |
download | op-kernel-dev-9718420e9fd462ac6b7ea840f9e63eb6af7e1bda.zip op-kernel-dev-9718420e9fd462ac6b7ea840f9e63eb6af7e1bda.tar.gz |
KVM: x86: SVM: Intercept #GP to support access to VMware backdoor ports
If KVM enable_vmware_backdoor module parameter is set,
the commit change VMX to now intercept #GP instead of being directly
deliviered from CPU to guest.
It is done to support access to VMware Backdoor I/O ports
even if TSS I/O permission denies it.
In that case:
1. A #GP will be raised and intercepted.
2. #GP intercept handler will simulate I/O port access instruction.
3. I/O port access instruction simulation will allow access to VMware
backdoor ports specifically even if TSS I/O permission bitmap denies it.
Note that the above change introduce slight performance hit as now #GPs
are now not deliviered directly from CPU to guest but instead
cause #VMExit and instruction emulation.
However, this behavior is introduced only when enable_vmware_backdoor
KVM module parameter is set.
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'lib/cmpdi2.c')
0 files changed, 0 insertions, 0 deletions