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_readonly_mem_allowed;
 | 
			
		||||
extern bool kvm_direct_msi_allowed;
 | 
			
		||||
extern bool kvm_ioeventfd_any_length_allowed;
 | 
			
		||||
 | 
			
		||||
#if defined CONFIG_KVM || !defined NEED_CPU_H
 | 
			
		||||
#define kvm_enabled()           (kvm_allowed)
 | 
			
		||||
| 
						 | 
				
			
			@ -153,6 +154,12 @@ extern bool 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
 | 
			
		||||
#define kvm_enabled()           (0)
 | 
			
		||||
#define kvm_irqchip_in_kernel() (false)
 | 
			
		||||
| 
						 | 
				
			
			@ -166,6 +173,7 @@ extern bool kvm_direct_msi_allowed;
 | 
			
		|||
#define kvm_gsi_direct_mapping() (false)
 | 
			
		||||
#define kvm_readonly_mem_enabled() (false)
 | 
			
		||||
#define kvm_direct_msi_enabled() (false)
 | 
			
		||||
#define kvm_ioeventfd_any_length_enabled() (false)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
struct kvm_run;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,6 +109,7 @@ bool kvm_allowed;
 | 
			
		|||
bool kvm_readonly_mem_allowed;
 | 
			
		||||
bool kvm_vm_attributes_allowed;
 | 
			
		||||
bool kvm_direct_msi_allowed;
 | 
			
		||||
bool kvm_ioeventfd_any_length_allowed;
 | 
			
		||||
 | 
			
		||||
static const KVMCapabilityInfo kvm_required_capabilites[] = {
 | 
			
		||||
    KVM_CAP_INFO(USER_MEMORY),
 | 
			
		||||
| 
						 | 
				
			
			@ -1611,6 +1612,9 @@ static int kvm_init(MachineState *ms)
 | 
			
		|||
    kvm_vm_attributes_allowed =
 | 
			
		||||
        (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);
 | 
			
		||||
    if (ret < 0) {
 | 
			
		||||
        goto err;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,6 +30,7 @@ bool kvm_gsi_routing_allowed;
 | 
			
		|||
bool kvm_gsi_direct_mapping;
 | 
			
		||||
bool kvm_allowed;
 | 
			
		||||
bool kvm_readonly_mem_allowed;
 | 
			
		||||
bool kvm_ioeventfd_any_length_allowed;
 | 
			
		||||
 | 
			
		||||
int kvm_init_vcpu(CPUState *cpu)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue