Yesterday, KVM-76 was released featuring another qemu merge and performance improvements for hosts without NPT or EPT. Only kernel support for device assigment has been added in preparation for pci passthrough but no userspace component has been added yet. The qemu merge brings with it improved support for scsi and usb support. You can now use a “real” scsi tape with qemu using the following syntax
-drive /dev/sgX,if=scsi
This option allow you to decode correctly the transfer length when the type of device is a tape. However, there are still issues when the application reading the tape goes beyond the end of the stream.

The usb support now addes for removing devices by host address and improved auto filter syntax. These features will be useful for libvirt since there’s no easy way to to find the guest usb address of a device. Below is an excerpt from the patch comments explaining the new features.
usb: Support for removing device by host addr, improved auto filter syntax (Max Krasnyansky)
This patch adds support for removing USB devices by host address which is usefull for things like libvirtd because there is no easy way to find guest USB address of the host device. In other words you can now do:
usb_add host:3.5
...
usb_del host:3.5
Before the patch 'usb_del' did not support 'host:' notation.
----
Syntax for specifying auto connect filters has been improved.
Old syntax was
host:bus.dev
host:pid:vid
New syntax is
host:auto:bus.dev[:pid:vid]
In both the cases any attribute can be set to "*".
New syntax is more flexible and lets you do things like
host:3.*:5533:* /* grab any device on bus 3 with vendor id 5533 */
It's now possible to remove auto filters. For example:
usb_del host:auto:3.*:5533:*
Active filters are printed after all host devices in 'info usb' output. Which now looks like this:
Device 1.1, speed 480 Mb/s
Hub: USB device 1d6b:0002, EHCI Host Controller
Device 1.4, speed 480 Mb/s
Class 00: USB device 1058:0704, External HDD
Auto filters:
Device 3.* ID *:*
There does seem to be one regression with the –std-vga option. You get the following error repeated in your console when using the option and your windows shows up black after initial boot screen.
kvm: get_dirty_pages returned -2
If you use kvm with full screen mode, this will affect you as only -std-vga can support the resolutions to do full screen with native resolution. In this case you'll either have to go back to kvm-75 or use rdp if full screen is important to you. I use a windows xp kvm guest for work and decided to revert to kvm-75 because of this issue. I suspect that a patch might be released for this before the next release.
The official changelog from the mailing list is as follows:
- merge qemu-svn
- improved usb support
- vnc improvements
- pass uuid to guest
- scsi improvements
- change virtio-blk to guest-endian configuration (Liu Yu)
- add 'call near absolute' to x86 emulator and testsuite (Mohammed Gamal)
- drop support for kernel memory allocation (Glauber Costa)
- avoid fiddling with ISA mappings (Jan Kiszka)
- improves debugging support
- fix external module build on 2.6.22 hosts
- make kernel and userspace memory slot count agree (Sheng Yang)
- add 'cmp' to x86 emulator testsuite (Mohammed Gamal)
- allow 'make sync' from toplevel directory
- external module compatibility for get_user_pages_fast() api (Jan Kiszka)
- correct mtrr setup with >= 4GB RAM (Alex Williamson)
- fix ia64 boot with acpi enabled (Xiantao Zhang)
- initialize userspace kvm context (Uri Lublin)
- fix ia64 with >= 3GB RAM (Xiantao Zhang)
- avoid allocating translated code buffer when using kvm
- simplify memory registration (Glauber Costa)
- support kvmtrace with external module (Eduardo Habkost)
- ia64 init code simplification (Jes Sorensen)
- ia64 external module compatibility with older kernels (Xiantao Zhang)
- fix live migration due to slot number getting lost (Uri Lublin)
- prevent live migration if a device is missing on the target (Uri Lublin)
- fix include-compat/asm symlinks (Uri Lublin)
- do not execute halted vcpus (Marcelo Tosatti)
- fix global tlb flushes with NPT (Joerg Roedel)
- fix preemption error on real mode emulation
- fix page aging with EPT (Sheng Yang)
- simplify locking around ppc shadow tlb page access (Hollis Blanchard)
- cleanup redundant vmcs read (Jan Kiszka)
- fix 64-bit jmp instruction emulation
- move vmx msr definitions to common code
- better support for instructions that reference the accumulator
(Guillaume Thouvenin)
- add cmp acc, imm instruction emulation (Guillaume Thouvenin)
- kernel support for device assignment
(Allen Kay, Amit Shah, Weidong Han, Ben-Ami Yassour)
- switch to using get_user_pages_fast() (Marcelo Tosatti)
- nice speedup on 2.6.27+ hosts
- build fix for ia64 (Jes Sorensen)
- code cleanup (Harvey Harrison)
- avoid entering guest after a startup IPI (Gleb Natapov)
- simplify 'push reg' instruction emulation (Guillaume Thouvenin)
- fix error handling on vcpu creation failure (Glauber Costa)
- support Tukwilla ia64 processors (Xiantao Zhang)
- fix tlb flush when converting a large page to small pages (Marcelo Tosatti)
- out-of-sync shadow (Marcelo Tosatti)
- reduce inter-processor interrupt generation when using the PIC
(Marcelo Tosatti)
KVM-76 can be downloaded here.
Comments
Post new comment