target/i386/kvm: Return -1 when kvm_msr_energy_thread_init() fails
It is common practice to return a negative value (like -1) to indicate an error, and other functions in kvm_arch_init() follow this style. To avoid confusion (sometimes returned -1 indicates failure, and sometimes -1, in a same function), return -1 when kvm_msr_energy_thread_init() fails. Signed-off-by: Zhao Liu <zhao1.liu@intel.com> Link: https://lore.kernel.org/r/20241106030728.553238-10-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
fb81c9cfdd
commit
d7f895cb62
@ -2936,7 +2936,6 @@ static int kvm_msr_energy_thread_init(KVMState *s, MachineState *ms)
|
||||
{
|
||||
MachineClass *mc = MACHINE_GET_CLASS(ms);
|
||||
struct KVMMsrEnergy *r = &s->msr_energy;
|
||||
int ret = 0;
|
||||
|
||||
/*
|
||||
* Sanity check
|
||||
@ -2946,13 +2945,11 @@ static int kvm_msr_energy_thread_init(KVMState *s, MachineState *ms)
|
||||
if (!is_host_cpu_intel()) {
|
||||
error_report("The RAPL feature can only be enabled on hosts "
|
||||
"with Intel CPU models");
|
||||
ret = 1;
|
||||
goto out;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!is_rapl_enabled()) {
|
||||
ret = 1;
|
||||
goto out;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Retrieve the virtual topology */
|
||||
@ -2974,16 +2971,14 @@ static int kvm_msr_energy_thread_init(KVMState *s, MachineState *ms)
|
||||
r->host_topo.maxcpus = vmsr_get_maxcpus();
|
||||
if (r->host_topo.maxcpus == 0) {
|
||||
error_report("host max cpus = 0");
|
||||
ret = 1;
|
||||
goto out;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Max number of packages on the host */
|
||||
r->host_topo.maxpkgs = vmsr_get_max_physical_package(r->host_topo.maxcpus);
|
||||
if (r->host_topo.maxpkgs == 0) {
|
||||
error_report("host max pkgs = 0");
|
||||
ret = 1;
|
||||
goto out;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Allocate memory for each package on the host */
|
||||
@ -2995,8 +2990,7 @@ static int kvm_msr_energy_thread_init(KVMState *s, MachineState *ms)
|
||||
for (int i = 0; i < r->host_topo.maxpkgs; i++) {
|
||||
if (r->host_topo.pkg_cpu_count[i] == 0) {
|
||||
error_report("cpu per packages = 0 on package_%d", i);
|
||||
ret = 1;
|
||||
goto out;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3013,8 +3007,7 @@ static int kvm_msr_energy_thread_init(KVMState *s, MachineState *ms)
|
||||
|
||||
if (s->msr_energy.sioc == NULL) {
|
||||
error_report("vmsr socket opening failed");
|
||||
ret = 1;
|
||||
goto out;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Those MSR values should not change */
|
||||
@ -3026,15 +3019,13 @@ static int kvm_msr_energy_thread_init(KVMState *s, MachineState *ms)
|
||||
s->msr_energy.sioc);
|
||||
if (r->msr_unit == 0 || r->msr_limit == 0 || r->msr_info == 0) {
|
||||
error_report("can't read any virtual msr");
|
||||
ret = 1;
|
||||
goto out;
|
||||
return -1;
|
||||
}
|
||||
|
||||
qemu_thread_create(&r->msr_thr, "kvm-msr",
|
||||
kvm_msr_energy_thread,
|
||||
s, QEMU_THREAD_JOINABLE);
|
||||
out:
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int kvm_arch_get_default_type(MachineState *ms)
|
||||
@ -3342,7 +3333,9 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
|
||||
|
||||
if (s->msr_energy.enable == true) {
|
||||
kvm_vm_enable_energy_msrs(s);
|
||||
if (kvm_msr_energy_thread_init(s, ms)) {
|
||||
|
||||
ret = kvm_msr_energy_thread_init(s, ms);
|
||||
if (ret < 0) {
|
||||
error_report("kvm : error RAPL feature requirement not met");
|
||||
exit(1);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user