mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-30 21:42:06 -06:00
hw/s390x: Remove the obsolete hpage_1m_allowed switch
The s390-ccw-virtio-3.0 machine was the last one that used the hpage_1m_allowed switch. Since we removed this machine type, we can now remove the switch and the related code, too. This allows us to get rid of the get_machine_class() hack and the big fat warning comment there. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20250506062148.306084-8-thuth@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
240e7c36e7
commit
bbe6f504ef
3 changed files with 0 additions and 45 deletions
|
@ -748,39 +748,6 @@ static inline void machine_set_dea_key_wrap(Object *obj, bool value,
|
||||||
ms->dea_key_wrap = value;
|
ms->dea_key_wrap = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static S390CcwMachineClass *current_mc;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get the class of the s390-ccw-virtio machine that is currently in use.
|
|
||||||
* Note: libvirt is using the "none" machine to probe for the features of the
|
|
||||||
* host CPU, so in case this is called with the "none" machine, the function
|
|
||||||
* returns the TYPE_S390_CCW_MACHINE base class. In this base class, all the
|
|
||||||
* various "*_allowed" variables are enabled, so that the *_allowed() wrappers
|
|
||||||
* below return the correct default value for the "none" machine.
|
|
||||||
*
|
|
||||||
* Attention! Do *not* add additional new wrappers for CPU features via this
|
|
||||||
* mechanism anymore. CPU features should be handled via the CPU models,
|
|
||||||
* i.e. checking with s390_has_feat() should be sufficient.
|
|
||||||
*/
|
|
||||||
static S390CcwMachineClass *get_machine_class(void)
|
|
||||||
{
|
|
||||||
if (unlikely(!current_mc)) {
|
|
||||||
/*
|
|
||||||
* No s390 ccw machine was instantiated, we are likely to
|
|
||||||
* be called for the 'none' machine. The properties will
|
|
||||||
* have their after-initialization values.
|
|
||||||
*/
|
|
||||||
current_mc = S390_CCW_MACHINE_CLASS(
|
|
||||||
object_class_by_name(TYPE_S390_CCW_MACHINE));
|
|
||||||
}
|
|
||||||
return current_mc;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool hpage_1m_allowed(void)
|
|
||||||
{
|
|
||||||
return get_machine_class()->hpage_1m_allowed;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void machine_get_loadparm(Object *obj, Visitor *v,
|
static void machine_get_loadparm(Object *obj, Visitor *v,
|
||||||
const char *name, void *opaque,
|
const char *name, void *opaque,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
|
@ -814,7 +781,6 @@ static void ccw_machine_class_init(ObjectClass *oc, const void *data)
|
||||||
S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
|
S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
|
||||||
DumpSKeysInterface *dsi = DUMP_SKEYS_INTERFACE_CLASS(oc);
|
DumpSKeysInterface *dsi = DUMP_SKEYS_INTERFACE_CLASS(oc);
|
||||||
|
|
||||||
s390mc->hpage_1m_allowed = true;
|
|
||||||
s390mc->max_threads = 1;
|
s390mc->max_threads = 1;
|
||||||
mc->reset = s390_machine_reset;
|
mc->reset = s390_machine_reset;
|
||||||
mc->block_default_type = IF_VIRTIO;
|
mc->block_default_type = IF_VIRTIO;
|
||||||
|
@ -888,7 +854,6 @@ static const TypeInfo ccw_machine_info = {
|
||||||
#define DEFINE_CCW_MACHINE_IMPL(latest, ...) \
|
#define DEFINE_CCW_MACHINE_IMPL(latest, ...) \
|
||||||
static void MACHINE_VER_SYM(mach_init, ccw, __VA_ARGS__)(MachineState *mach) \
|
static void MACHINE_VER_SYM(mach_init, ccw, __VA_ARGS__)(MachineState *mach) \
|
||||||
{ \
|
{ \
|
||||||
current_mc = S390_CCW_MACHINE_CLASS(MACHINE_GET_CLASS(mach)); \
|
|
||||||
MACHINE_VER_SYM(instance_options, ccw, __VA_ARGS__)(mach); \
|
MACHINE_VER_SYM(instance_options, ccw, __VA_ARGS__)(mach); \
|
||||||
ccw_init(mach); \
|
ccw_init(mach); \
|
||||||
} \
|
} \
|
||||||
|
|
|
@ -53,11 +53,7 @@ struct S390CcwMachineClass {
|
||||||
MachineClass parent_class;
|
MachineClass parent_class;
|
||||||
|
|
||||||
/*< public >*/
|
/*< public >*/
|
||||||
bool hpage_1m_allowed;
|
|
||||||
int max_threads;
|
int max_threads;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* 1M huge page mappings allowed by the machine */
|
|
||||||
bool hpage_1m_allowed(void);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -298,12 +298,6 @@ void kvm_s390_set_max_pagesize(uint64_t pagesize, Error **errp)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hpage_1m_allowed()) {
|
|
||||||
error_setg(errp, "This QEMU machine does not support huge page "
|
|
||||||
"mappings");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pagesize != 1 * MiB) {
|
if (pagesize != 1 * MiB) {
|
||||||
error_setg(errp, "Memory backing with 2G pages was specified, "
|
error_setg(errp, "Memory backing with 2G pages was specified, "
|
||||||
"but KVM does not support this memory backing");
|
"but KVM does not support this memory backing");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue