From: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com> To: xen-devel@lists.xenproject.org Cc: "Stefano Stabellini" <sstabellini@kernel.org>, "Julien Grall" <julien@xen.org>, "Wei Liu" <wl@xen.org>, "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, "George Dunlap" <George.Dunlap@eu.citrix.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Ian Jackson" <ian.jackson@eu.citrix.com>, "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>, "Jan Beulich" <jbeulich@suse.com> Subject: [Xen-devel] [PATCH v4 01/16] Document ioemu MiniOS stubdomain protocol Date: Wed, 15 Jan 2020 03:39:40 +0100 Message-ID: <901ff35e0410fe9b871169383984f1e48850a836.1579055705.git-series.marmarek@invisiblethingslab.com> (raw) In-Reply-To: <cover.f819645cd9f5cf7a6f692f9661cfb4e670a2cd08.1579055705.git-series.marmarek@invisiblethingslab.com> Add documentation based on reverse-engineered toolstack-ioemu stubdomain protocol. Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- docs/misc/stubdom.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+) diff --git a/docs/misc/stubdom.txt b/docs/misc/stubdom.txt index de7b6c7..4c524f2 100644 --- a/docs/misc/stubdom.txt +++ b/docs/misc/stubdom.txt @@ -23,6 +23,59 @@ and http://wiki.xen.org/wiki/Device_Model_Stub_Domains for more information on device model stub domains +Toolstack to MiniOS ioemu stubdomain protocol +--------------------------------------------- + +This section describe communication protocol between toolstack and +qemu-traditional running in MiniOS stubdomain. The protocol include +expectations of both qemu and stubdomain itself. + +Setup (done by toolstack, expected by stubdomain): + - Block devices for target domain are connected as PV disks to stubdomain, + according to configuration order, starting with xvda + - Network devices for target domain are connected as PV nics to stubdomain, + according to configuration order, starting with 0 + - if graphics output is expected, VFB and VKB devices are set for stubdomain + (its backend is responsible for exposing them using appropriate protocol + like VNC or Spice) + - other target domain's devices are not connected at this point to stubdomain + (may be hot-plugged later) + - QEMU command line (space separated arguments) is stored in + /vm/<target-uuid>/image/dmargs xenstore path + - target domain id is stored in /local/domain/<stubdom-id>/target xenstore path +?? - bios type is stored in /local/domain/<target-id>/hvmloader/bios + - stubdomain's console 0 is connected to qemu log file + - stubdomain's console 1 is connected to qemu save file (for saving state) + - stubdomain's console 2 is connected to qemu save file (for restoring state) + - next consoles are connected according to target guest's serial console configuration + +Startup: +1. PV stubdomain is started with ioemu-stubdom.gz kernel and no initrd +2. stubdomain initialize relevant devices +2. stubdoma signal readiness by writing "running" to /local/domain/<stubdom-id>/device-model/<target-id>/state xenstore path +3. now stubdomain is considered running + +Runtime control (hotplug etc): +Toolstack can issue command through xenstore. The sequence is (from toolstack POV): +1. Write parameter to /local/domain/<stubdom-id>/device-model/<target-id>/parameter. +2. Write command to /local/domain/<stubdom-id>/device-model/<target-id>/command. +3. Wait for command result in /local/domain/<stubdom-id>/device-model/<target-id>/state (command specific value). +4. Write "running" back to /local/domain/<stubdom-id>/device-model/<target-id>/state. + +Defined commands: + - "pci-ins" - PCI hot plug, results: + - "pci-inserted" - success + - "pci-insert-failed" - failure + - "pci-rem" - PCI hot remove, results: + - "pci-removed" - success + - ?? + - "save" - save domain state to console 1, results: + - "paused" - success + - "continue" - resume domain execution, after loading state from console 2 (require -loadvm command argument), results: + - "running" - success + + + PV-GRUB ======= -- git-series 0.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply index Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-15 2:39 [Xen-devel] [PATCH v4 00/16] Add support for qemu-xen runnning in a Linux-based stubdomain Marek Marczykowski-Górecki 2020-01-15 2:39 ` Marek Marczykowski-Górecki [this message] 2020-01-20 18:30 ` [Xen-devel] [PATCH v4 01/16] Document ioemu MiniOS stubdomain protocol Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 02/16] Document ioemu Linux " Marek Marczykowski-Górecki 2020-01-20 18:54 ` Jason Andryuk 2020-01-21 21:08 ` Marek Marczykowski-Górecki 2020-01-22 14:04 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 03/16] libxl: fix qemu-trad cmdline for no sdl/vnc case Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 04/16] libxl: Allow running qemu-xen in stubdomain Marek Marczykowski-Górecki 2020-01-20 18:56 ` Jason Andryuk 2020-01-21 21:12 ` Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 05/16] libxl: Handle Linux stubdomain specific QEMU options Marek Marczykowski-Górecki 2020-01-20 19:24 ` Jason Andryuk 2020-01-21 21:18 ` Marek Marczykowski-Górecki 2020-01-22 14:25 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 06/16] libxl: write qemu arguments into separate xenstore keys Marek Marczykowski-Górecki 2020-01-20 19:36 ` Jason Andryuk 2020-01-21 21:19 ` Marek Marczykowski-Górecki 2020-01-22 14:39 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 07/16] xl: add stubdomain related options to xl config parser Marek Marczykowski-Górecki 2020-01-20 19:41 ` Jason Andryuk 2020-01-21 21:22 ` Marek Marczykowski-Górecki 2020-01-22 14:39 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 08/16] tools/libvchan: notify server when client is connected Marek Marczykowski-Górecki 2020-01-20 19:44 ` Jason Andryuk 2020-01-21 21:28 ` Marek Marczykowski-Górecki 2020-01-22 14:43 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 09/16] libxl: add save/restore support for qemu-xen in stubdomain Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 10/16] tools: add missing libxenvchan cflags Marek Marczykowski-Górecki 2020-01-20 19:58 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 11/16] tools: add simple vchan-socket-proxy Marek Marczykowski-Górecki 2020-01-15 11:02 ` Jan Beulich 2020-01-16 17:11 ` Marek Marczykowski-Górecki 2020-01-17 8:13 ` Jan Beulich 2020-01-17 18:44 ` Rich Persaud 2020-01-17 18:56 ` Marek Marczykowski-Górecki 2020-01-21 19:43 ` Jason Andryuk 2020-01-21 23:09 ` Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 12/16] libxl: use vchan for QMP access with Linux stubdomain Marek Marczykowski-Górecki 2020-01-21 20:17 ` Jason Andryuk 2020-01-21 23:46 ` Marek Marczykowski-Górecki 2020-01-24 14:05 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 13/16] Regenerate autotools files Marek Marczykowski-Górecki 2020-01-15 21:57 ` Rich Persaud 2020-01-21 20:56 ` Marek Marczykowski-Górecki 2020-01-21 21:28 ` Rich Persaud 2020-01-22 8:57 ` Lars Kurth 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 14/16] libxl: require qemu in dom0 even if stubdomain is in use Marek Marczykowski-Górecki 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 15/16] libxl: ignore emulated IDE disks beyond the first 4 Marek Marczykowski-Górecki 2020-01-21 20:24 ` Jason Andryuk 2020-01-15 2:39 ` [Xen-devel] [PATCH v4 16/16] libxl: consider also qemu in stubdomain in libxl__dm_active check Marek Marczykowski-Górecki 2020-01-21 20:25 ` Jason Andryuk 2020-01-22 16:50 ` [Xen-devel] [PATCH v4 00/16] Add support for qemu-xen runnning in a Linux-based stubdomain Jason Andryuk
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=901ff35e0410fe9b871169383984f1e48850a836.1579055705.git-series.marmarek@invisiblethingslab.com \ --to=marmarek@invisiblethingslab.com \ --cc=George.Dunlap@eu.citrix.com \ --cc=andrew.cooper3@citrix.com \ --cc=ian.jackson@eu.citrix.com \ --cc=jbeulich@suse.com \ --cc=julien@xen.org \ --cc=konrad.wilk@oracle.com \ --cc=sstabellini@kernel.org \ --cc=wl@xen.org \ --cc=xen-devel@lists.xenproject.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
Xen-Devel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/xen-devel/0 xen-devel/git/0.git git clone --mirror https://lore.kernel.org/xen-devel/1 xen-devel/git/1.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 xen-devel xen-devel/ https://lore.kernel.org/xen-devel \ xen-devel@lists.xenproject.org xen-devel@lists.xen.org public-inbox-index xen-devel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.xenproject.lists.xen-devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git