All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: damien.hedde@greensocs.com, berrange@redhat.com,
	mark.burton@greensocs.com, edgar.iglesias@gmail.co,
	mirela.grujic@greensocs.com, marcandre.lureau@redhat.com,
	pbonzini@redhat.com, jsnow@redhat.com
Subject: [PATCH RFC 00/11] vl: Explore redesign of startup
Date: Thu,  2 Dec 2021 08:04:39 +0100	[thread overview]
Message-ID: <20211202070450.264743-1-armbru@redhat.com> (raw)

These patches are meant to back the memo "Redesign of QEMU startup &
initial configuration" I just posted.  Read that first, please.

My running example for initial configuration via QMP is cold plug.  It
works at the end of the series.

I'm taking a number of shortcuts:

* I hack up qemu-system-FOO instead of creating an alternate program.
  Just so I don't have to mess with Meson.

* Instead of creating QAPI/CLI infrastructure, I use QMP as CLI: each
  argument is interpreted as QMP command.  This is certainly bad CLI,
  but should suffice to demonstrate things.

* Instead of feeding the CLI's QMP commands to the main loop via a
  quasi-monitor, I send them directly to the QMP dispatcher.  Simpler,
  but I'm not sure that's going to work for all QMP commands we want.

* Phase advance is by explicit command @until-phase only.  Carelessly
  named.  We may want some other commands to advance the phase
  automatically.

* There are no safeguards.  You *can* run QMP commands in phases where
  they crash.  Data corruption is left as an exercise for the reader.

* Possibly more I can't remember right now :)

Markus Armbruster (11):
  vl: Cut off the CLI with an axe
  vl: Drop x-exit-preconfig
  vl: Hardcode a QMP monitor on stdio for now
  vl: Hardcode a VGA device for now
  vl: Demonstrate (bad) CLI wrapped around QMP
  vl: Factor qemu_until_phase() out of qemu_init()
  vl: Implement qemu_until_phase() running from arbitrary phase
  vl: Implement qemu_until_phase() running to arbitrary phase
  vl: New QMP command until-phase
  vl: Disregard lack of 'allow-preconfig': true
  vl: Enter main loop in phase @machine-initialized

 qapi/misc.json             |   27 -
 qapi/phase.json            |   31 +
 qapi/qapi-schema.json      |    1 +
 include/hw/qdev-core.h     |   31 -
 hw/core/machine-qmp-cmds.c |    1 +
 hw/core/machine.c          |    1 +
 hw/core/qdev.c             |    7 +
 hw/pci/pci.c               |    1 +
 hw/usb/core.c              |    1 +
 hw/virtio/virtio-iommu.c   |    1 +
 monitor/hmp-cmds.c         |    8 -
 monitor/hmp.c              |    1 +
 softmmu/qdev-monitor.c     |    3 +
 softmmu/vl.c               | 2833 ++----------------------------------
 ui/console.c               |    1 +
 MAINTAINERS                |    1 +
 hmp-commands.hx            |   18 -
 qapi/meson.build           |    1 +
 18 files changed, 180 insertions(+), 2788 deletions(-)
 create mode 100644 qapi/phase.json

-- 
2.31.1



             reply	other threads:[~2021-12-02  7:35 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-02  7:04 Markus Armbruster [this message]
2021-12-02  7:04 ` [PATCH RFC 01/11] vl: Cut off the CLI with an axe Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 02/11] vl: Drop x-exit-preconfig Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 03/11] vl: Hardcode a QMP monitor on stdio for now Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 04/11] vl: Hardcode a VGA device " Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 05/11] vl: Demonstrate (bad) CLI wrapped around QMP Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 06/11] vl: Factor qemu_until_phase() out of qemu_init() Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 07/11] vl: Implement qemu_until_phase() running from arbitrary phase Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 08/11] vl: Implement qemu_until_phase() running to " Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 09/11] vl: New QMP command until-phase Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 10/11] vl: Disregard lack of 'allow-preconfig': true Markus Armbruster
2021-12-02  7:04 ` [PATCH RFC 11/11] vl: Enter main loop in phase @machine-initialized Markus Armbruster
2021-12-02 10:26 ` [PATCH RFC 00/11] vl: Explore redesign of startup Markus Armbruster
2021-12-07 16:52 ` Damien Hedde
2021-12-08  7:07   ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211202070450.264743-1-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=damien.hedde@greensocs.com \
    --cc=edgar.iglesias@gmail.co \
    --cc=jsnow@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mark.burton@greensocs.com \
    --cc=mirela.grujic@greensocs.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.