
On Tue, May 18, 2021 at 09:05:39PM +0200, Andrew Jones wrote:
The problem is that -smp 4,maxcpus=8 doesn't error out today, even though it doesn't do anything. OTOH, -smp 4,cores=2 doesn't error out either, but we're proposing that it should. Maybe we can start erroring out when cpus != maxcpus until hot plug is supported?
The more I think about this, the more I think we're in a bit of pickle and need Peter Maydell to chime in. While we may want to make our -smp command line option parsing more strict in order to bring some sanity to it, if we do, then we'll break existing command lines, which, while may be specifying useless inputs, have always gotten away with it. We probably can't just change that now without forcing the user to opt into it. Maybe we need to add another -smp parameter like 'strict' that has to be set to 'on' in order to get this new behavior. Peter, do you have some suggestions for this? A summary of the problem we'd like to solve is as follows: We'd like to start describing CPU topology to guests when provided topology information with the '-smp ...' command line option. Currently, a user may provide nearly whatever it wants on that command line option and not get an error, even though the guest will not get a topology description. When building the topology its important to know what the user actually wants, so we're proposing to require both sockets and cores be given if one of them is given. Also, since we don't yet support hot plug for AArch64, we're proposing to enforce cpus == maxcpus. Is it fine to make those changes to the parsing for 6.1 and later? (Note, mach-virt will override the default smp_parse with its own, so this is mach-virt specific.) Or, should we only do this if a new parameter is also given, e.g. 'strict'. Something like -smp strict=on,cpus=4,sockets=2,cores=2 would be needed by users who want to describe cpu topologies. Without a strict description, then they get what they get today for their DT/ACPI topology description, nothing. Thanks, drew