You need to sign in or sign up before continuing.
提交 35108223 编写于 作者: J Jason Wang 提交者: Michael S. Tsirkin

KVM: add support for any length io eventfd

Signed-off-by: NJason Wang <jasowang@redhat.com>
Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
上级 b8aecea2
...@@ -53,6 +53,7 @@ extern bool kvm_gsi_routing_allowed; ...@@ -53,6 +53,7 @@ extern bool kvm_gsi_routing_allowed;
extern bool kvm_gsi_direct_mapping; extern bool kvm_gsi_direct_mapping;
extern bool kvm_readonly_mem_allowed; extern bool kvm_readonly_mem_allowed;
extern bool kvm_direct_msi_allowed; extern bool kvm_direct_msi_allowed;
extern bool kvm_ioeventfd_any_length_allowed;
#if defined CONFIG_KVM || !defined NEED_CPU_H #if defined CONFIG_KVM || !defined NEED_CPU_H
#define kvm_enabled() (kvm_allowed) #define kvm_enabled() (kvm_allowed)
...@@ -153,6 +154,12 @@ extern bool kvm_direct_msi_allowed; ...@@ -153,6 +154,12 @@ extern bool kvm_direct_msi_allowed;
*/ */
#define kvm_direct_msi_enabled() (kvm_direct_msi_allowed) #define kvm_direct_msi_enabled() (kvm_direct_msi_allowed)
/**
* kvm_ioeventfd_any_length_enabled:
* Returns: true if KVM allows any length io eventfd.
*/
#define kvm_ioeventfd_any_length_enabled() (kvm_ioeventfd_any_length_allowed)
#else #else
#define kvm_enabled() (0) #define kvm_enabled() (0)
#define kvm_irqchip_in_kernel() (false) #define kvm_irqchip_in_kernel() (false)
...@@ -166,6 +173,7 @@ extern bool kvm_direct_msi_allowed; ...@@ -166,6 +173,7 @@ extern bool kvm_direct_msi_allowed;
#define kvm_gsi_direct_mapping() (false) #define kvm_gsi_direct_mapping() (false)
#define kvm_readonly_mem_enabled() (false) #define kvm_readonly_mem_enabled() (false)
#define kvm_direct_msi_enabled() (false) #define kvm_direct_msi_enabled() (false)
#define kvm_ioeventfd_any_length_enabled() (false)
#endif #endif
struct kvm_run; struct kvm_run;
......
...@@ -109,6 +109,7 @@ bool kvm_allowed; ...@@ -109,6 +109,7 @@ bool kvm_allowed;
bool kvm_readonly_mem_allowed; bool kvm_readonly_mem_allowed;
bool kvm_vm_attributes_allowed; bool kvm_vm_attributes_allowed;
bool kvm_direct_msi_allowed; bool kvm_direct_msi_allowed;
bool kvm_ioeventfd_any_length_allowed;
static const KVMCapabilityInfo kvm_required_capabilites[] = { static const KVMCapabilityInfo kvm_required_capabilites[] = {
KVM_CAP_INFO(USER_MEMORY), KVM_CAP_INFO(USER_MEMORY),
...@@ -1611,6 +1612,9 @@ static int kvm_init(MachineState *ms) ...@@ -1611,6 +1612,9 @@ static int kvm_init(MachineState *ms)
kvm_vm_attributes_allowed = kvm_vm_attributes_allowed =
(kvm_check_extension(s, KVM_CAP_VM_ATTRIBUTES) > 0); (kvm_check_extension(s, KVM_CAP_VM_ATTRIBUTES) > 0);
kvm_ioeventfd_any_length_allowed =
(kvm_check_extension(s, KVM_CAP_IOEVENTFD_ANY_LENGTH) > 0);
ret = kvm_arch_init(ms, s); ret = kvm_arch_init(ms, s);
if (ret < 0) { if (ret < 0) {
goto err; goto err;
......
...@@ -30,6 +30,7 @@ bool kvm_gsi_routing_allowed; ...@@ -30,6 +30,7 @@ bool kvm_gsi_routing_allowed;
bool kvm_gsi_direct_mapping; bool kvm_gsi_direct_mapping;
bool kvm_allowed; bool kvm_allowed;
bool kvm_readonly_mem_allowed; bool kvm_readonly_mem_allowed;
bool kvm_ioeventfd_any_length_allowed;
int kvm_init_vcpu(CPUState *cpu) int kvm_init_vcpu(CPUState *cpu)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册