pub/scm/linux/kernel/git/sashal/kvmtool.git  about / heads / tags
Sasha Levin's fork of kvmtool.git
$ git log --pretty=format:'%h %s (%cs)%d'
d6cd09a kvmtool: don't unpause vm when exiting vcpu threads (2015-10-21)
	(HEAD -> master)
65b05c8 kvmtool: set 9p caching mode to support writable mmaps (2015-10-21)
3a90da6 kvmtool: assume dead vcpus are paused too (2015-10-21)
49764dc kvmtool: correct order of the vcpu destructor (2015-10-21)
69f1017 kvmtool: add support for modern virtio-pci (2015-10-21)
3695ade Add a link to the lwn.net article (2015-10-09)
cdce942 Make static libc and guest-init functionality optional. (2015-09-15)
0837fbe Makefile: relax arm test (2015-09-10)
0161ed7 Handle KVM_EXIT_SYSTEM_EVENT on any VCPU (2015-09-04)
efcf862 README: Add section for where to send patches. (2015-08-07)
...

$ git cat-file blob HEAD:README
Native Linux KVM tool
=====================

kvmtool is a lightweight tool for hosting KVM guests. As a pure virtualization
tool it only supports guests using the same architecture, though it supports
running 32-bit guests on those 64-bit architectures that allow this.

From the original announcement email:
-------------------------------------------------------
The goal of this tool is to provide a clean, from-scratch, lightweight
KVM host tool implementation that can boot Linux guest images (just a
hobby, won't be big and professional like QEMU) with no BIOS
dependencies and with only the minimal amount of legacy device
emulation.

It's great as a learning tool if you want to get your feet wet in
virtualization land: it's only 5 KLOC of clean C code that can already
boot a guest Linux image.

Right now it can boot a Linux image and provide you output via a serial
console, over the host terminal, i.e. you can use it to boot a guest
Linux image in a terminal or over ssh and log into the guest without
much guest or host side setup work needed.
--------------------------

This is the stand-alone version which does not live inside a Linux
kernel tree.
1. To check it out, clone the main git repository:

  git clone git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git

2. Compile the tool (for more elaborate instructions see INSTALL):

  cd kvmtool && make

3. Download a raw userspace image:

  wget http://wiki.qemu.org/download/linux-0.2.img.bz2 && bunzip2
linux-0.2.img.bz2

4. The guest kernel has to be built with the following configuration:

 - For the default console output:
	CONFIG_SERIAL_8250=y
	CONFIG_SERIAL_8250_CONSOLE=y

 - For running 32bit images on 64bit hosts:
	CONFIG_IA32_EMULATION=y

 - Proper FS options according to image FS (e.g. CONFIG_EXT2_FS, CONFIG_EXT4_FS).

 - For all virtio devices listed below:
	CONFIG_VIRTIO=y
	CONFIG_VIRTIO_RING=y
	CONFIG_VIRTIO_PCI=y

 - For virtio-blk devices (--disk, -d):
	CONFIG_VIRTIO_BLK=y

 - For virtio-net devices ([--network, -n] virtio):
	CONFIG_VIRTIO_NET=y

 - For virtio-9p devices (--virtio-9p):
	CONFIG_NET_9P=y
	CONFIG_NET_9P_VIRTIO=y
	CONFIG_9P_FS=y

 - For virtio-balloon device (--balloon):
	CONFIG_VIRTIO_BALLOON=y

 - For virtio-console device (--console virtio):
	CONFIG_VIRTIO_CONSOLE=y

 - For virtio-rng device (--rng):
	CONFIG_HW_RANDOM_VIRTIO=y

 - For vesa device (--sdl or --vnc):
	CONFIG_FB_VESA=y


5. And finally, launch the hypervisor:

  ./lkvm run --disk linux-0.2.img \
	    --kernel ../../arch/x86/boot/bzImage \
or

  sudo ./lkvm run --disk linux-0.2.img \
		 --kernel ../../arch/x86/boot/bzImage \
		 --network virtio

The tool has been written by Pekka Enberg, Cyrill Gorcunov, Asias He,
Sasha Levin and Prasad Joshi. Special thanks to Avi Kivity for his help
on KVM internals and Ingo Molnar for all-around support and encouragement!

See the following thread for original discussion for motivation of this
project:

http://thread.gmane.org/gmane.linux.kernel/962051/focus=962620

Another detailed example can be found in the lwn.net article:

http://lwn.net/Articles/658511/

Contributing
------------

Please send patches for kvmtool to kvm@vger.kernel.org , in the usual git patch
format. Include "kvmtool" in the mail subject.

# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
	--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master       kvmtool: don't unpause vm when exiting vcpu threads (2015-10-21)
  devel/will/vfio kvm tools: add support for device passthrough using VFIO (2015-10-06)

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
# no tags, yet...

# associated public inboxes:
# (number on the left is used for dev purposes)
       3114 kvm
        573 kvmarm
        281 linux-arm-kernel
        201 ../../../../../../../lkml
        161 kvm-ppc
         49 qemu-devel
         47 virtualization
         36 linux-mips
         28 netdev
         17 stable
         17 linux-perf-users
         12 u-boot
         10 linux-fsdevel
         10 dri-devel
          9 linuxppc-dev
          8 linux-devicetree
          8 buildroot
          7 linux-riscv
          7 dpdk-dev
          7 linux-doc
          7 git
          7 intel-gfx
          7 qemu-riscv
          6 linux-wireless
          6 linux-s390
          5 bpf
          5 linux-nfs
          5 xen-devel
          5 linux-api
          5 nvdimm
          5 virtio-fs
          4 linux-nvdimm
          4 linux-media
          4 linux-scsi
          4 linux-btrfs
          4 selinux
          4 linux-bluetooth
          4 linux-remoteproc
          4 containers
          4 linux-coco
          4 openembedded-core
          4 linux-um
          4 virtio-dev
          3 linux-samsung-soc
          3 linux-mtd
          3 linux-block
          3 netfilter-devel
          3 linux-arm-msm
          3 linux-mm
          3 alsa-devel
          3 linux-pci
          3 linux-serial
          3 linux-omap
          3 linux-arch
          3 platform-driver-x86
          3 target-devel
          3 openembedded-devel
          3 linux-patches
          2 linux-xfs
          2 linux-mediatek
          2 linux-efi
          2 linux-integrity
          2 linux-amlogic
          2 fstests
          2 linux-pm
          2 linux-usb
          2 linux-rdma
          2 linux-ext4
          2 linux-security-module
          2 linux-m68k
          2 io-uring
          2 linux-mmc
          2 linux-unionfs
          2 linux-audit
          2 linux-dash
          2 linux-kbuild
          2 linux-can
          2 linux-rockchip
          2 linux-raid
          2 phone-devel
          2 linux-hardening
          2 dash
          2 dm-devel
          2 linux-sctp
          2 lustre-devel
          2 linux-sh
          2 kernel-janitors
          2 linux-staging
          2 yocto-meta-freescale
          2 batman
          2 ecryptfs
          2 devicetree-compiler
          2 lvs-devel
          1 linux-fscrypt
          1 cocci
          1 linux-nvme
          1 live-patching
          1 linux-crypto
          1 linux-acpi
          1 linux-edac
          1 linux-cifs
          1 linux-erofs
          1 linux-iommu
          1 linux-snps-arc
          1 linux-hwmon
          1 linux-rtc
          1 linux-input
          1 driverdev-devel
          1 linux-renesas-soc
          1 linux-kselftest
          1 kernel-hardening
          1 linux-clk
          1 linux-iio
          1 linux-gpio
          1 dmaengine
          1 linux-next
          1 linux-parisc
          1 linux-leds
          1 linux-f2fs-devel
          1 linux-modules
          1 kernelnewbies
          1 linux-rt-users
          1 linux-sgx
          1 linux-ide
          1 linux-watchdog
          1 linux-trace-devel
          1 linux-hyperv
          1 workflows
          1 rcu
          1 linux-i3c
          1 util-linux
          1 linux-spdx
          1 linux-wpan
          1 ksummit-discuss
          1 wireguard
          1 backports
          1 linux-kernel-mentees
          1 linux-csky
          1 linux-man
          1 amd-gfx
          1 tpmdd-devel
          1 linux-firmware
          1 cip-dev
          1 linux-spi
          1 linux-i2c
          1 linux-bcache
          1 linux-sparse
          1 mm-commits
          1 linux-pwm
          1 linux-tegra
          1 lttng-dev
          1 linux-fpga
          1 ceph-devel
          1 xdp-newbies
          1 openbmc
          1 keyrings
          1 linux-fbdev
          1 linux-cxl
          1 soc
          1 ocfs2-devel
          1 rust-for-linux
          1 ath10k
          1 ath11k
          1 nouveau
          1 linux-phy
          1 sparclinux
          1 linux-sunxi
          1 mptcp
          1 regressions
          1 ksummit
          1 b43-dev
          1 historical-speck
          1 linux-nfc
          1 linux-bcachefs
          1 ath9k-devel
          1 ntfs3
          1 llvm
          1 fio
          1 iwd
          1 ell
          1 ofono
          1 ltp
          1 yocto
          1 yocto-toaster
          1 yocto-meta-arm
          1 yocto-docs
          1 bitbake-devel
          1 yocto-meta-virtualization
          1 chrome-platform
          1 ntb
          1 yocto-meta-ti
          1 yocto-meta-arago
          1 outreachy
          1 xenomai
          1 damon
          1 asahi
          1 openrisc
          1 intel-wired-lan
          1 kexec
          1 loongarch
          1 imx
          1 ath12k
          1 b4-sent
          1 linux-trace-kernel
          1 oe-linux-nfc
          1 oe-kbuild-all
          1 oe-chipsec
          1 intel-xe
          1 virtio-comment
          1 v9fs
          1 poky
          1 linux-ia64
          1 cluster-devel
          1 grub-devel
          1 kbd
          1 autofs
          1 cpufreq
          1 dccp
          1 cgroups
          1 devicetree-spec
          1 initramfs
          1 hail-devel
          1 kvm-ia64
          1 linux-8086
          1 kernel-testers
          1 linux-alpha
          1 linux-btrace
          1 linux-embedded
          1 linux-hams
          1 linux-hexagon
          1 linux-hotplug
          1 linux-laptop
          1 linux-sound
          1 trinity
          1 reiserfs-devel
          1 linux-metag
          1 linux-x25
          1 linux-nilfs
          1 netfilter
          1 linux-oxnas
          1 u-boot-amlogic
          1 lm-sensors
          1 lvm-devel
          1 acpica-devel
          1 perfbook
          1 smatch
          1 fuego
          1 wireless-regdb
          1 igt-dev
          1 powertop

git clone https://yhbt.net/lore/pub/scm/linux/kernel/git/sashal/kvmtool.git