-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop using QEMU's human monitor #1542
Comments
I entirely agree. I will try to tackle some of these, since I have already done some work on this end in the past months. I'll update this issue when I start working on any of the above tasks. |
Parts if this PR have been addressed by #1546 (and bumped the minimum QEMU version to 2.12). However, there is still some work to do :-) |
@saschalucas @apoikos there is now only the block device part left to address. However, this seems to a bit more complicated: according to this slidedeck The latter is deprecated and should be replaced by the So I guess we need to entirely replace the Replacing the entire code is one thing, taking care of migrating between I think this is a worthwhile feature for 3.1 but will probably also bump version requirements for QEMU quite a bit. |
@rbott QEMU 2.9 was ages ago, I think it's perfectly fine to restrict ourselves to QEMU >= 3 (or even 4). |
@rbott: digging a bit into QEMU history, QMP Changing the code should be straightforward once we decide to only use QMP, we just need to check if there's anything affecting running instances and live migrations. |
Right now we are using a mix of HMP and QMP calls to QEMU, depending on the feature. This adds complexity to the code and confusion to contributors over picking which method to use. Since QMP is supposed to be the machine interface of QEMU, it makes sense to switch everything over to it.
We currently use the human monitor for the following operations:
info cpus
, QMP command:query-cpus
, since 0.14)change vnc password
, QMP command:change
with arguments, since 0.14)drive_add
, QMP command:blockdev-add
, since 2.9)drive_del
, QMP command:blockdev-del
, since 2.9)system_powerdown
, QMP command:system_powerdown
, since 0.14)balloon
, QMP command:balloon
, since 0.14)info version
, QMP command:query-version
, since 0.14)(The information on the QMP commands can be found under
qapi/
in the QEMU source)Migrating all these calls to QMP bumps our compatibility to QEMU >= 2.9, which was released in 2017. Since we are anyway no longer compatible with Xenial and Stretch because of Python 3/GHC, there's nothing to lose here.
The text was updated successfully, but these errors were encountered: