[pve-devel] [PATCH qemu-server 2/8] config to command: add one '-global' option for each flag
Fiona Ebner
f.ebner at proxmox.com
Fri Mar 7 11:14:42 CET 2025
Am 07.03.25 um 11:05 schrieb Dominik Csapak:
> On 3/7/25 11:00, Fiona Ebner wrote:
>> Am 07.03.25 um 10:54 schrieb Dominik Csapak:
>>> On 3/6/25 13:55, Fiona Ebner wrote:
>>>> Am 06.03.25 um 13:15 schrieb Dominik Csapak:
>>>>> On 3/6/25 13:13, Fiona Ebner wrote:
>>>>>> Am 06.03.25 um 11:44 schrieb Dominik Csapak:
>>>>>>> If we have multiple 'globalFlags', we have to encode each one
>>>>>>> separately
>>>>>>> on the commandline with '-global OPTION', since QEMU does not
>>>>>>> allow to
>>>>>>> have multiple options here.
>>>>>>>
>>>>>>> We currently only have one such flag that used the 'globalFlags'
>>>>>>> list,
>>>>>>> so it never popped up. (All other uses directly add an option to the
>>>>>>> commandline)
>>>>>>>
>>>>>>> Avoid future bugs by fixing it now.
>>>>>>>
>>>>>>
>>>>>> So there is no real point to collecting the flags in the first place?
>>>>>> I.e. we could also get rid of the variable and have the single
>>>>>> current
>>>>>> user of the variable add the flag directly on the commandline too. Or
>>>>>> otherwise, we could change the other users and collect all flags with
>>>>>> this variable. Pre-existing of course, but ideally, we could avoid
>>>>>> the
>>>>>> mishmash.
>>>>>>
>>>>>
>>>>> Sorry this could have been more clear here:
>>>>> I add to the flags in one of the following patches, so i sent this
>>>>> in preparation of that (could possibly be squashed)
>>>>
>>>> Yes, I understand that. I still think the status quo with mixing two
>>>> different approaches might not be best. It's not going to be a blocker
>>>> for the series, but I wanted to mention it, if you want to go for
>>>> avoiding it.
>>>>
>>>>> I did not want to touch the other places, since that in turn changes
>>>>> the order of the qemu commandline (which sometimes has unintended side
>>>>> effects, e.g. in combination with the 'args' parameter)
>>>>
>>>> Are you sure? Custom 'args' are always added last so that shouldn't
>>>> matter.
>>>>
>>>> The only thing that would change by removing the global flags variable
>>>> is having "-global kvm-pit.lost_tick_policy=discard" earlier in the
>>>> commandline. I think that should be fine. In particular QEMU's
>>>> qemu_init() function has a call to user_register_global_props() which
>>>> handles all global properties at the same time, so I think changing the
>>>> order should be fine in (almost?) all cases.
>>>
>>> I'll test that, but imho it would better to do the reverse here?
>>> So don't interject '-gloabl' parameters throughout config2command, but
>>> add them to the globalFlags and output them together at the end?
>>>
>>> we'd have to touch the same number of tests i think, but it seems less
>>> confusing to me (also in the resulting commandline we'd have all
>>> global options together then)
>>>
>>> Or is there a better argument for injecting the global parameters
>>> in the middle?
>>
>> It avoids the need for the variable to collect and passing it around and
>> to remember adding future ones to that variable too.
>>
>> It doesn't make a difference from QEMUs perspective, but would slightly
>> improve readability for humans looking at the commandline.
>>
>> Note that I already suggested collecting all in the variable as an
>> approach above. I just want to avoid the mishmash.
>
> OK, which approach would you prefer? (I don't have a strong feeling in
> either direction
> and doing the cleanup now seems to not be a lot of work)
>
I don't have a strong opinion either, but slightly prefer the
no-variable/collect approach. Just because cfg2cmd is already quite
bloated. We can always switch to collecting again, if we continue adding
global flags and think it's worth for readability on the cmdline.
More information about the pve-devel
mailing list