From: Sergio Lopez <slp@redhat.com>
To: qemu-devel@nongnu.org
Cc: Sergio Lopez <slp@redhat.com>,
ehabkost@redhat.com, kvm@vger.kernel.org, mst@redhat.com,
lersek@redhat.com, mtosatti@redhat.com, kraxel@redhat.com,
pbonzini@redhat.com, imammedo@redhat.com, philmd@redhat.com,
rth@twiddle.net
Subject: [PATCH v4 7/8] docs/microvm.txt: document the new microvm machine type
Date: Tue, 24 Sep 2019 14:44:32 +0200 [thread overview]
Message-ID: <20190924124433.96810-8-slp@redhat.com> (raw)
In-Reply-To: <20190924124433.96810-1-slp@redhat.com>
Document the new microvm machine type.
Signed-off-by: Sergio Lopez <slp@redhat.com>
---
docs/microvm.txt | 78 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 docs/microvm.txt
diff --git a/docs/microvm.txt b/docs/microvm.txt
new file mode 100644
index 0000000000..0241226b2a
--- /dev/null
+++ b/docs/microvm.txt
@@ -0,0 +1,78 @@
+Microvm is a machine type inspired by both NEMU and Firecracker, and
+constructed after the machine model implemented by the latter.
+
+It's main purpose is providing users a minimalist machine type free
+from the burden of legacy compatibility, serving as a stepping stone
+for future projects aiming at improving boot times, reducing the
+attack surface and slimming down QEMU's footprint.
+
+The microvm machine type supports the following devices:
+
+ - ISA bus
+ - i8259 PIC
+ - LAPIC (implicit if using KVM)
+ - IOAPIC (defaults to kernel_irqchip_split = true)
+ - i8254 PIT
+ - MC146818 RTC (optional)
+ - kvmclock (if using KVM)
+ - fw_cfg
+ - One ISA serial port (optional)
+ - Up to eight virtio-mmio devices (configured by the user)
+
+It supports the following machine-specific options:
+
+microvm.option-roms=bool (Set off to disable loading option ROMs)
+microvm.isa-serial=bool (Set off to disable the instantiation an ISA serial port)
+microvm.rtc=bool (Set off to disable the instantiation of an MC146818 RTC)
+microvm.kernel-cmdline=bool (Set off to disable adding virtio-mmio devices to the kernel cmdline)
+
+By default, microvm uses qboot as its BIOS, to obtain better boot
+times, but it's also compatible with SeaBIOS.
+
+As no current FW is able to boot from a block device using virtio-mmio
+as its transport, a microvm-based VM needs to be run using a host-side
+kernel and, optionally, an initrd image.
+
+This is an example of instantiating a microvm VM with a virtio-mmio
+based console:
+
+qemu-system-x86_64 -M microvm
+ -enable-kvm -cpu host -m 512m -smp 2 \
+ -kernel vmlinux -append "console=hvc0 root=/dev/vda" \
+ -nodefaults -no-user-config -nographic \
+ -chardev stdio,id=virtiocon0,server \
+ -device virtio-serial-device \
+ -device virtconsole,chardev=virtiocon0 \
+ -drive id=test,file=test.img,format=raw,if=none \
+ -device virtio-blk-device,drive=test \
+ -netdev tap,id=tap0,script=no,downscript=no \
+ -device virtio-net-device,netdev=tap0
+
+This is another example, this time using an ISA serial port, useful
+for debugging purposes:
+
+qemu-system-x86_64 -M microvm \
+ -enable-kvm -cpu host -m 512m -smp 2 \
+ -kernel vmlinux -append "earlyprintk=ttyS0 console=ttyS0 root=/dev/vda" \
+ -nodefaults -no-user-config -nographic \
+ -serial stdio \
+ -drive id=test,file=test.img,format=raw,if=none \
+ -device virtio-blk-device,drive=test \
+ -netdev tap,id=tap0,script=no,downscript=no \
+ -device virtio-net-device,netdev=tap0
+
+Finally, in this example a microvm VM is instantiated without RTC,
+without an ISA serial port and without loading the option ROMs,
+obtaining the smallest configuration:
+
+qemu-system-x86_64 -M microvm,rtc=off,isa-serial=off,option-roms=off \
+ -enable-kvm -cpu host -m 512m -smp 2 \
+ -kernel vmlinux -append "console=hvc0 root=/dev/vda" \
+ -nodefaults -no-user-config -nographic \
+ -chardev stdio,id=virtiocon0,server \
+ -device virtio-serial-device \
+ -device virtconsole,chardev=virtiocon0 \
+ -drive id=test,file=test.img,format=raw,if=none \
+ -device virtio-blk-device,drive=test \
+ -netdev tap,id=tap0,script=no,downscript=no \
+ -device virtio-net-device,netdev=tap0
--
2.21.0
next prev parent reply other threads:[~2019-09-24 13:54 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-24 12:44 [PATCH v4 0/8] Introduce the microvm machine type Sergio Lopez
2019-09-24 12:44 ` [PATCH v4 1/8] hw/i386: Factorize PVH related functions Sergio Lopez
2019-09-24 13:18 ` Philippe Mathieu-Daudé
2019-09-25 6:03 ` Sergio Lopez
2019-09-25 8:36 ` Stefano Garzarella
2019-09-25 9:00 ` Sergio Lopez
2019-09-25 9:29 ` Stefano Garzarella
2019-09-24 12:44 ` [PATCH v4 2/8] hw/i386: Factorize e820 " Sergio Lopez
2019-09-24 13:20 ` Philippe Mathieu-Daudé
2019-09-24 14:12 ` Sergio Lopez
2019-09-24 12:44 ` [PATCH v4 3/8] hw/virtio: Factorize virtio-mmio headers Sergio Lopez
2019-09-24 12:44 ` [PATCH v4 4/8] hw/i386: split PCMachineState deriving X86MachineState from it Sergio Lopez
2019-09-24 13:40 ` Philippe Mathieu-Daudé
2019-09-25 15:39 ` Philippe Mathieu-Daudé
2019-09-24 12:44 ` [PATCH v4 5/8] fw_cfg: add "modify" functions for all types Sergio Lopez
2019-09-24 12:44 ` [PATCH v4 6/8] roms: add microvm-bios (qboot) as binary and git submodule Sergio Lopez
2019-09-24 13:31 ` Philippe Mathieu-Daudé
2019-09-25 6:09 ` Sergio Lopez
2019-09-24 12:44 ` Sergio Lopez [this message]
2019-09-24 13:10 ` [PATCH v4 7/8] docs/microvm.txt: document the new microvm machine type Paolo Bonzini
2019-09-25 5:49 ` Sergio Lopez
2019-09-25 7:57 ` Paolo Bonzini
2019-09-25 8:40 ` Sergio Lopez
2019-09-25 9:22 ` Paolo Bonzini
2019-09-25 11:04 ` Sergio Lopez
2019-09-25 11:20 ` Paolo Bonzini
2019-09-25 15:04 ` Sergio Lopez
2019-09-25 16:46 ` Paolo Bonzini
2019-09-26 6:23 ` Sergio Lopez
2019-09-26 8:58 ` Paolo Bonzini
2019-09-26 10:16 ` Sergio Lopez
2019-09-26 10:21 ` Paolo Bonzini
2019-09-26 12:12 ` Sergio Lopez
2019-09-25 5:06 ` Gerd Hoffmann
2019-09-25 7:33 ` Sergio Lopez
2019-09-25 8:51 ` Gerd Hoffmann
2019-09-24 12:44 ` [PATCH v4 8/8] hw/i386: Introduce the " Sergio Lopez
2019-09-24 13:12 ` Paolo Bonzini
2019-09-24 13:24 ` Michael S. Tsirkin
2019-09-24 13:34 ` Paolo Bonzini
2019-09-25 5:53 ` Sergio Lopez
2019-09-24 13:28 ` Michael S. Tsirkin
2019-09-25 5:59 ` Sergio Lopez
2019-10-01 8:56 ` Sergio Lopez
2019-09-25 15:40 ` Philippe Mathieu-Daudé
2019-09-26 6:34 ` Sergio Lopez
2019-09-26 8:59 ` Paolo Bonzini
2019-09-24 13:57 ` [PATCH v4 0/8] " Peter Maydell
2019-09-25 5:51 ` Sergio Lopez
2019-09-25 11:33 ` Philippe Mathieu-Daudé
2019-09-25 12:39 ` Peter Maydell
2019-09-25 7:41 ` David Hildenbrand
2019-09-25 7:58 ` Pankaj Gupta
2019-09-25 8:10 ` Sergio Lopez
2019-09-25 8:16 ` David Hildenbrand
2019-09-25 8:37 ` Pankaj Gupta
2019-09-25 8:26 ` Paolo Bonzini
2019-09-25 8:42 ` Sergio Lopez
2019-09-25 8:44 ` David Hildenbrand
2019-09-25 10:19 ` when to use virtio (was Re: [PATCH v4 0/8] Introduce the microvm machine type) Paolo Bonzini
2019-09-25 10:50 ` David Hildenbrand
2019-09-25 11:24 ` Paolo Bonzini
2019-09-25 11:32 ` David Hildenbrand
2019-09-25 9:12 ` [PATCH v4 0/8] Introduce the microvm machine type Gerd Hoffmann
2019-09-25 9:29 ` Paolo Bonzini
2019-09-25 9:47 ` David Hildenbrand
2019-09-26 7:48 ` Christian Borntraeger
2019-09-26 8:22 ` Sergio Lopez
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=20190924124433.96810-8-slp@redhat.com \
--to=slp@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=lersek@redhat.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).