* Fix compilation problem in s390x tcg tests
* Remove obsolete versioned s390x machine types 2.4 up to 2.8 * Remove deprecated -runas command line option * Fix the x86_64_hotplug_cpu functional test -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmd+OikRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbXTig/+Kgt0H5KQzCvGuRDYYD20Iq9MLy8iTJdj bmPyjyMWI88Mm4qjZUO2Kcv/MSEP3MhnaTLEE/PJYgE2D8Cq2AFMLQf4ES01Uzwt kFBSHvAlTOgcMFcu6QiWtetlqbqixuPs146J9vvUde1xTWCpB2FuB+wNneSTl6J1 Ilrb7SM2TzbZ1s3NPuvBSVltQlA8MYa5VdQMvljAZGe2GE5vlpNjXmJMiZ/QJ7lp +LVZppbB5lYxH0SYf56r2tR8fxqfQi6W4WoGeuBf9FnDf815cbcwagpOnaJiQFzx iG1WusLt1tlW2arBDP7dzrjNjByjMFhwJvKaoXuSnGS29ivPuVq33mBkcFh80cv3 8rElZR+M5tmGfbC/mMwH7FSesUrEH18ZwRyc9RGqZ/QtqoBaukBJpxk6KuyNUbWn 3x0ZUbGhAItGGNaZ54T70LdM3dTmEISMOnp5YTlv8oUFoROhfvWn20FMIge0Ib7t Epu/nSiHzzdtURHZ1Z8EKNmCOmiKRW4WpF34hzQ+4uid5BAsCNMVMe0JZy5plN9L V78CZ4qiqipmHIpKnI81x8L2admyJ3nklYKSRkaCmZFhpSyh8rdMUjCgt9A6xFfe 34Jha7+MrJq9nnoeYIH/dS1Jhv+9vygNahDy9XaWXIHFPd7Nrsr79BWSC3fe1w5O DlsdrHyGHvU= =II7e -----END PGP SIGNATURE----- Merge tag 'pull-request-2025-01-08' of https://gitlab.com/thuth/qemu into staging * Fix compilation problem in s390x tcg tests * Remove obsolete versioned s390x machine types 2.4 up to 2.8 * Remove deprecated -runas command line option * Fix the x86_64_hotplug_cpu functional test # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmd+OikRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbXTig/+Kgt0H5KQzCvGuRDYYD20Iq9MLy8iTJdj # bmPyjyMWI88Mm4qjZUO2Kcv/MSEP3MhnaTLEE/PJYgE2D8Cq2AFMLQf4ES01Uzwt # kFBSHvAlTOgcMFcu6QiWtetlqbqixuPs146J9vvUde1xTWCpB2FuB+wNneSTl6J1 # Ilrb7SM2TzbZ1s3NPuvBSVltQlA8MYa5VdQMvljAZGe2GE5vlpNjXmJMiZ/QJ7lp # +LVZppbB5lYxH0SYf56r2tR8fxqfQi6W4WoGeuBf9FnDf815cbcwagpOnaJiQFzx # iG1WusLt1tlW2arBDP7dzrjNjByjMFhwJvKaoXuSnGS29ivPuVq33mBkcFh80cv3 # 8rElZR+M5tmGfbC/mMwH7FSesUrEH18ZwRyc9RGqZ/QtqoBaukBJpxk6KuyNUbWn # 3x0ZUbGhAItGGNaZ54T70LdM3dTmEISMOnp5YTlv8oUFoROhfvWn20FMIge0Ib7t # Epu/nSiHzzdtURHZ1Z8EKNmCOmiKRW4WpF34hzQ+4uid5BAsCNMVMe0JZy5plN9L # V78CZ4qiqipmHIpKnI81x8L2admyJ3nklYKSRkaCmZFhpSyh8rdMUjCgt9A6xFfe # 34Jha7+MrJq9nnoeYIH/dS1Jhv+9vygNahDy9XaWXIHFPd7Nrsr79BWSC3fe1w5O # DlsdrHyGHvU= # =II7e # -----END PGP SIGNATURE----- # gpg: Signature made Wed 08 Jan 2025 03:41:13 EST # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2025-01-08' of https://gitlab.com/thuth/qemu: tests/functional/test_x86_64_hotplug_cpu: Fix race condition during unplug docs/about/deprecated: Remove paragraph about initial deprecation in 2.10 Remove the deprecated "-runas" command line option hw/s390x: Remove the "adapter_routes_max_batch" property from the flic hw/s390x/s390-virtio-ccw: Remove the deprecated 2.8 machine type hw/s390x: Remove the cpu_model_allowed flag and related code hw/s390x/s390-virtio-ccw: Remove the deprecated 2.7 machine type hw/s390x/css-bridge: Remove the "css_dev_path" property hw/s390x/ipl: Remove the "iplbext_migration" property hw/s390x: Remove the "ri_allowed" switch hw/s390x/s390-virtio-ccw: Remove the deprecated 2.6 machine type hw/s390x/s390-skeys: Remove the "migration-enabled" property hw/s390x/s390-virtio-ccw: Remove the deprecated 2.4 and 2.5 machine types tests/tcg/s390x: Use the SLOF libc headers for the multiarch tests Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
3f8bcbba3b
@ -24,12 +24,6 @@ should exclusively use a non-deprecated machine type, with use of the most
|
||||
recent version highly recommended. Non-versioned machine types follow the
|
||||
general feature deprecation policy.
|
||||
|
||||
Prior to the 2.10.0 release there was no official policy on how
|
||||
long features would be deprecated prior to their removal, nor
|
||||
any documented list of which features were deprecated. Thus
|
||||
any features deprecated prior to 2.10.0 will be treated as if
|
||||
they were first deprecated in the 2.10.0 release.
|
||||
|
||||
What follows is a list of all features currently marked as
|
||||
deprecated.
|
||||
|
||||
@ -74,12 +68,6 @@ configurations (e.g. -smp drawers=1,books=1,clusters=1 for x86 PC machine) is
|
||||
marked deprecated since 9.0, users have to ensure that all the topology members
|
||||
described with -smp are supported by the target machine.
|
||||
|
||||
``-runas`` (since 9.1)
|
||||
''''''''''''''''''''''
|
||||
|
||||
Use ``-run-with user=..`` instead.
|
||||
|
||||
|
||||
User-mode emulator command line arguments
|
||||
-----------------------------------------
|
||||
|
||||
|
@ -555,6 +555,12 @@ to produce an odd effect (rotating input but not display output). But
|
||||
this was never intended or documented behaviour, so we have dropped
|
||||
the options along with the machine models they were intended for.
|
||||
|
||||
``-runas`` (removed in 10.0)
|
||||
''''''''''''''''''''''''''''
|
||||
|
||||
Use ``-run-with user=..`` instead.
|
||||
|
||||
|
||||
User-mode emulator command line arguments
|
||||
-----------------------------------------
|
||||
|
||||
|
@ -471,8 +471,6 @@ static void qemu_s390_flic_class_init(ObjectClass *oc, void *data)
|
||||
}
|
||||
|
||||
static const Property s390_flic_common_properties[] = {
|
||||
DEFINE_PROP_UINT32("adapter_routes_max_batch", S390FLICState,
|
||||
adapter_routes_max_batch, ADAPTER_ROUTES_MAX_GSI),
|
||||
DEFINE_PROP_BOOL("migration-enabled", S390FLICState,
|
||||
migration_enabled, true),
|
||||
};
|
||||
@ -480,13 +478,6 @@ static const Property s390_flic_common_properties[] = {
|
||||
static void s390_flic_common_realize(DeviceState *dev, Error **errp)
|
||||
{
|
||||
S390FLICState *fs = S390_FLIC_COMMON(dev);
|
||||
uint32_t max_batch = fs->adapter_routes_max_batch;
|
||||
|
||||
if (max_batch > ADAPTER_ROUTES_MAX_GSI) {
|
||||
error_setg(errp, "flic property adapter_routes_max_batch too big"
|
||||
" (%d > %d)", max_batch, ADAPTER_ROUTES_MAX_GSI);
|
||||
return;
|
||||
}
|
||||
|
||||
fs->ais_supported = s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION);
|
||||
}
|
||||
|
@ -66,16 +66,8 @@ static char *virtual_css_bus_get_dev_path(DeviceState *dev)
|
||||
{
|
||||
CcwDevice *ccw_dev = CCW_DEVICE(dev);
|
||||
SubchDev *sch = ccw_dev->sch;
|
||||
VirtualCssBridge *bridge =
|
||||
VIRTUAL_CSS_BRIDGE(qdev_get_parent_bus(dev)->parent);
|
||||
|
||||
/*
|
||||
* We can't provide a dev path for backward compatibility on
|
||||
* older machines, as it is visible in the migration stream.
|
||||
*/
|
||||
return bridge->css_dev_path ?
|
||||
g_strdup_printf("/%02x.%1x.%04x", sch->cssid, sch->ssid, sch->devno) :
|
||||
NULL;
|
||||
return g_strdup_printf("/%02x.%1x.%04x", sch->cssid, sch->ssid, sch->devno);
|
||||
}
|
||||
|
||||
static void virtual_css_bus_class_init(ObjectClass *klass, void *data)
|
||||
@ -120,11 +112,6 @@ VirtualCssBus *virtual_css_bus_init(void)
|
||||
|
||||
/***************** Virtual-css Bus Bridge Device ********************/
|
||||
|
||||
static const Property virtual_css_bridge_properties[] = {
|
||||
DEFINE_PROP_BOOL("css_dev_path", VirtualCssBridge, css_dev_path,
|
||||
true),
|
||||
};
|
||||
|
||||
static bool prop_get_true(Object *obj, Error **errp)
|
||||
{
|
||||
return true;
|
||||
@ -137,7 +124,6 @@ static void virtual_css_bridge_class_init(ObjectClass *klass, void *data)
|
||||
|
||||
hc->unplug = ccw_device_unplug;
|
||||
set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
|
||||
device_class_set_props(dc, virtual_css_bridge_properties);
|
||||
object_class_property_add_bool(klass, "cssid-unrestricted",
|
||||
prop_get_true, NULL);
|
||||
object_class_property_set_description(klass, "cssid-unrestricted",
|
||||
|
@ -49,13 +49,6 @@
|
||||
#define BIOS_MAX_SIZE 0x300000UL
|
||||
#define IPL_PSW_MASK (PSW_MASK_32 | PSW_MASK_64)
|
||||
|
||||
static bool iplb_extended_needed(void *opaque)
|
||||
{
|
||||
S390IPLState *ipl = S390_IPL(object_resolve_path(TYPE_S390_IPL, NULL));
|
||||
|
||||
return ipl->iplbext_migration;
|
||||
}
|
||||
|
||||
/* Place the IPLB chain immediately before the BIOS in memory */
|
||||
static uint64_t find_iplb_chain_addr(uint64_t bios_addr, uint16_t count)
|
||||
{
|
||||
@ -67,7 +60,6 @@ static const VMStateDescription vmstate_iplb_extended = {
|
||||
.name = "ipl/iplb_extended",
|
||||
.version_id = 0,
|
||||
.minimum_version_id = 0,
|
||||
.needed = iplb_extended_needed,
|
||||
.fields = (const VMStateField[]) {
|
||||
VMSTATE_UINT8_ARRAY(reserved_ext, IplParameterBlock, 4096 - 200),
|
||||
VMSTATE_END_OF_LIST()
|
||||
@ -297,8 +289,6 @@ static const Property s390_ipl_properties[] = {
|
||||
DEFINE_PROP_STRING("cmdline", S390IPLState, cmdline),
|
||||
DEFINE_PROP_STRING("firmware", S390IPLState, firmware),
|
||||
DEFINE_PROP_BOOL("enforce_bios", S390IPLState, enforce_bios, false),
|
||||
DEFINE_PROP_BOOL("iplbext_migration", S390IPLState, iplbext_migration,
|
||||
true),
|
||||
};
|
||||
|
||||
static void s390_ipl_set_boot_menu(S390IPLState *ipl)
|
||||
|
@ -80,7 +80,6 @@ struct S390IPLState {
|
||||
uint8_t cssid;
|
||||
uint8_t ssid;
|
||||
uint16_t devno;
|
||||
bool iplbext_migration;
|
||||
};
|
||||
QEMU_BUILD_BUG_MSG(offsetof(S390IPLState, iplb) & 3, "alignment of iplb wrong");
|
||||
|
||||
|
@ -469,15 +469,8 @@ static void s390_skeys_realize(DeviceState *dev, Error **errp)
|
||||
{
|
||||
S390SKeysState *ss = S390_SKEYS(dev);
|
||||
|
||||
if (ss->migration_enabled) {
|
||||
register_savevm_live(TYPE_S390_SKEYS, 0, 1,
|
||||
&savevm_s390_storage_keys, ss);
|
||||
register_savevm_live(TYPE_S390_SKEYS, 0, 1, &savevm_s390_storage_keys, ss);
|
||||
}
|
||||
}
|
||||
|
||||
static const Property s390_skeys_props[] = {
|
||||
DEFINE_PROP_BOOL("migration-enabled", S390SKeysState, migration_enabled, true),
|
||||
};
|
||||
|
||||
static void s390_skeys_class_init(ObjectClass *oc, void *data)
|
||||
{
|
||||
@ -485,7 +478,6 @@ static void s390_skeys_class_init(ObjectClass *oc, void *data)
|
||||
|
||||
dc->hotpluggable = false;
|
||||
dc->realize = s390_skeys_realize;
|
||||
device_class_set_props(dc, s390_skeys_props);
|
||||
set_bit(DEVICE_CATEGORY_MISC, dc->categories);
|
||||
}
|
||||
|
||||
|
@ -725,10 +725,9 @@ static S390CcwMachineClass *current_mc;
|
||||
* 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 (e.g. like
|
||||
* the ri_allowed() wrapper) via this mechanism anymore. CPU features should
|
||||
* be handled via the CPU models, i.e. checking with cpu_model_allowed() during
|
||||
* CPU initialization and s390_has_feat() later should be sufficient.
|
||||
* 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)
|
||||
{
|
||||
@ -744,16 +743,6 @@ static S390CcwMachineClass *get_machine_class(void)
|
||||
return current_mc;
|
||||
}
|
||||
|
||||
bool ri_allowed(void)
|
||||
{
|
||||
return get_machine_class()->ri_allowed;
|
||||
}
|
||||
|
||||
bool cpu_model_allowed(void)
|
||||
{
|
||||
return get_machine_class()->cpu_model_allowed;
|
||||
}
|
||||
|
||||
bool hpage_1m_allowed(void)
|
||||
{
|
||||
return get_machine_class()->hpage_1m_allowed;
|
||||
@ -791,8 +780,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
|
||||
HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc);
|
||||
S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
|
||||
|
||||
s390mc->ri_allowed = true;
|
||||
s390mc->cpu_model_allowed = true;
|
||||
s390mc->hpage_1m_allowed = true;
|
||||
s390mc->max_threads = 1;
|
||||
mc->init = ccw_init;
|
||||
@ -1273,95 +1260,6 @@ static void ccw_machine_2_9_class_options(MachineClass *mc)
|
||||
}
|
||||
DEFINE_CCW_MACHINE(2, 9);
|
||||
|
||||
static void ccw_machine_2_8_instance_options(MachineState *machine)
|
||||
{
|
||||
ccw_machine_2_9_instance_options(machine);
|
||||
}
|
||||
|
||||
static void ccw_machine_2_8_class_options(MachineClass *mc)
|
||||
{
|
||||
static GlobalProperty compat[] = {
|
||||
{ TYPE_S390_FLIC_COMMON, "adapter_routes_max_batch", "64", },
|
||||
};
|
||||
|
||||
ccw_machine_2_9_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_2_8, hw_compat_2_8_len);
|
||||
compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
|
||||
}
|
||||
DEFINE_CCW_MACHINE(2, 8);
|
||||
|
||||
static void ccw_machine_2_7_instance_options(MachineState *machine)
|
||||
{
|
||||
ccw_machine_2_8_instance_options(machine);
|
||||
}
|
||||
|
||||
static void ccw_machine_2_7_class_options(MachineClass *mc)
|
||||
{
|
||||
S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
|
||||
|
||||
s390mc->cpu_model_allowed = false;
|
||||
ccw_machine_2_8_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_2_7, hw_compat_2_7_len);
|
||||
}
|
||||
DEFINE_CCW_MACHINE(2, 7);
|
||||
|
||||
static void ccw_machine_2_6_instance_options(MachineState *machine)
|
||||
{
|
||||
ccw_machine_2_7_instance_options(machine);
|
||||
}
|
||||
|
||||
static void ccw_machine_2_6_class_options(MachineClass *mc)
|
||||
{
|
||||
S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
|
||||
static GlobalProperty compat[] = {
|
||||
{ TYPE_S390_IPL, "iplbext_migration", "off", },
|
||||
{ TYPE_VIRTUAL_CSS_BRIDGE, "css_dev_path", "off", },
|
||||
};
|
||||
|
||||
s390mc->ri_allowed = false;
|
||||
ccw_machine_2_7_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len);
|
||||
compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
|
||||
}
|
||||
DEFINE_CCW_MACHINE(2, 6);
|
||||
|
||||
static void ccw_machine_2_5_instance_options(MachineState *machine)
|
||||
{
|
||||
ccw_machine_2_6_instance_options(machine);
|
||||
}
|
||||
|
||||
static void ccw_machine_2_5_class_options(MachineClass *mc)
|
||||
{
|
||||
ccw_machine_2_6_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_2_5, hw_compat_2_5_len);
|
||||
}
|
||||
DEFINE_CCW_MACHINE(2, 5);
|
||||
|
||||
static void ccw_machine_2_4_instance_options(MachineState *machine)
|
||||
{
|
||||
ccw_machine_2_5_instance_options(machine);
|
||||
}
|
||||
|
||||
static void ccw_machine_2_4_class_options(MachineClass *mc)
|
||||
{
|
||||
static GlobalProperty compat[] = {
|
||||
{ TYPE_S390_SKEYS, "migration-enabled", "off", },
|
||||
{ "virtio-blk-ccw", "max_revision", "0", },
|
||||
{ "virtio-balloon-ccw", "max_revision", "0", },
|
||||
{ "virtio-serial-ccw", "max_revision", "0", },
|
||||
{ "virtio-9p-ccw", "max_revision", "0", },
|
||||
{ "virtio-rng-ccw", "max_revision", "0", },
|
||||
{ "virtio-net-ccw", "max_revision", "0", },
|
||||
{ "virtio-scsi-ccw", "max_revision", "0", },
|
||||
{ "vhost-scsi-ccw", "max_revision", "0", },
|
||||
};
|
||||
|
||||
ccw_machine_2_5_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_2_4, hw_compat_2_4_len);
|
||||
compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
|
||||
}
|
||||
DEFINE_CCW_MACHINE(2, 4);
|
||||
|
||||
#endif
|
||||
|
||||
static void ccw_machine_register_types(void)
|
||||
|
@ -1157,7 +1157,6 @@ static void virtio_ccw_device_plugged(DeviceState *d, Error **errp)
|
||||
CcwDevice *ccw_dev = CCW_DEVICE(d);
|
||||
SubchDev *sch = ccw_dev->sch;
|
||||
int n = virtio_get_num_queues(vdev);
|
||||
S390FLICState *flic = s390_get_flic();
|
||||
|
||||
if (!virtio_has_feature(vdev->host_features, VIRTIO_F_VERSION_1)) {
|
||||
dev->max_rev = 0;
|
||||
@ -1184,10 +1183,10 @@ static void virtio_ccw_device_plugged(DeviceState *d, Error **errp)
|
||||
VIRTIO_QUEUE_MAX);
|
||||
return;
|
||||
}
|
||||
if (virtio_get_num_queues(vdev) > flic->adapter_routes_max_batch) {
|
||||
if (virtio_get_num_queues(vdev) > ADAPTER_ROUTES_MAX_GSI) {
|
||||
error_setg(errp, "The number of virtqueues %d "
|
||||
"exceeds flic adapter route limit %d", n,
|
||||
flic->adapter_routes_max_batch);
|
||||
ADAPTER_ROUTES_MAX_GSI);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,6 @@
|
||||
/* virtual css bridge */
|
||||
struct VirtualCssBridge {
|
||||
SysBusDevice sysbus_dev;
|
||||
bool css_dev_path;
|
||||
};
|
||||
|
||||
#define TYPE_VIRTUAL_CSS_BRIDGE "virtual-css-bridge"
|
||||
|
@ -53,16 +53,10 @@ struct S390CcwMachineClass {
|
||||
MachineClass parent_class;
|
||||
|
||||
/*< public >*/
|
||||
bool ri_allowed;
|
||||
bool cpu_model_allowed;
|
||||
bool hpage_1m_allowed;
|
||||
int max_threads;
|
||||
};
|
||||
|
||||
/* runtime-instrumentation allowed by the machine */
|
||||
bool ri_allowed(void);
|
||||
/* cpu model allowed by the machine */
|
||||
bool cpu_model_allowed(void);
|
||||
/* 1M huge page mappings allowed by the machine */
|
||||
bool hpage_1m_allowed(void);
|
||||
|
||||
|
@ -41,8 +41,6 @@ OBJECT_DECLARE_TYPE(S390FLICState, S390FLICStateClass,
|
||||
|
||||
struct S390FLICState {
|
||||
SysBusDevice parent_obj;
|
||||
/* to limit AdapterRoutes.num_routes for compat */
|
||||
uint32_t adapter_routes_max_batch;
|
||||
bool ais_supported;
|
||||
bool migration_enabled;
|
||||
};
|
||||
|
@ -21,8 +21,6 @@ OBJECT_DECLARE_TYPE(S390SKeysState, S390SKeysClass, S390_SKEYS)
|
||||
|
||||
struct S390SKeysState {
|
||||
DeviceState parent_obj;
|
||||
bool migration_enabled;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -4976,19 +4976,6 @@ SRST
|
||||
``-nodefaults`` option will disable all those default devices.
|
||||
ERST
|
||||
|
||||
#ifndef _WIN32
|
||||
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
|
||||
"-runas user change to user id user just before starting the VM\n" \
|
||||
" user can be numeric uid:gid instead\n",
|
||||
QEMU_ARCH_ALL)
|
||||
#endif
|
||||
SRST
|
||||
``-runas user``
|
||||
Immediately before starting guest execution, drop root privileges,
|
||||
switching to the specified user. This option is deprecated, use
|
||||
``-run-with user=...`` instead.
|
||||
ERST
|
||||
|
||||
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
|
||||
"-prom-env variable=value\n"
|
||||
" set OpenBIOS nvram variables\n",
|
||||
@ -5176,7 +5163,7 @@ SRST
|
||||
|
||||
``chroot=dir`` can be used for doing a chroot to the specified directory
|
||||
immediately before starting the guest execution. This is especially useful
|
||||
in combination with -runas.
|
||||
in combination with ``user=...``.
|
||||
|
||||
``user=username`` or ``user=uid:gid`` can be used to drop root privileges
|
||||
before starting guest execution. QEMU will use the ``setuid`` and ``setgid``
|
||||
|
@ -3611,15 +3611,6 @@ void qemu_init(int argc, char **argv)
|
||||
/* Nothing to be parsed here. Especially, do not error out below. */
|
||||
break;
|
||||
#if defined(CONFIG_POSIX)
|
||||
case QEMU_OPTION_runas:
|
||||
warn_report("-runas is deprecated, use '-run-with user=...' instead");
|
||||
if (!os_set_runas(optarg)) {
|
||||
error_report("User \"%s\" doesn't exist"
|
||||
" (and is not <uid>:<gid>)",
|
||||
optarg);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
case QEMU_OPTION_daemonize:
|
||||
os_set_daemonize(true);
|
||||
break;
|
||||
|
@ -374,14 +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_USER_STSI, 0);
|
||||
kvm_vm_enable_cap(s, KVM_CAP_S390_CPU_TOPOLOGY, 0);
|
||||
if (ri_allowed()) {
|
||||
kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0);
|
||||
if (kvm_vm_enable_cap(s, KVM_CAP_S390_RI, 0) == 0) {
|
||||
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
|
||||
@ -389,7 +385,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
|
||||
* support is considered necessary, we only try to enable this for
|
||||
* 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_vm_enable_cap(s, KVM_CAP_S390_AIS, 0);
|
||||
}
|
||||
@ -2354,10 +2350,6 @@ static int configure_cpu_feat(const S390FeatBitmap features)
|
||||
|
||||
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,
|
||||
KVM_S390_VM_CPU_MACHINE) &&
|
||||
kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL,
|
||||
|
@ -59,10 +59,12 @@ class HotPlugCPU(LinuxKernelTest):
|
||||
'cd /sys/devices/system/cpu/cpu1',
|
||||
'cpu1#')
|
||||
|
||||
exec_command_and_wait_for_pattern(self, 'cd ..', prompt)
|
||||
self.vm.cmd('device_del', id='c1')
|
||||
|
||||
exec_command_and_wait_for_pattern(self,
|
||||
'cd /sys/devices/system/cpu/cpu1',
|
||||
'while cd /sys/devices/system/cpu/cpu1 ;'
|
||||
' do sleep 0.2 ; done',
|
||||
'No such file or directory')
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -45,7 +45,8 @@ TESTS += $(ASM_TESTS)
|
||||
S390X_MULTIARCH_RUNTIME_OBJS = head64.o console.o $(MINILIB_OBJS)
|
||||
$(MULTIARCH_TESTS): $(S390X_MULTIARCH_RUNTIME_OBJS)
|
||||
$(MULTIARCH_TESTS): LDFLAGS += $(S390X_MULTIARCH_RUNTIME_OBJS)
|
||||
$(MULTIARCH_TESTS): CFLAGS += $(MINILIB_INC)
|
||||
$(MULTIARCH_TESTS): CFLAGS += $(MINILIB_INC) \
|
||||
-I$(SRC_PATH)/roms/SLOF/lib/libc/include/
|
||||
memory: CFLAGS += -DCHECK_UNALIGNED=0
|
||||
|
||||
# s390x clears the BSS section so we need to account for that
|
||||
|
Loading…
x
Reference in New Issue
Block a user