On Fri, Aug 05, 2022 at 12:06:35PM +0200, Paolo Bonzini wrote: > The -M memory.* options do not have magic applied to them than the -m > option, namely no "M" (for mebibytes) is tacked at the end of a > suffixless value for "-M memory.size". > > This magic is performed by parse_memory_options, and we have to > do it for both "-m" and the [memory] section of a config file. > Storing [memory] sections directly to machine_opts_dict changed > the meaning of > > [memory] > size = "1024" > > in a -readconfig file from 1024MiB to 8KiB (1024 Bytes rounded up to > 8KiB silently). To avoid this, the [memory] section has to be > changed back to QemuOpts (combining [memory] and "-m" will work fine > thanks to .merge_lists being true). > > Change parse_memory_options() so that, similar to the older function > set_memory_options(), it operates after command line parsing is done; > and also call it where set_memory_options() used to be. > > Note, the parsing code uses exit(1) instead of exit(EXIT_FAILURE) to > match neighboring code. > > Reported-by: Markus Armbruster <arm...@redhat.com> > Fixes: ce9d03fb3f ("machine: add mem compound property", 2022-05-12) > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > softmmu/vl.c | 25 ++++++++++++++++--------- > 1 file changed, 16 insertions(+), 9 deletions(-)
I wrote a qtest (see cc'd separate mail) to validate -readconfig handling of '[memory]' and this change makes the test pass, so on that basis Tested-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|