qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] qmp: Stabilize preconfig


From: Paolo Bonzini
Subject: Re: [PATCH] qmp: Stabilize preconfig
Date: Tue, 16 Nov 2021 07:50:00 +0100



El lun., 15 nov. 2021 16:40, Markus Armbruster <armbru@redhat.com> escribió:
> Why do you care?  For another example, you can use "reboot" or
> "systemctl isolate reboot.target" and they end up doing the same thing.
>
> As long as qemu_init invokes qmp_machine_set, qmp_accel_set,
> qmp_device_add, qmp_plugin_add, qmp_cont, etc. to do its job, the
> difference between qemu-system-* and qemu-qmp-* is a couple thousands
> lines of boring code that all but disappears once the VM is up and
> running.  IOW, with the right design (e.g. shortcut options for QOM
> properties good; dozens of global variables bad), there's absolutely no
> issue with some people using qemu-system-* and some using qemu-qmp-*.

I think maintaining two binaries forever is madness.  I want the old one
to wither away.

This seems a bit dogmatic to me. The difference between the two binaries would be literally a single file, which basically disappears before anything interesting happens.

Making the new binary capable of serving all use cases should not be
hard, just work (see my design sketch).  I expect the result to serve
*better* than the mess we have now.

Most of the mess is in the implementation. Not all, granted. But overall softmmu/vl.c's ugliness is mostly due to the layers of backwards compatibility, and that wouldn't go away very soon.

>>>> My point is that we still have quite a few commands without
>>>> 'allow-preconfig' mostly because we are afraid of allowing them in
>>>> preconfig state, not because of true phase dependencies.
>>>
>>> I think there's very few of them, if any (outside the block layer for
>>> which patches exist), and those are due to distraction more than fear.
>>
>> qapi/*.json has 216 commands, of which 26 carry 'allow-preconfig'.
>
> Well,
> https://lists.gnu.org/archive/html/qemu-devel/2021-06/msg01597.html
> alone would more than double that. :)
>
> Places like machine.json, machine-target.json, migration.json,
> replay.json have a lot of commands that are, obviously, almost entirely
> not suitable for preconfig.  I don't think there are many commands left,
> I'd guess maybe 30 (meaning that ~60% are done).

My point is that "very few" is not literally true, and I think you just
confirmed it ;)

Ok, let me rephrase that as "most of the missing ones are block-layer relates". ;)

Paolo


reply via email to

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