qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH for-7.1] vl: fix [memory] section with -readconfig


From: Paolo Bonzini
Subject: Re: [PATCH for-7.1] vl: fix [memory] section with -readconfig
Date: Fri, 5 Aug 2022 19:16:43 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0

On 8/5/22 15:40, Markus Armbruster wrote:
+    loc_push_none(&loc);
+    qemu_opts_loc_restore(opts);
+
      prop = qdict_new();
if (qemu_opt_get_size(opts, "size", 0) != 0) {
This treats "size=0" like absent size.  Before commit ce9d03fb3f, we
instead checked

        mem_str = qemu_opt_get(opts, "size");
        if (mem_str) {

Makes more sense, doesn't it?

True, on the other hand before commit ce9d03fb3f we handled "-m 0" like this:

    sz = 0;
    mem_str = qemu_opt_get(opts, "size");
    if (mem_str) {
        ...
    }
    if (sz == 0) {
        sz = default_ram_size;
    }

Now instead, the "-m 0" case results in no qdict_put_str() call at all. So the code flows better with qemu_opt_get_size(opts, "size", 0).

In addition, using qemu_opt_get_size() is what enables the dead code removal below, because it generates an error for empty size.

Also, with the new check above, the check below...

            mem_str = qemu_opt_get(opts, "size");
            if (!*mem_str) {
                error_report("missing 'size' option value");
                exit(EXIT_FAILURE);
            }

... looks dead.  We get there only when qemu_opt_get_size() returns
non-zero, which implies a non-blank string.

Makes sense.  Separate patch?

  static void qemu_create_machine(QDict *qdict)
Commit ce9d03fb3f changed this function's purpose and renamed it from
set_memory_options() to parse_memory_options().

This commit is a partial revert.  It doesn't revert the change of name.
Intentional?

Yes, though honestly both are pretty bad names. set_memory_options() is bad because it's not setting anything, it's just putting the values in a QDict. I kept parse_*() because it does do a limited amount of parsing to handle the suffix-less memory size.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]