hw/s390x: Remove the cpu_model_allowed flag and related code

Now that the last machine type that disabled cpu_model_allowed has
been removed, we can also remove the cpu_model_allowed flag itself
and all the related conditional code.

Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-9-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2025-01-03 15:42:30 +01:00
parent 3199c7ee76
commit fd58c03a0e
3 changed files with 3 additions and 19 deletions

View File

@ -727,8 +727,7 @@ static S390CcwMachineClass *current_mc;
* *
* Attention! Do *not* add additional new wrappers for CPU features via this * Attention! Do *not* add additional new wrappers for CPU features via this
* mechanism anymore. CPU features should be handled via the CPU models, * mechanism anymore. CPU features should be handled via the CPU models,
* i.e. checking with cpu_model_allowed() during CPU initialization and * i.e. checking with s390_has_feat() should be sufficient.
* s390_has_feat() later should be sufficient.
*/ */
static S390CcwMachineClass *get_machine_class(void) static S390CcwMachineClass *get_machine_class(void)
{ {
@ -744,11 +743,6 @@ static S390CcwMachineClass *get_machine_class(void)
return current_mc; return current_mc;
} }
bool cpu_model_allowed(void)
{
return get_machine_class()->cpu_model_allowed;
}
bool hpage_1m_allowed(void) bool hpage_1m_allowed(void)
{ {
return get_machine_class()->hpage_1m_allowed; return get_machine_class()->hpage_1m_allowed;
@ -786,7 +780,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc); HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc);
S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
s390mc->cpu_model_allowed = true;
s390mc->hpage_1m_allowed = true; s390mc->hpage_1m_allowed = true;
s390mc->max_threads = 1; s390mc->max_threads = 1;
mc->init = ccw_init; mc->init = ccw_init;

View File

@ -53,13 +53,10 @@ struct S390CcwMachineClass {
MachineClass parent_class; MachineClass parent_class;
/*< public >*/ /*< public >*/
bool cpu_model_allowed;
bool hpage_1m_allowed; bool hpage_1m_allowed;
int max_threads; int max_threads;
}; };
/* cpu model allowed by the machine */
bool cpu_model_allowed(void);
/* 1M huge page mappings allowed by the machine */ /* 1M huge page mappings allowed by the machine */
bool hpage_1m_allowed(void); bool hpage_1m_allowed(void);

View File

@ -374,12 +374,10 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
kvm_vm_enable_cap(s, KVM_CAP_S390_VECTOR_REGISTERS, 0); kvm_vm_enable_cap(s, KVM_CAP_S390_VECTOR_REGISTERS, 0);
kvm_vm_enable_cap(s, KVM_CAP_S390_USER_STSI, 0); kvm_vm_enable_cap(s, KVM_CAP_S390_USER_STSI, 0);
kvm_vm_enable_cap(s, KVM_CAP_S390_CPU_TOPOLOGY, 0); kvm_vm_enable_cap(s, KVM_CAP_S390_CPU_TOPOLOGY, 0);
kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0);
if (kvm_vm_enable_cap(s, KVM_CAP_S390_RI, 0) == 0) { if (kvm_vm_enable_cap(s, KVM_CAP_S390_RI, 0) == 0) {
cap_ri = 1; cap_ri = 1;
} }
if (cpu_model_allowed()) {
kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0);
}
/* /*
* The migration interface for ais was introduced with kernel 4.13 * The migration interface for ais was introduced with kernel 4.13
@ -387,7 +385,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
* support is considered necessary, we only try to enable this for * support is considered necessary, we only try to enable this for
* newer machine types if KVM_CAP_S390_AIS_MIGRATION is available. * newer machine types if KVM_CAP_S390_AIS_MIGRATION is available.
*/ */
if (cpu_model_allowed() && kvm_kernel_irqchip_allowed() && if (kvm_kernel_irqchip_allowed() &&
kvm_check_extension(s, KVM_CAP_S390_AIS_MIGRATION)) { kvm_check_extension(s, KVM_CAP_S390_AIS_MIGRATION)) {
kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0); kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0);
} }
@ -2352,10 +2350,6 @@ static int configure_cpu_feat(const S390FeatBitmap features)
bool kvm_s390_cpu_models_supported(void) bool kvm_s390_cpu_models_supported(void)
{ {
if (!cpu_model_allowed()) {
/* compatibility machines interfere with the cpu model */
return false;
}
return kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL, return kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL,
KVM_S390_VM_CPU_MACHINE) && KVM_S390_VM_CPU_MACHINE) &&
kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL, kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL,