mirror of https://github.com/xemu-project/xemu.git
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_kernel_irqchip;
|
||||||
extern bool kvm_async_interrupts_allowed;
|
extern bool kvm_async_interrupts_allowed;
|
||||||
extern bool kvm_halt_in_kernel_allowed;
|
extern bool kvm_halt_in_kernel_allowed;
|
||||||
|
extern bool kvm_eventfds_allowed;
|
||||||
extern bool kvm_irqfds_allowed;
|
extern bool kvm_irqfds_allowed;
|
||||||
extern bool kvm_msi_via_irqfd_allowed;
|
extern bool kvm_msi_via_irqfd_allowed;
|
||||||
extern bool kvm_gsi_routing_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)
|
#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:
|
* kvm_irqfds_enabled:
|
||||||
*
|
*
|
||||||
|
@ -128,6 +138,7 @@ extern bool kvm_readonly_mem_allowed;
|
||||||
#define kvm_irqchip_in_kernel() (false)
|
#define kvm_irqchip_in_kernel() (false)
|
||||||
#define kvm_async_interrupts_enabled() (false)
|
#define kvm_async_interrupts_enabled() (false)
|
||||||
#define kvm_halt_in_kernel() (false)
|
#define kvm_halt_in_kernel() (false)
|
||||||
|
#define kvm_eventfds_enabled() (false)
|
||||||
#define kvm_irqfds_enabled() (false)
|
#define kvm_irqfds_enabled() (false)
|
||||||
#define kvm_msi_via_irqfd_enabled() (false)
|
#define kvm_msi_via_irqfd_enabled() (false)
|
||||||
#define kvm_gsi_routing_allowed() (false)
|
#define kvm_gsi_routing_allowed() (false)
|
||||||
|
|
|
@ -113,6 +113,7 @@ KVMState *kvm_state;
|
||||||
bool kvm_kernel_irqchip;
|
bool kvm_kernel_irqchip;
|
||||||
bool kvm_async_interrupts_allowed;
|
bool kvm_async_interrupts_allowed;
|
||||||
bool kvm_halt_in_kernel_allowed;
|
bool kvm_halt_in_kernel_allowed;
|
||||||
|
bool kvm_eventfds_allowed;
|
||||||
bool kvm_irqfds_allowed;
|
bool kvm_irqfds_allowed;
|
||||||
bool kvm_msi_via_irqfd_allowed;
|
bool kvm_msi_via_irqfd_allowed;
|
||||||
bool kvm_gsi_routing_allowed;
|
bool kvm_gsi_routing_allowed;
|
||||||
|
@ -1541,6 +1542,9 @@ int kvm_init(MachineClass *mc)
|
||||||
(kvm_check_extension(s, KVM_CAP_READONLY_MEM) > 0);
|
(kvm_check_extension(s, KVM_CAP_READONLY_MEM) > 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
kvm_eventfds_allowed =
|
||||||
|
(kvm_check_extension(s, KVM_CAP_IOEVENTFD) > 0);
|
||||||
|
|
||||||
ret = kvm_arch_init(s);
|
ret = kvm_arch_init(s);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
goto err;
|
goto err;
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
KVMState *kvm_state;
|
KVMState *kvm_state;
|
||||||
bool kvm_kernel_irqchip;
|
bool kvm_kernel_irqchip;
|
||||||
bool kvm_async_interrupts_allowed;
|
bool kvm_async_interrupts_allowed;
|
||||||
|
bool kvm_eventfds_allowed;
|
||||||
bool kvm_irqfds_allowed;
|
bool kvm_irqfds_allowed;
|
||||||
bool kvm_msi_via_irqfd_allowed;
|
bool kvm_msi_via_irqfd_allowed;
|
||||||
bool kvm_gsi_routing_allowed;
|
bool kvm_gsi_routing_allowed;
|
||||||
|
|
Loading…
Reference in New Issue