smp: drop support for deprecated (invalid topologies)
it's was deprecated since 3.1 Support for invalid topologies is removed, the user must ensure that topologies described with -smp include all possible cpus, i.e. (sockets * cores * threads) == maxcpus or QEMU will exit with error. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20200911133202.938754-1-imammedo@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
efba15959c
commit
c4332cd1dc
@ -47,19 +47,6 @@ The 'file' driver for drives is no longer appropriate for character or host
|
|||||||
devices and will only accept regular files (S_IFREG). The correct driver
|
devices and will only accept regular files (S_IFREG). The correct driver
|
||||||
for these file types is 'host_cdrom' or 'host_device' as appropriate.
|
for these file types is 'host_cdrom' or 'host_device' as appropriate.
|
||||||
|
|
||||||
``-smp`` (invalid topologies) (since 3.1)
|
|
||||||
'''''''''''''''''''''''''''''''''''''''''
|
|
||||||
|
|
||||||
CPU topology properties should describe whole machine topology including
|
|
||||||
possible CPUs.
|
|
||||||
|
|
||||||
However, historically it was possible to start QEMU with an incorrect topology
|
|
||||||
where *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
|
|
||||||
which could lead to an incorrect topology enumeration by the guest.
|
|
||||||
Support for invalid topologies will be removed, the user must ensure
|
|
||||||
topologies described with -smp include all possible cpus, i.e.
|
|
||||||
*sockets* * *cores* * *threads* = *maxcpus*.
|
|
||||||
|
|
||||||
``-vnc acl`` (since 4.0.0)
|
``-vnc acl`` (since 4.0.0)
|
||||||
''''''''''''''''''''''''''
|
''''''''''''''''''''''''''
|
||||||
|
|
||||||
@ -642,6 +629,19 @@ New machine versions (since 5.1) will not accept the option but it will still
|
|||||||
work with old machine types. User can check the QAPI schema to see if the legacy
|
work with old machine types. User can check the QAPI schema to see if the legacy
|
||||||
option is supported by looking at MachineInfo::numa-mem-supported property.
|
option is supported by looking at MachineInfo::numa-mem-supported property.
|
||||||
|
|
||||||
|
``-smp`` (invalid topologies) (removed 5.2)
|
||||||
|
'''''''''''''''''''''''''''''''''''''''''''
|
||||||
|
|
||||||
|
CPU topology properties should describe whole machine topology including
|
||||||
|
possible CPUs.
|
||||||
|
|
||||||
|
However, historically it was possible to start QEMU with an incorrect topology
|
||||||
|
where *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
|
||||||
|
which could lead to an incorrect topology enumeration by the guest.
|
||||||
|
Support for invalid topologies is removed, the user must ensure
|
||||||
|
topologies described with -smp include all possible cpus, i.e.
|
||||||
|
*sockets* * *cores* * *threads* = *maxcpus*.
|
||||||
|
|
||||||
Block devices
|
Block devices
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -754,21 +754,13 @@ static void smp_parse(MachineState *ms, QemuOpts *opts)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sockets * cores * threads > ms->smp.max_cpus) {
|
|
||||||
error_report("cpu topology: "
|
|
||||||
"sockets (%u) * cores (%u) * threads (%u) > "
|
|
||||||
"maxcpus (%u)",
|
|
||||||
sockets, cores, threads,
|
|
||||||
ms->smp.max_cpus);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sockets * cores * threads != ms->smp.max_cpus) {
|
if (sockets * cores * threads != ms->smp.max_cpus) {
|
||||||
warn_report("Invalid CPU topology deprecated: "
|
error_report("Invalid CPU topology: "
|
||||||
"sockets (%u) * cores (%u) * threads (%u) "
|
"sockets (%u) * cores (%u) * threads (%u) "
|
||||||
"!= maxcpus (%u)",
|
"!= maxcpus (%u)",
|
||||||
sockets, cores, threads,
|
sockets, cores, threads,
|
||||||
ms->smp.max_cpus);
|
ms->smp.max_cpus);
|
||||||
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ms->smp.cpus = cpus;
|
ms->smp.cpus = cpus;
|
||||||
|
12
hw/i386/pc.c
12
hw/i386/pc.c
@ -746,21 +746,13 @@ void pc_smp_parse(MachineState *ms, QemuOpts *opts)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sockets * dies * cores * threads > ms->smp.max_cpus) {
|
|
||||||
error_report("cpu topology: "
|
|
||||||
"sockets (%u) * dies (%u) * cores (%u) * threads (%u) > "
|
|
||||||
"maxcpus (%u)",
|
|
||||||
sockets, dies, cores, threads,
|
|
||||||
ms->smp.max_cpus);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sockets * dies * cores * threads != ms->smp.max_cpus) {
|
if (sockets * dies * cores * threads != ms->smp.max_cpus) {
|
||||||
warn_report("Invalid CPU topology deprecated: "
|
error_report("Invalid CPU topology deprecated: "
|
||||||
"sockets (%u) * dies (%u) * cores (%u) * threads (%u) "
|
"sockets (%u) * dies (%u) * cores (%u) * threads (%u) "
|
||||||
"!= maxcpus (%u)",
|
"!= maxcpus (%u)",
|
||||||
sockets, dies, cores, threads,
|
sockets, dies, cores, threads,
|
||||||
ms->smp.max_cpus);
|
ms->smp.max_cpus);
|
||||||
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ms->smp.cpus = cpus;
|
ms->smp.cpus = cpus;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user