Commit a28e4f5a authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Avi Kivity

KVM: add basic paravirt support

Add basic KVM paravirt support. Avoid vm-exits on IO delays.
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent 308b0f23
...@@ -820,6 +820,7 @@ int kvm_dev_ioctl_check_extension(long ext) ...@@ -820,6 +820,7 @@ int kvm_dev_ioctl_check_extension(long ext)
case KVM_CAP_EXT_CPUID: case KVM_CAP_EXT_CPUID:
case KVM_CAP_CLOCKSOURCE: case KVM_CAP_CLOCKSOURCE:
case KVM_CAP_PIT: case KVM_CAP_PIT:
case KVM_CAP_NOP_IO_DELAY:
r = 1; r = 1;
break; break;
case KVM_CAP_VAPIC: case KVM_CAP_VAPIC:
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
* paravirtualization, the appropriate feature bit should be checked. * paravirtualization, the appropriate feature bit should be checked.
*/ */
#define KVM_CPUID_FEATURES 0x40000001 #define KVM_CPUID_FEATURES 0x40000001
#define KVM_FEATURE_CLOCKSOURCE 0 #define KVM_FEATURE_CLOCKSOURCE 0
#define KVM_FEATURE_NOP_IO_DELAY 1
#define MSR_KVM_WALL_CLOCK 0x11 #define MSR_KVM_WALL_CLOCK 0x11
#define MSR_KVM_SYSTEM_TIME 0x12 #define MSR_KVM_SYSTEM_TIME 0x12
......
...@@ -237,6 +237,7 @@ struct kvm_vapic_addr { ...@@ -237,6 +237,7 @@ struct kvm_vapic_addr {
#define KVM_CAP_NR_VCPUS 9 /* returns max vcpus per vm */ #define KVM_CAP_NR_VCPUS 9 /* returns max vcpus per vm */
#define KVM_CAP_NR_MEMSLOTS 10 /* returns max memory slots per vm */ #define KVM_CAP_NR_MEMSLOTS 10 /* returns max memory slots per vm */
#define KVM_CAP_PIT 11 #define KVM_CAP_PIT 11
#define KVM_CAP_NOP_IO_DELAY 12
/* /*
* ioctls for VM fds * ioctls for VM fds
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment