mirror of https://github.com/xqemu/xqemu.git
KVM: add support for any length io eventfd
Signed-off-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
b8aecea23a
commit
351082238d
|
@ -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;
|
||||||
*/
|
*/
|
||||||
#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;
|
||||||
#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;
|
||||||
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)
|
||||||
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;
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue