Skip to contentSkip to conversation

kvm-77 release

ANNOUNCE Avi Kivity 5 participants 8 messages Oct 12, 2008 – Oct 18, 2008 KVM

lore
Share & tools
lore

Avi Kivity

author
#0 lore raw

This release fixes the -std-vga regression which bothered those of us who have large or widescreen monitors (note the option is now named '-vga std' due to upstream qemu changes). Other significant changes include better disk performance if you have a fast host storage subsystem.

Changes from kvm-76:
- merge bochs-bios-cvs
- merge qemu-svn
- more -cpu options
- faster disk emulation (esp. with scsi/virtio)
- improved NMI support (Jan Kiszka)
- improve >4GB memory support (Alex Williamson)
- memory alias cleanups (Glauber Costa)
- fix kvmtrace segfault (Ryota OZAKI)
- make external module compile on split source/object configs (Alexander Graf)
- allows compiling on opensuse
- fix -std-vga regression
- fix migration failure at end of migration protocol
- map mmio pages for device assignment (Weidong Han)
- silence lapic kernel messages (Jan Kiszka)
- fix vcpu reset (Gleb Natapov)
- fix missed invlpg on EPT-enabled machines with EPT disabled (Marcelo Tosatti)
- device assignment on ia64 (Xiantao Zhang)
- memory type support on EPT (Sheng Yang)

Notes:
If you use the modules bundled with kvm-77, you can use any version
of Linux from 2.6.16 upwards. You may also use kvm-77 userspace with the kvm modules provided by Linux 2.6.25 or above. Some features may only be available in newer releases.

http://kvm.qumranet.com

Signature · 2 lines
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
#1 lore raw

sön 2008-10-12 klockan 14:02 +0200 skrev Avi Kivity:

Quoted 28 lines

This release fixes the -std-vga regression which bothered those of us who have large or widescreen monitors (note the option is now named '-vga std' due to upstream qemu changes). Other significant changes include better disk performance if you have a fast host storage subsystem.

Changes from kvm-76:
- merge bochs-bios-cvs
- merge qemu-svn
- more -cpu options
- faster disk emulation (esp. with scsi/virtio)
- improved NMI support (Jan Kiszka)
- improve >4GB memory support (Alex Williamson)
- memory alias cleanups (Glauber Costa)
- fix kvmtrace segfault (Ryota OZAKI)
- make external module compile on split source/object configs (Alexander Graf)
- allows compiling on opensuse
- fix -std-vga regression
- fix migration failure at end of migration protocol
- map mmio pages for device assignment (Weidong Han)
- silence lapic kernel messages (Jan Kiszka)
- fix vcpu reset (Gleb Natapov)
- fix missed invlpg on EPT-enabled machines with EPT disabled (Marcelo Tosatti)
- device assignment on ia64 (Xiantao Zhang)
- memory type support on EPT (Sheng Yang)

Quoted 9 lines

Notes:
If you use the modules bundled with kvm-77, you can use any version
of Linux from 2.6.16 upwards. You may also use kvm-77 userspace with the kvm modules provided by Linux 2.6.25 or above. Some features may only be available in newer releases.

http://kvm.qumranet.com

We have encountered a regression with kvm-77 here, we previously ran kvm-74 so I am not yet sure if this regression was introduced in 77 or 76,75 (I will try and test these versions asap).

Ubuntu-8.10-server-amd64 cannot find the drive (tested with ide, scsi and virtio). Log on the guest screen:

*** glibc detected *** modprobe: realloc(): invalid next size: 0x0000000000f95cb0 *** Aborted
*** glibc detected *** modprobe: realloc(): invalid next size: 0x0000000001247cb0 *** Aborted
*** glibc detected *** modprobe: realloc(): invalid next size: 0x00000000025a8cb0 *** Aborted
*** glibc detected *** modprobe: realloc(): invalid next size: 0x0000000001529cb0 *** Aborted
*** glibc detected *** modprobe: realloc(): invalid next size: 0x0000000001276cb0 *** Aborted
*** glibc detected *** modprobe: realloc(): invalid next size: 0x0000000001bf1cb0 *** Aborted
udevd[915]: add_to_rules: invalid rule '/etc/udev/rules.d/05-options.rules:1' udevd[915]: add_to_rules: invalid rule '/etc/udev/rules.d/05-options.rules:2' udevd[915]: add_to_rules: invalid rule '/etc/udev/rules.d/05-options.rules:3' udevd[915]: add_to_rules: invalid rule '/etc/udev/rules.d/05-options.rules:4'

and on and on, ending with the system complaning that it cannot find the drive with the old UUID value. Booting the very same image on kvm-74 produced none of these errors what so ever.

If giving the guest more than 2GiB of memory there is a stream of "segmentation fault" lines, probably from modprobe

Ubuntu-8.04 boots just fine under kvm-77 so it feels like a mismatch with the guest 2.6.27 kernel. Tested both 2.27-4 and 2.27-7 to no avail.

The host is Debian Lenny with a 2.6.26-1-amd64 kernel and a Q6600 with 8GB RAM

/Henrik Holst
Witsbits AB

#2 lore raw

mån 2008-10-13 klockan 11:33 +0200 skrev Henrik Holst:

Quoted 4 lines

"segmentation fault" lines, probably from modprobe

Ubuntu-8.04 boots just fine under kvm-77 so it feels like a mismatch with the guest 2.6.27 kernel. Tested both 2.27-4 and 2.27-7 to no avail.

Encountered the very same problem on a Debian Lenny guest (2.6.26 kernel) but not on a Debian Sid or Ubuntu 8.04 (2.6.24) so much for the 2.6.27 idea...

#3 lore raw

mån 2008-10-13 klockan 11:44 +0200 skrev Henrik Holst:

Quoted 10 lines

mån 2008-10-13 klockan 11:33 +0200 skrev Henrik Holst:

Quoted 4 lines

"segmentation fault" lines, probably from modprobe

Ubuntu-8.04 boots just fine under kvm-77 so it feels like a mismatch with the guest 2.6.27 kernel. Tested both 2.27-4 and 2.27-7 to no avail.

Encountered the very same problem on a Debian Lenny guest (2.6.26 kernel) but not on a Debian Sid or Ubuntu 8.04 (2.6.24) so much for the 2.6.27 idea...

And if I had bothered to look more deeply into the mailinglist archive I would have found this patch from Marcelo that cures this very problem:

KVM: MMU: sync root on paravirt TLB flus

So now everything works flawlessly on kvm-77, many thanks for the new release!

/Henrik Holst
Witsbits AB

#4 lore raw
In reply to Avi Kivity
Quoted 4 lines · Avi Kivity <avi <at> redhat.com> writes:

This release fixes the -std-vga regression which bothered those of us who have large or widescreen monitors (note the option is now named '-vga std' due to upstream qemu changes). Other significant changes include better disk performance if you have a fast host storage subsystem.

kvm-75 worked well. Now both 76 and 77 fail to boot. 76 gave no hint and a Google check showed it to be blamed on CONFIG_KVM_GUEST option in the linux kernel .config.

Host is Fedora 8 with kernel-2.6.26.5-28.fc8.x86_64
Guest is Fedora 9 with kernel-2.6.26.5-45.fc9.i686
Hardware is Asus P5B Deluxe, Core 2 E6600 with
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

Trying to boot with kvm-77 gave a debugging hint, so here is what I get. Does not look informative to me though. This was typed from screen (Can copy paste work?):

Startup script:
modprobe kvm-intel; sleep 1 /usr/local/kvm/bin/qemu-system-x86_64 vdisk_fedora9.img -m 2048 -no-quit &

        ====================

[First boot:]

Booting 'Fedora (2.6.26.5-45.fc9.i686)'
:
Booting the kernel.
..MP-BIOS bug: 8254 timer not connected to IO-APIC

Kernel panic - not syncing: IO-APIC + timer doesn't work!  Boot with
  apic=debug and send a report.  Then try booting with the 'noapic'
  option
        ====================

[Second boot (apic=debug):]

Booting 'Fedora (2.6.26.5-45.fc9.i686)'
:
Booting the kernel.
pci 0000:00:01.0: PIIX3: Enabling Passive Release
Red Hat nash version 6.0.52 starting
Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2
2 logical volume(s) in volume group "VolGroup00" now active
(hung here at 99%)

        ====================

[Third boot (noapic):]

Booting 'Fedora (2.6.26.5-45.fc9.i686)'
:
Booting the kernel.

(identical to second boot and
hangs as in 2nd case with 100% in "CPU qemu-system-x86")

        ====================

Hope this helps.

Don

#5 lore raw

APIC problems with kvm-77 (was Re: [ANNOUNCE] kvm-77 release)

Quoted 11 lines · Don Parsons

Trying to boot with kvm-77 gave a debugging hint, so here is what I get. Does not look informative to me though. This was typed from screen (Can copy paste work?):

Startup script:
modprobe kvm-intel; sleep 1 /usr/local/kvm/bin/qemu-system-x86_64 vdisk_fedora9.img -m 2048 -no-quit &

        ====================

[First boot:]

Quoted 8 lines

Booting 'Fedora (2.6.26.5-45.fc9.i686)'
:
Booting the kernel.
..MP-BIOS bug: 8254 timer not connected to IO-APIC

Kernel panic - not syncing: IO-APIC + timer doesn't work!  Boot with
  apic=debug and send a report.  Then try booting with the 'noapic'
  option
        ====================

this points to BOCHS BIOS bug, as a workaround you should be able to use the bios.bin file from the old kvm-75 version instead.

Carlo

#6 lore raw

Re: APIC problems with kvm-77 (was Re: [ANNOUNCE] kvm-77 release)

Quoted 21 lines · Carlo Marcelo Arenas Belon
Quoted 11 lines · Don Parsons

Trying to boot with kvm-77 gave a debugging hint, so here is what I get. Does not look informative to me though. This was typed from screen (Can copy paste work?):

Startup script:
modprobe kvm-intel; sleep 1 /usr/local/kvm/bin/qemu-system-x86_64 vdisk_fedora9.img -m 2048 -no-quit &

        ====================

[First boot:]

Quoted 8 lines

Booting 'Fedora (2.6.26.5-45.fc9.i686)'
:
Booting the kernel.
..MP-BIOS bug: 8254 timer not connected to IO-APIC

Kernel panic - not syncing: IO-APIC + timer doesn't work!  Boot with
  apic=debug and send a report.  Then try booting with the 'noapic'
  option
        ====================
Quoted 2 lines

this points to BOCHS BIOS bug, as a workaround you should be able to use the bios.bin file from the old kvm-75 version instead.

Hi Carlo

Is that a BIOS bug filled/raised for this? It seems like IOAPIC didn't receive pit interrupt in time to me.

Don, so does it happen everytime? And please show your computer environment as well.

--
regards
Yang, Sheng

Quoted 6 lines

Carlo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#7 lore raw

Re: APIC problems with kvm-77 (was Re: [ANNOUNCE] kvm-77 release) SOLVED

Quoted 22 lines · Sheng Yang
Quoted 21 lines · Carlo Marcelo Arenas Belon
Quoted 19 lines · Don Parsons

Trying to boot with kvm-77 gave a debugging hint, so here is what I get. Does not look informative to me though. This was typed from screen (Can copy paste work?):

Startup script:
modprobe kvm-intel; sleep 1 /usr/local/kvm/bin/qemu-system-x86_64 vdisk_fedora9.img -m 2048 -no-quit &

        ====================

[First boot:]

Booting 'Fedora (2.6.26.5-45.fc9.i686)'
:
Booting the kernel.
..MP-BIOS bug: 8254 timer not connected to IO-APIC

Kernel panic - not syncing: IO-APIC + timer doesn't work!  Boot with
  apic=debug and send a report.  Then try booting with the 'noapic'
  option
        ====================
Quoted 2 lines
Quoted 2 lines

this points to BOCHS BIOS bug, as a workaround you should be able to use the bios.bin file from the old kvm-75 version instead.

I tried using the bios.bin from kvm-75 but it still fails. Not
sure if extboot.bin might need matching bios.bin, so I copied it over too. But still fails. I just checked, extboot.bin's are identical so that was a no-op.

As another check I went back to a complete kvm-75 replacement and found it now no longer works. One or two weeks ago it did.

I also see that I only have
vmlinuz-2.6.26.3-14.fc8 vmlinuz-2.6.26.5-28.fc8 both with CONFIG_KVM_GUEST=y
and no vmlinuz-2.6.25

Does kvm-77 still have the CONFIG_KVM_GUEST=y problem? I suppose it does, since changelog does not mention it.

I am now very confused. It might be that I only verified that kvm-76 worked with kernel-2.6.25.14-69.fc8.x86_64 (which I no longer have).

I thought I verified kvm-75 with vmlinuz-2.6.26.5-28.fc8.x86_64 but now I am no sure. (My post got stuck waiting for Gmane autoauthorizer in my ISP's spam filter until I found it today).

Quoted 7 lines

Hi Carlo

Is that a BIOS bug filled/raised for this? It seems like IOAPIC didn't receive pit interrupt in time to me.

Don, so does it happen everytime? And please show your computer environment as well.

No, the boots are not consistent. Since it has failed to boot, it has always failed to boot. The text printed to screen it not always the same. Last Sunday when I originally wrote first email, I tried more boots and noticed one out of 4 had slightly different output.

Today one out of several boots (with kvm-75 bios) showed it getting past above hangs, and trying to access disk but here it failed saying non-existent file(s), so it could not proceed.

Also the "MP-BIOS bug: 8254 timer not connected to IO-APIC" only occurred that one time out of about 12 attempted boots.

I tried this patch from another thread
http://article.gmane.org/gmane.comp.emulators.kvm.devel/23044

which for 2.6.26.6 becomes

x86/kvm/mmu.c 2008-10-17 15:52:42.000000000 -0400 renamed from x86/kvm/mmu.c~ 2008-10-17 15:51:19.000000000 -0400 +0 -0
@@ -2106,6 +2106,7 @@

static int kvm_pv_mmu_flush_tlb(struct kvm_vcpu *vcpu)

{
        kvm_x86_ops->tlb_flush(vcpu);
+       set_bit(KVM_REQ_MMU_SYNC, &vcpu->requests);
        return 1;
}

but it fails to compile with:
CC [M] arch/x86/kvm/mmu.o
arch/x86/kvm/mmu.c: In function ‘kvm_pv_mmu_flush_tlb’:
arch/x86/kvm/mmu.c:2109: error: ‘KVM_REQ_MMU_SYNC’ undeclared (first use in this function)
arch/x86/kvm/mmu.c:2109: error: (Each undeclared identifier is reported only once
arch/x86/kvm/mmu.c:2109: error: for each function it appears in.) make[1]: *** [arch/x86/kvm/mmu.o] Error 1
make: *** [arch/x86/kvm] Error 2

Apparently a 2.6.27 only patch. Oops, no it is not. I figured out
that the patch "path" actually refers to ./arch/x86/mmu.c
in a kvm-77 tree.

With this patch above applied to kvm-77 release results in my Fedora 8 guest booting and running properly. i.e., the patch:

x86/mmu.c 2008-10-17 17:47:46.000000000 -0400 renamed from x86/mmu.c~ 2008-10-12 07:53:12.000000000 -0400 +1 -0
@@ -2747,6 +2747,7 @@
 static int kvm_pv_mmu_flush_tlb(struct kvm_vcpu *vcpu)
 {
        kvm_x86_ops->tlb_flush(vcpu);
+       set_bit(KVM_REQ_MMU_SYNC, &vcpu->requests);
        return 1;
 }
 

So it appears that the SOLUTION for 2.6.26 or 2.6.27 is to apply above patch or wait for kvm-78.tgz

Thanks to everyone who tried to help me.

Don