KVM - The Linux Kernel-Based Virtual Machine
News, Blogs and Resources on the Linux (KVM) Kernel-Based Virtual Machine

kvm-87 Released

A couple of days ago kvm-87 was released featuring bug fixes, performance improvements, a preview of irqfd and new support for http protocol using curl version 6. The most notable of these from the end user perspective is the new http support. A good use case for this new feature is booting a livecd over http. Also included with this latest version is additional support for port redirection that was described in this earlier post. Let's take a look at some of these new features.


HTTP support over curl

The new http over curl support allows you to access http data directly which allows you, for example, to test an http provided OS image without downloading it. To do this you would start kvm with a command like the following.

qemu-kvm -m 800 -cdrom http://www.sample.com/linux.iso

In order to use this new feature you need to have curl-devel package installed for your linux distribution when building kvm-87. As an example, on a fedora distribution which I do my testing on, you would issue the following command.

yum install curl-devel

Once this is completed, the output of your configure script should have the following output confirming support for curl.

SDL static link   yes
curses support    no
curl support      yes
mingw32 support   no

I suppose you can expect to see this integrated into gui tools like virt-manager sometime in the future.


Additional support for port redirection

In an earlier post, I wrote about adding port redirection on the fly when using userspace networking. kvm-87 adds more support for this feature by way of a few new monitor commands. These additional commands allow you to list and remove current port redirection entries. The first command allows you to list the current port redirection entries. As an example issuing the host_net_redir list from within the monitor will show output similar to the following.


The second command allows you to remove port redirection entries by issuing the host_net_redir remove command. Below is an example of using this command from your monitor interface to remove the forwarding of port 2222 on the host to your guest. In this case your command would be

host_net_redir remove tcp:2222

Below shows a snapshot of the output of this command.




The official announcement lists the following changes from kvm-86.

Changes from kvm-86:
- merge qemu upstream (Mark McLoughlin, me)
 - tune and view live migration progress
 - allow setting qcow2 cluster size
 - http protocol for images
 - qcow2 speedups
 - networking improvements
- fix -no-shatdown command line option (Daniel Gollub)
- fix warnings on 32-bit hosts (Michael S. Tsirkin)
- use a bitmap for tracking used interrupts (Alex Williamson)
- support running without vga option rom (Jan Kiszka)
- make kvmtrace_format mode distro friendly (Eduardo Habkost)
- fix mac annoucement after live migation with virtio net (Gleb Natapov)
- merge cpu state more compatible with upstream qemu (Jan Kiszka)
- improve large page memory layout
- only initialize lapic after the vcpu (Glauber Costa)
- clean up cpuid feature trimming (Glauber Costa)
- avoid harmless msr warnings (Marcelo Tosatti)
- have bios read read MADT to implement acpi _MAT (Gleb Natapov)
- fix tpr patching to get cpu index from Windows PCR (Gleb Natapov)
- separate kvm from pic implementation (Glauber Costa)
- remove cpu index in libkvm/qemu interface (Gleb Natapov)
- halt guest instead of aborting on error
- fix dma on ia64 (Jes Sorensen)
- fix MADT, RSDT creation (Beth Kon)
- start libkvm removal (Glauber Costa)
- make qemu-kvm implementation closer to upstream (Gleb Natapov)
- move acpi processor descriptions to ssdt (Jes Sorensen)
- machine check exception support (Huang Ying)
 - not userspace visible yet
- msr cleanups (Jaswinder Singh Rajput)
- fix cpuid error handling (Mark McLoughlin)
- fix jmp far decoding
- makefile cleanup (Christoph Hellwig)
- drop "interrupt shadow" flag when single stepping (Gleb Natapov)
- allow 4K ptes with PAT bit set
- irqfd (Gregory Haskins)
- allow speaker emulation in usespace (Jan Kiszka)
- fix ia64 timestamp counter (Jes Sorensen)
- fix PAE PDPTR handling
 - fixes Fedora 11 i686 guests
- s390 inter-vcpu communication fixes (Christian Ehrhardt)
- s390 memory slot management improvements (Christian Ehrhardt)
- reduce MSI-X support to 256 vectors (Sheng Yang)
- avoid truncation of sysenter msrs on AMD (Andre Przywara)
- fix performance problem due to irq disabling on device assignment
 (Sheng Yang)
- fix init/exit text annotations (Stephen Rothwell)
- clean up coalesced_mmio destruction (Gregory Haskins)
- cleanup kernel iodevice code (Gregory Haskins)
- register PIT device after initialization (Gregory Haskins)
- avoid redundant tlb flush when using ept
- simplify ptptr and cr3 management on Intel
- cache pdptrs for i686 pae guests
- improve handling of unhandled ept violations
- fix host reboot failures with CONFIG_MAXSMP
- powerpc e500 adjustments (Liu Yu)
- vmx unrestricted guest (Nitin A Kamble)
- clean up lapic interface (Jan Kiszka)
- fix PIC locking (Marcelo Tosatti)
- improve PIC and IOAPIC scaling (Marcelo Tosatti)
- handle machine checks while running in guest mode (Andi Kleen)
- disable large pages on misaligned memory slots
- prevent overflow in largepage calculation
- prevent unnecessarily setting guest pages dirty bits under ept
- decouple vcpu id from apic id (Gleb Natapov)
- improve internal vcpu accessors (Gleb Natapov)
- break infinite emulation failure loops
- fix mmu audit (Marcelo Tosatti)
- generic performance counter msr handling (Andre Przywara, Amit Shah)
- improve ept error reporting (Marcelo Tosatti)
- disable large pages if ept does not support them (Marcelo Tosatti)
- improve simultaneous exception handling (Gleb Natapov)
- optimize APIC interrupt request register searching (Gleb Natapov)
- fix live migration with large pages (Izik Eidus)
- fix racy event propagation in timer (Jan Kiszka)
- remove unnecessary atomic test in timer (Jan Kiszka)
- optimize cr2 reloads on vmx
- drop cr2 save/restore on svm
- fix crash when guest uses vmx instructions
- implement msrs used by Hyper-V as a guest (Alexander Graf)
- implement invlpga instruction (Alexander Graf)
- improve nested interrupt injection (Alexander Graf)
- convert kvmtrace to use the generic kernel infrastructure (Marcelo Tosatti)
- fix concurrent mmu reloads and tlb flushes (Marcelo Tosatti)
- fix ia64 build (Jes Sorensen)

kvm-87 can be downloaded here.

See Also


problems with kvm87 on 32bit host but kvm88 seems better :)

I noticed some of my XP guests didn't start on my 32bit intel kvm87 host. But they seem to work on the just released kvm88 :)

In order to use this new

In order to use this new feature you need to have curl-devel package installed for your linux ged training distribution when building kvm-87. As an example, on a fedora distribution which I do my testing on, you would issue the following command.ged study guide

KVM allows one to run virtual

KVM allows one to run virtual machines using unmodified Linux or Windows disk images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter,Promotional products etc.

Really impressed! Everything

Really impressed! Everything is very open and very clear explanation of issues. It contains truly information. Your website is very useful. Thanks for sharing.yeast infection Looking forward to more! Great visualization and unique informative article indeed.

Post new comment

The content of this field is kept private and will not be shown publicly.
Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.