提交 c4332cd1 编写于 作者: I Igor Mammedov 提交者: Eduardo Habkost

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: NIgor Mammedov <imammedo@redhat.com>
Message-Id: <20200911133202.938754-1-imammedo@redhat.com>
Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
上级 efba1595
...@@ -47,19 +47,6 @@ The 'file' driver for drives is no longer appropriate for character or host ...@@ -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 ...@@ -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,23 +754,15 @@ static void smp_parse(MachineState *ms, QemuOpts *opts) ...@@ -754,23 +754,15 @@ static void smp_parse(MachineState *ms, QemuOpts *opts)
exit(1); exit(1);
} }
if (sockets * cores * threads > ms->smp.max_cpus) { if (sockets * cores * threads != ms->smp.max_cpus) {
error_report("cpu topology: " 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); exit(1);
} }
if (sockets * cores * threads != ms->smp.max_cpus) {
warn_report("Invalid CPU topology deprecated: "
"sockets (%u) * cores (%u) * threads (%u) "
"!= maxcpus (%u)",
sockets, cores, threads,
ms->smp.max_cpus);
}
ms->smp.cpus = cpus; ms->smp.cpus = cpus;
ms->smp.cores = cores; ms->smp.cores = cores;
ms->smp.threads = threads; ms->smp.threads = threads;
......
...@@ -746,23 +746,15 @@ void pc_smp_parse(MachineState *ms, QemuOpts *opts) ...@@ -746,23 +746,15 @@ void pc_smp_parse(MachineState *ms, QemuOpts *opts)
exit(1); exit(1);
} }
if (sockets * dies * cores * threads > ms->smp.max_cpus) { if (sockets * dies * cores * threads != ms->smp.max_cpus) {
error_report("cpu topology: " 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); exit(1);
} }
if (sockets * dies * cores * threads != ms->smp.max_cpus) {
warn_report("Invalid CPU topology deprecated: "
"sockets (%u) * dies (%u) * cores (%u) * threads (%u) "
"!= maxcpus (%u)",
sockets, dies, cores, threads,
ms->smp.max_cpus);
}
ms->smp.cpus = cpus; ms->smp.cpus = cpus;
ms->smp.cores = cores; ms->smp.cores = cores;
ms->smp.threads = threads; ms->smp.threads = threads;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册