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.
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 noI suppose you can expect to see this integrated into gui tools like virt-manager sometime in the future.
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.
Comments
problems with kvm87 on 32bit host but kvm88 seems better :)
Sunday, July 12, 2009 - 10:58 pierro78I 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 :)
Post new comment