qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1433081] [NEW] qcow2 causing kvm hardware error 0xffff


From: v2min
Subject: [Qemu-devel] [Bug 1433081] [NEW] qcow2 causing kvm hardware error 0xffffffff with vfio-pci VGA passthrough
Date: Tue, 17 Mar 2015 13:25:39 -0000

Public bug reported:

Hi,

Using qcow2 format for an ide-hd device is causing "KVM: entry failed,
hardware error 0xffffffff". When this error occurs, qemu-monitor shows
the guest has stopped. The error did not occur immediately, but at the
point that the boot, running from an attached Ubuntu 14.04.1 iso,
switched to graphical mode after text-mode startup.

The root-cause was verified by switching only the ide-hd disk to raw
format (no OS installed), which allowed the guest to boot normally from
the iso. The error and fix are reliably repeatable.

The interesting part is that the ide-hd (with no OS installed) with
qcow2 format was not actually being used for boot - the boot was from a
Ubuntu iso, with the intention of installing an ubuntu guest on the
attached ide-hd device. The guest was using a vfio-pci passthrough GPU
connected to an external UHD monitor.

The commands used to create the disk images:
qemu-img create -f qcow2 
/media/v2min/Data/VMachines-KVM/KVM-NVidia/kvm-nvidia.img 20G
qemu-img create -f raw 
/media/v2min/Data/VMachines-KVM/KVM-NVidia/kvm-nvidia.img 20G

The script vm1 was used to launch the guests with "sudo ./vm1", with the
only difference between launches being the ide-hd format (raw vs qcow2).
With qcow2 this resulted in the terminal below. The corresponding dmesg
snippets are attached. There were two dmesg entries each time the error
occurred.

The same problem occurred when using the latest packages from the
ppa:jacob/virtualisation. However, when using jacob's packages, it was
not verified that raw format resolves the error (I am running this on my
primary system and purged jacob's ppa when this problem first occured).

A fix would be helpful as the qcow2 format allows snapshots, while raw
does not.

----------------------------------System 
info-----------------------------------------------------------
Linux v2min 3.18.9-031809-generic #201503080036 SMP Sun Mar 8 00:37:46 UTC 2015 
x86_64 x86_64 x86_64 GNU/Linux

/var/log/libvirt/libvirt.d is 0 bytes

Libvirt versions are these:

address@hidden:~/QCOW2-Error$ dpkg -l | grep libvirt
ii  libvirt-bin                         1.2.2-0ubuntu13.1.9        amd64        
programs for the libvirt library
rc  libvirt-glib-1.0-0                  0.1.6-1ubuntu2             amd64        
libvirt glib mainloop integration
ii  libvirt0                            1.2.2-0ubuntu13.1.9        amd64        
library for interfacing with different virtualization systems
ii  python-libvirt                      1.2.2-0ubuntu2             amd64        
libvirt Python bindings


address@hidden:~/QCOW2-Error$ dpkg -l | grep qemu
ii  ipxe-qemu                           1.0.0+git-20131111.c3d1e78-2ubuntu1.1   
            all          PXE boot firmware - ROM images for qemu
ii  qemu-keymaps                        2.0.0+dfsg-2ubuntu1.10                  
            all          QEMU keyboard maps
ii  qemu-kvm                            2.0.0+dfsg-2ubuntu1.10                  
            amd64        QEMU Full virtualization on x86 hardware (transitional 
package)
ii  qemu-system-common                  2.0.0+dfsg-2ubuntu1.10                  
            amd64        QEMU full system emulation binaries (common files)
ii  qemu-system-x86                     2.0.0+dfsg-2ubuntu1.10                  
            amd64        QEMU full system emulation binaries (x86)
ii  qemu-utils                          2.0.0+dfsg-2ubuntu1.10                  
            amd64        QEMU utilities

Passthrough GPU: Zotac GT 730 2GB.
Processor: AMD A10-5800K APU
Primary GPU: Radeon R9-290X


------------------------------------------vm1 
script-----------------------------------------------------
#!/bin/bash

configfile=/etc/vfio-pci1.cfg

vfiobind() {
    dev="$1"
        vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
        device=$(cat /sys/bus/pci/devices/$dev/device)
        if [ -e /sys/bus/pci/devices/$dev/driver ]; then
                echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
        fi
        echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
   
}

modprobe vfio-pci

cat $configfile | while read line;do
    echo $line | grep ^# >/dev/null 2>&1 && continue
        vfiobind $line
done

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 4096 -cpu host \
-smp 2,sockets=1,cores=2,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-usb -device usb-host,hostbus=5,hostaddr=8 \
-device 
ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=04:00.1,bus=root.1,addr=00.1 \
-drive 
file=/media/v2min/Data/VMachines-KVM/KVM-NVidia/kvm-nvidia.img,id=disk,format=qcow2
 -device ide-hd,bus=ide.0,drive=disk \
-drive 
file=/media/v2min/Data/Shr/Software/OSes/ubuntu-14.04.1-desktop-amd64.iso,id=isocd
 -device ide-cd,bus=ide.1,drive=isocd \
-boot menu=on \
-boot d

exit 0

------------------------------------------------------------gnome-terminal-----------------------------
address@hidden:~$ sudo ./vm1
[sudo] password for v2min: 
KVM: entry failed, hardware error 0xffffffff
RAX=0000000000000005 RBX=0000000000000000 RCX=0000000000000000 
RDX=ffffffff81eaf3e8
RSI=0000000000000000 RDI=0000000000000000 RBP=ffff880179553930 
RSP=ffff880179553910
R8 =ffffffff81eaf3e0 R9 =000000000000ffff R10=0000000000000206 
R11=000000000000000f
R12=ffff880179597b1c R13=0000000000000028 R14=0000000000000000 
R15=ffff880179597800
RIP=ffffffff8104ed58 RFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 ffffffff 00800000
CS =0010 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
SS =0018 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
DS =0000 0000000000000000 ffffffff 00800000
FS =0000 00007f51d8a96880 ffffffff 00800000
GS =0000 ffff88017fd00000 ffffffff 00800000
LDT=0000 0000000000000000 0000ffff 00000000
TR =0040 ffff88017fd11900 00002087 00008b00 DPL=0 TSS64-busy
GDT=     ffff88017fd0a000 0000007f
IDT=     ffffffffff576000 00000fff
CR0=8005003b CR2=00007f51d8a99000 CR3=00000001740be000 CR4=000406e0
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 
DR3=0000000000000000 
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000d01
Code=00 01 48 c7 c0 6a b0 00 00 31 db 0f b7 0c 01 b8 05 00 00 00 <0f> 01 c1 0f 
1f 44 00 00 5b 41 5c 41 5d 41 5e 5d c3 89 f0 31 c9 f0 0f b0 0d 9b 06 e6 00 40
address@hidden:~$ sudo ./vm1
KVM: entry failed, hardware error 0xffffffff
RAX=0000000000000005 RBX=0000000000000000 RCX=0000000000000000 
RDX=ffffffff81eaf3e8
RSI=0000000000000000 RDI=0000000000000000 RBP=ffff88017957f9e8 
RSP=ffff88017957f9c8
R8 =ffffffff81eaf3e0 R9 =0000000000000000 R10=ffff88017b001d00 
R11=0000000000000246
R12=ffff880179527ac0 R13=000000000000003e R14=0000000000000000 
R15=0000000000000001
RIP=ffffffff8104ed58 RFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 ffffffff 00800000
CS =0010 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
SS =0018 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
DS =0000 0000000000000000 ffffffff 00800000
FS =0000 00007f49153a6740 ffffffff 00800000
GS =0000 ffff88017fd00000 ffffffff 00800000
LDT=0000 0000000000000000 0000ffff 00000000
TR =0040 ffff88017fd11900 00002087 00008b00 DPL=0 TSS64-busy
GDT=     ffff88017fd0a000 0000007f
IDT=     ffffffffff576000 00000fff
CR0=8005003b CR2=00007f4914e82170 CR3=0000000001c0e000 CR4=000406e0
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 
DR3=0000000000000000 
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000d01
Code=00 01 48 c7 c0 6a b0 00 00 31 db 0f b7 0c 01 b8 05 00 00 00 <0f> 01 c1 0f 
1f 44 00 00 5b 41 5c 41 5d 41 5e 5d c3 89 f0 31 c9 f0 0f b0 0d 9b 06 e6 00 40

** Affects: qemu
     Importance: Undecided
         Status: New


** Tags: gpu hardware kvm passthrough vfio-pci

** Attachment added: "qcow2_dmesg_report.txt"
   
https://bugs.launchpad.net/bugs/1433081/+attachment/4347843/+files/qcow2_dmesg_report.txt

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1433081

Title:
  qcow2 causing kvm hardware error 0xffffffff with vfio-pci VGA
  passthrough

Status in QEMU:
  New

Bug description:
  Hi,

  Using qcow2 format for an ide-hd device is causing "KVM: entry failed,
  hardware error 0xffffffff". When this error occurs, qemu-monitor shows
  the guest has stopped. The error did not occur immediately, but at the
  point that the boot, running from an attached Ubuntu 14.04.1 iso,
  switched to graphical mode after text-mode startup.

  The root-cause was verified by switching only the ide-hd disk to raw
  format (no OS installed), which allowed the guest to boot normally
  from the iso. The error and fix are reliably repeatable.

  The interesting part is that the ide-hd (with no OS installed) with
  qcow2 format was not actually being used for boot - the boot was from
  a Ubuntu iso, with the intention of installing an ubuntu guest on the
  attached ide-hd device. The guest was using a vfio-pci passthrough GPU
  connected to an external UHD monitor.

  The commands used to create the disk images:
  qemu-img create -f qcow2 
/media/v2min/Data/VMachines-KVM/KVM-NVidia/kvm-nvidia.img 20G
  qemu-img create -f raw 
/media/v2min/Data/VMachines-KVM/KVM-NVidia/kvm-nvidia.img 20G

  The script vm1 was used to launch the guests with "sudo ./vm1", with
  the only difference between launches being the ide-hd format (raw vs
  qcow2). With qcow2 this resulted in the terminal below. The
  corresponding dmesg snippets are attached. There were two dmesg
  entries each time the error occurred.

  The same problem occurred when using the latest packages from the
  ppa:jacob/virtualisation. However, when using jacob's packages, it was
  not verified that raw format resolves the error (I am running this on
  my primary system and purged jacob's ppa when this problem first
  occured).

  A fix would be helpful as the qcow2 format allows snapshots, while raw
  does not.

  ----------------------------------System 
info-----------------------------------------------------------
  Linux v2min 3.18.9-031809-generic #201503080036 SMP Sun Mar 8 00:37:46 UTC 
2015 x86_64 x86_64 x86_64 GNU/Linux

  /var/log/libvirt/libvirt.d is 0 bytes

  Libvirt versions are these:

  address@hidden:~/QCOW2-Error$ dpkg -l | grep libvirt
  ii  libvirt-bin                         1.2.2-0ubuntu13.1.9        amd64      
  programs for the libvirt library
  rc  libvirt-glib-1.0-0                  0.1.6-1ubuntu2             amd64      
  libvirt glib mainloop integration
  ii  libvirt0                            1.2.2-0ubuntu13.1.9        amd64      
  library for interfacing with different virtualization systems
  ii  python-libvirt                      1.2.2-0ubuntu2             amd64      
  libvirt Python bindings

  
  address@hidden:~/QCOW2-Error$ dpkg -l | grep qemu
  ii  ipxe-qemu                           1.0.0+git-20131111.c3d1e78-2ubuntu1.1 
              all          PXE boot firmware - ROM images for qemu
  ii  qemu-keymaps                        2.0.0+dfsg-2ubuntu1.10                
              all          QEMU keyboard maps
  ii  qemu-kvm                            2.0.0+dfsg-2ubuntu1.10                
              amd64        QEMU Full virtualization on x86 hardware 
(transitional package)
  ii  qemu-system-common                  2.0.0+dfsg-2ubuntu1.10                
              amd64        QEMU full system emulation binaries (common files)
  ii  qemu-system-x86                     2.0.0+dfsg-2ubuntu1.10                
              amd64        QEMU full system emulation binaries (x86)
  ii  qemu-utils                          2.0.0+dfsg-2ubuntu1.10                
              amd64        QEMU utilities

  Passthrough GPU: Zotac GT 730 2GB.
  Processor: AMD A10-5800K APU
  Primary GPU: Radeon R9-290X

  
  ------------------------------------------vm1 
script-----------------------------------------------------
  #!/bin/bash

  configfile=/etc/vfio-pci1.cfg

  vfiobind() {
      dev="$1"
          vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
          device=$(cat /sys/bus/pci/devices/$dev/device)
          if [ -e /sys/bus/pci/devices/$dev/driver ]; then
                  echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
          fi
          echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
     
  }

  modprobe vfio-pci

  cat $configfile | while read line;do
      echo $line | grep ^# >/dev/null 2>&1 && continue
          vfiobind $line
  done

  sudo qemu-system-x86_64 -enable-kvm -M q35 -m 4096 -cpu host \
  -smp 2,sockets=1,cores=2,threads=1 \
  -bios /usr/share/qemu/bios.bin -vga none \
  -usb -device usb-host,hostbus=5,hostaddr=8 \
  -device 
ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
  -device vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
  -device vfio-pci,host=04:00.1,bus=root.1,addr=00.1 \
  -drive 
file=/media/v2min/Data/VMachines-KVM/KVM-NVidia/kvm-nvidia.img,id=disk,format=qcow2
 -device ide-hd,bus=ide.0,drive=disk \
  -drive 
file=/media/v2min/Data/Shr/Software/OSes/ubuntu-14.04.1-desktop-amd64.iso,id=isocd
 -device ide-cd,bus=ide.1,drive=isocd \
  -boot menu=on \
  -boot d

  exit 0

  
------------------------------------------------------------gnome-terminal-----------------------------
  address@hidden:~$ sudo ./vm1
  [sudo] password for v2min: 
  KVM: entry failed, hardware error 0xffffffff
  RAX=0000000000000005 RBX=0000000000000000 RCX=0000000000000000 
RDX=ffffffff81eaf3e8
  RSI=0000000000000000 RDI=0000000000000000 RBP=ffff880179553930 
RSP=ffff880179553910
  R8 =ffffffff81eaf3e0 R9 =000000000000ffff R10=0000000000000206 
R11=000000000000000f
  R12=ffff880179597b1c R13=0000000000000028 R14=0000000000000000 
R15=ffff880179597800
  RIP=ffffffff8104ed58 RFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
  ES =0000 0000000000000000 ffffffff 00800000
  CS =0010 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
  SS =0018 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
  DS =0000 0000000000000000 ffffffff 00800000
  FS =0000 00007f51d8a96880 ffffffff 00800000
  GS =0000 ffff88017fd00000 ffffffff 00800000
  LDT=0000 0000000000000000 0000ffff 00000000
  TR =0040 ffff88017fd11900 00002087 00008b00 DPL=0 TSS64-busy
  GDT=     ffff88017fd0a000 0000007f
  IDT=     ffffffffff576000 00000fff
  CR0=8005003b CR2=00007f51d8a99000 CR3=00000001740be000 CR4=000406e0
  DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 
DR3=0000000000000000 
  DR6=00000000ffff0ff0 DR7=0000000000000400
  EFER=0000000000000d01
  Code=00 01 48 c7 c0 6a b0 00 00 31 db 0f b7 0c 01 b8 05 00 00 00 <0f> 01 c1 
0f 1f 44 00 00 5b 41 5c 41 5d 41 5e 5d c3 89 f0 31 c9 f0 0f b0 0d 9b 06 e6 00 40
  address@hidden:~$ sudo ./vm1
  KVM: entry failed, hardware error 0xffffffff
  RAX=0000000000000005 RBX=0000000000000000 RCX=0000000000000000 
RDX=ffffffff81eaf3e8
  RSI=0000000000000000 RDI=0000000000000000 RBP=ffff88017957f9e8 
RSP=ffff88017957f9c8
  R8 =ffffffff81eaf3e0 R9 =0000000000000000 R10=ffff88017b001d00 
R11=0000000000000246
  R12=ffff880179527ac0 R13=000000000000003e R14=0000000000000000 
R15=0000000000000001
  RIP=ffffffff8104ed58 RFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
  ES =0000 0000000000000000 ffffffff 00800000
  CS =0010 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
  SS =0018 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
  DS =0000 0000000000000000 ffffffff 00800000
  FS =0000 00007f49153a6740 ffffffff 00800000
  GS =0000 ffff88017fd00000 ffffffff 00800000
  LDT=0000 0000000000000000 0000ffff 00000000
  TR =0040 ffff88017fd11900 00002087 00008b00 DPL=0 TSS64-busy
  GDT=     ffff88017fd0a000 0000007f
  IDT=     ffffffffff576000 00000fff
  CR0=8005003b CR2=00007f4914e82170 CR3=0000000001c0e000 CR4=000406e0
  DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 
DR3=0000000000000000 
  DR6=00000000ffff0ff0 DR7=0000000000000400
  EFER=0000000000000d01
  Code=00 01 48 c7 c0 6a b0 00 00 31 db 0f b7 0c 01 b8 05 00 00 00 <0f> 01 c1 
0f 1f 44 00 00 5b 41 5c 41 5d 41 5e 5d c3 89 f0 31 c9 f0 0f b0 0d 9b 06 e6 00 40

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1433081/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]