qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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



  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).