Add kvm_eventfds_enabled function
Add a function to check if the eventfd capability is present in KVM in the host kernel. Signed-off-by: Antonios Motakis <a.motakis@virtualopensystems.com> Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.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
f57fcf7063
commit
69e03ae64b
@ -43,6 +43,7 @@ extern bool kvm_allowed;
|
||||
extern bool kvm_kernel_irqchip;
|
||||
extern bool kvm_async_interrupts_allowed;
|
||||
extern bool kvm_halt_in_kernel_allowed;
|
||||
extern bool kvm_eventfds_allowed;
|
||||
extern bool kvm_irqfds_allowed;
|
||||
extern bool kvm_msi_via_irqfd_allowed;
|
||||
extern bool kvm_gsi_routing_allowed;
|
||||
@ -82,6 +83,15 @@ extern bool kvm_readonly_mem_allowed;
|
||||
*/
|
||||
#define kvm_halt_in_kernel() (kvm_halt_in_kernel_allowed)
|
||||
|
||||
/**
|
||||
* kvm_eventfds_enabled:
|
||||
*
|
||||
* Returns: true if we can use eventfds to receive notifications
|
||||
* from a KVM CPU (ie the kernel supports eventds and we are running
|
||||
* with a configuration where it is meaningful to use them).
|
||||
*/
|
||||
#define kvm_eventfds_enabled() (kvm_eventfds_allowed)
|
||||
|
||||
/**
|
||||
* kvm_irqfds_enabled:
|
||||
*
|
||||
@ -128,6 +138,7 @@ extern bool kvm_readonly_mem_allowed;
|
||||
#define kvm_irqchip_in_kernel() (false)
|
||||
#define kvm_async_interrupts_enabled() (false)
|
||||
#define kvm_halt_in_kernel() (false)
|
||||
#define kvm_eventfds_enabled() (false)
|
||||
#define kvm_irqfds_enabled() (false)
|
||||
#define kvm_msi_via_irqfd_enabled() (false)
|
||||
#define kvm_gsi_routing_allowed() (false)
|
||||
|
@ -113,6 +113,7 @@ KVMState *kvm_state;
|
||||
bool kvm_kernel_irqchip;
|
||||
bool kvm_async_interrupts_allowed;
|
||||
bool kvm_halt_in_kernel_allowed;
|
||||
bool kvm_eventfds_allowed;
|
||||
bool kvm_irqfds_allowed;
|
||||
bool kvm_msi_via_irqfd_allowed;
|
||||
bool kvm_gsi_routing_allowed;
|
||||
@ -1541,6 +1542,9 @@ int kvm_init(MachineClass *mc)
|
||||
(kvm_check_extension(s, KVM_CAP_READONLY_MEM) > 0);
|
||||
#endif
|
||||
|
||||
kvm_eventfds_allowed =
|
||||
(kvm_check_extension(s, KVM_CAP_IOEVENTFD) > 0);
|
||||
|
||||
ret = kvm_arch_init(s);
|
||||
if (ret < 0) {
|
||||
goto err;
|
||||
|
@ -22,6 +22,7 @@
|
||||
KVMState *kvm_state;
|
||||
bool kvm_kernel_irqchip;
|
||||
bool kvm_async_interrupts_allowed;
|
||||
bool kvm_eventfds_allowed;
|
||||
bool kvm_irqfds_allowed;
|
||||
bool kvm_msi_via_irqfd_allowed;
|
||||
bool kvm_gsi_routing_allowed;
|
||||
|
Loading…
Reference in New Issue
Block a user