[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 50/50] multi-process: add configure and usage information
From: |
Jagannathan Raman |
Subject: |
[PATCH v5 50/50] multi-process: add configure and usage information |
Date: |
Mon, 24 Feb 2020 15:55:41 -0500 |
From: Elena Ufimtseva <address@hidden>
Signed-off-by: Elena Ufimtseva <address@hidden>
Signed-off-by: Jagannathan Raman <address@hidden>
Signed-off-by: John G Johnson <address@hidden>
---
docs/qemu-multiprocess.txt | 86 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 86 insertions(+)
create mode 100644 docs/qemu-multiprocess.txt
diff --git a/docs/qemu-multiprocess.txt b/docs/qemu-multiprocess.txt
new file mode 100644
index 0000000..f156177
--- /dev/null
+++ b/docs/qemu-multiprocess.txt
@@ -0,0 +1,86 @@
+Multi-process QEMU
+==================
+
+This document describes how to configure and use multi-process qemu.
+For the design document refer to docs/devel/qemu-multiprocess.
+
+1) Configuration
+----------------
+
+To enable support for multi-process add --enable-mpqemu
+to the list of options for the "configure" script.
+
+
+2) Usage
+--------
+
+To start qemu with devices intended to run in a separate emulation
+process without libvirtd support, the following should be used on QEMU
+command line. As of now, we only support the emulation of lsi53c895a
+in a separate process
+
+* Since parts of the RAM are shared between QEMU & remote process, a
+ memory-backend-file is required to facilitate this, as follows:
+
+ -object memory-backend-file,id=mem,mem-path=/dev/shm/,size=4096M,share=on
+
+* The devices to be emulated in the separate process are defined as
+ before with addition of "rid" suboption that serves as a remote group
+ identificator.
+
+ -device <device options>,rid="remote process id"
+
+ For example, for non multi-process qemu:
+ -device lsi53c895a,id=scsi0 device
+ -device scsi-hd,drive=drive0,bus=scsi0.0,scsi-id=0
+ -drive id=drive0,file=data-disk.img
+
+ and for multi-process qemu and no libvirt
+ support (i.e. QEMU forks child processes):
+ -device lsi53c895a,id=scsi0,rid=0
+ -device scsi-hd,drive=drive0,bus=scsi0.0,scsi-id=0,rid=0
+
+* The command-line options for the remote process are added to the "command"
+ suboption of the newly added "-remote" option.
+
+ -remote [socket],rid=0,exec="...",command="..."
+
+ The drives to be emulated by the remote process are specified as part of
+ this command sub-option. The device to be used to connect to the monitor
+ is also specified as part of this suboption.
+
+ For example, the following option adds a drive and monitor to the remote
+ process:
+ -remote rid=0,exec="qemu-scsi-dev",command="-drive
id=drive0,,file=data-disk.img -monitor unix:/home/qmp-sock,,server,,nowait"
+
+ Note: There's an issue with this "command" sub-option which we are in the
+ process of fixing. To work around this issue, it requires additional
+ "comma" characters as illustrated above, and in the example below.
+
+* Example QEMU command-line to launch lsi53c895a in a remote process
+
+ #/bin/sh
+ qemu-system-x86_64 \
+ -name "OL7.4" \
+ -machine q35,accel=kvm \
+ -smp sockets=1,cores=1,threads=1 \
+ -cpu host \
+ -m 2048 \
+ -object memory-backend-file,id=mem,mem-path=/dev/shm/,size=2G,share=on \
+ -numa node,memdev=mem \
+ -device virtio-scsi-pci,id=virtio_scsi_pci0 \
+ -drive id=drive_image1,if=none,format=raw,file=/root/ol7.qcow2 \
+ -device scsi-hd,id=image1,drive=drive_image1,bus=virtio_scsi_pci0.0 \
+ -boot d \
+ -monitor stdio \
+ -vnc :0 \
+ -device lsi53c895a,id=lsi0,remote,rid=8,command="qemu-scsi-dev" \
+ -device
scsi-hd,id=drive2,drive=drive_image2,bus=lsi0.0,scsi-id=0,remote,rid=8,command="qemu-scsi-dev"\
+ -remote rid=8,exec="qemu-scsi-dev",command="-drive
id=drive_image2,,file=/root/remote-process-disk.img -monitor
unix:/home/qmp-sock,,server,,nowait"
+
+ We could connect to the monitor using the following command:
+ socat /home/qmp-sock stdio
+
+ After hotplugging disks to the remote process, please execute the
+ following command in the guest to refresh the list of storage devices:
+ rescan_scsi_bus.sh -a
--
1.8.3.1
- [PATCH v5 42/50] multi-process/mig: Send VMSD of remote to the Proxy object, (continued)
- [PATCH v5 42/50] multi-process/mig: Send VMSD of remote to the Proxy object, Jagannathan Raman, 2020/02/24
- [PATCH v5 37/50] multi-process/mon: Refactor monitor/chardev functions out of vl.c, Jagannathan Raman, 2020/02/24
- [PATCH v5 36/50] multi-process/mon: enable QMP module support in the remote process, Jagannathan Raman, 2020/02/24
- [PATCH v5 45/50] multi-process/mig: Synchronize runstate of remote process, Jagannathan Raman, 2020/02/24
- [PATCH v5 46/50] multi-process/mig: Restore the VMSD in remote process, Jagannathan Raman, 2020/02/24
- [PATCH v5 39/50] multi-process: prevent duplicate memory initialization in remote, Jagannathan Raman, 2020/02/24
- [PATCH v5 48/50] multi-process: Validate incoming commands from Proxy, Jagannathan Raman, 2020/02/24
- [PATCH v5 41/50] multi-process/mig: Enable VMSD save in the Proxy object, Jagannathan Raman, 2020/02/24
- [PATCH v5 50/50] multi-process: add configure and usage information,
Jagannathan Raman <=
- [PATCH v5 40/50] multi-process/mig: build migration module in the remote process, Jagannathan Raman, 2020/02/24
- [PATCH v5 44/50] multi-process/mig: refactor runstate_check into common file, Jagannathan Raman, 2020/02/24
- [PATCH v5 47/50] multi-process: Enable support for multiple devices in remote, Jagannathan Raman, 2020/02/24
- [PATCH v5 49/50] multi-process: add the concept description to docs/devel/qemu-multiprocess, Jagannathan Raman, 2020/02/24
- [PATCH v5 04/50] multi-process: Add stub functions to facilate build of multi-process, Jagannathan Raman, 2020/02/24