kvm: allow target-specific accelerator properties
Several hypervisor capabilities in KVM are target-specific. When exposed to QEMU users as accelerator properties (i.e. -accel kvm,prop=value), they should not be available for all targets. Add a hook for targets to add their own properties to -accel kvm, for now no such property is defined. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220929072014.20705-3-chenyi.qiang@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									12f89a39cf
								
							
						
					
					
						commit
						3dba0a335c
					
				@ -3731,6 +3731,8 @@ static void kvm_accel_class_init(ObjectClass *oc, void *data)
 | 
				
			|||||||
        NULL, NULL);
 | 
					        NULL, NULL);
 | 
				
			||||||
    object_class_property_set_description(oc, "dirty-ring-size",
 | 
					    object_class_property_set_description(oc, "dirty-ring-size",
 | 
				
			||||||
        "Size of KVM dirty page ring buffer (default: 0, i.e. use bitmap)");
 | 
					        "Size of KVM dirty page ring buffer (default: 0, i.e. use bitmap)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    kvm_arch_accel_class_init(oc);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const TypeInfo kvm_accel_type = {
 | 
					static const TypeInfo kvm_accel_type = {
 | 
				
			||||||
 | 
				
			|||||||
@ -349,6 +349,8 @@ bool kvm_device_supported(int vmfd, uint64_t type);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
extern const KVMCapabilityInfo kvm_arch_required_capabilities[];
 | 
					extern const KVMCapabilityInfo kvm_arch_required_capabilities[];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void kvm_arch_accel_class_init(ObjectClass *oc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run);
 | 
					void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run);
 | 
				
			||||||
MemTxAttrs kvm_arch_post_run(CPUState *cpu, struct kvm_run *run);
 | 
					MemTxAttrs kvm_arch_post_run(CPUState *cpu, struct kvm_run *run);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1056,3 +1056,7 @@ bool kvm_arch_cpu_check_are_resettable(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void kvm_arch_accel_class_init(ObjectClass *oc)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -5468,3 +5468,7 @@ void kvm_request_xsave_components(X86CPU *cpu, uint64_t mask)
 | 
				
			|||||||
        mask &= ~BIT_ULL(bit);
 | 
					        mask &= ~BIT_ULL(bit);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void kvm_arch_accel_class_init(ObjectClass *oc)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1294,3 +1294,7 @@ bool kvm_arch_cpu_check_are_resettable(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void kvm_arch_accel_class_init(ObjectClass *oc)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -2966,3 +2966,7 @@ bool kvm_arch_cpu_check_are_resettable(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void kvm_arch_accel_class_init(ObjectClass *oc)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -532,3 +532,7 @@ bool kvm_arch_cpu_check_are_resettable(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void kvm_arch_accel_class_init(ObjectClass *oc)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -2581,3 +2581,7 @@ int kvm_s390_get_zpci_op(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    return cap_zpci_op;
 | 
					    return cap_zpci_op;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void kvm_arch_accel_class_init(ObjectClass *oc)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user