RE: pci-stub error and MSI-X for KVM guest

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

 



> Subject: Re: pci-stub error and MSI-X for KVM guest
> 
> * Fischer, Anna (anna.fischer@xxxxxx) wrote:
> > > Ouch.  Can you do "debuginfo-install qemu-system-x86" to get the
> debug
> > > packages, then attach gdb to the QEMU process so that when you do
> lspci
> > > -v
> > > in the guest (assuming this is QEMU segfaulting) you'll get a
> backtrace?
> >
> > I don't know how I can tell virt-manager through the GUI to enable
> debug mode, e.g. call virt-manager with '-s'. From the command line I
> can attach gdb like this, but when running virt-manager from the GUI
> then I cannot connect to localhost:1234. However, the issues only arise
> when starting virt-manager from the GUI. I can't find the configuration
> option to somehow tell that I want it to be launched with '-s'?
> 
> Just looking for a backtrace of the qemu-kvm process itself.  So after
> you launch it via virt-manager, gdb /usr/bin/qemu-kvm $(pidof qemu-kvm)
> should be sufficient.

So, when setting a breakpoint for the exit() call I'm getting a bit closer to figuring where it kills my guest.

Breakpoint 1, exit (status=1) at exit.c:99
99	{
Current language:  auto
The current source language is "auto; currently c".
(gdb) bt
#0  exit (status=1) at exit.c:99
#1  0x0000000000470c6e in assigned_dev_pci_read_config (d=0x259c6f0, address=64, len=4)
    at /usr/src/debug/qemu-kvm-0.11.0/hw/device-assignment.c:349
#2  0x000000000042419d in handle_io (vcpu=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.11.0/qemu-kvm.c:784
#3  kvm_run (vcpu=<value optimized out>) at /usr/src/debug/qemu-kvm-0.11.0/qemu-kvm.c:1017
#4  0x0000000000424273 in kvm_cpu_exec (env=0x3f)
    at /usr/src/debug/qemu-kvm-0.11.0/qemu-kvm.c:1686
#5  0x0000000000425856 in kvm_main_loop_cpu (env=0x255a150)
    at /usr/src/debug/qemu-kvm-0.11.0/qemu-kvm.c:1868
#6  ap_main_loop (env=0x255a150) at /usr/src/debug/qemu-kvm-0.11.0/qemu-kvm.c:1905
#7  0x00000035aac06a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#8  0x00000035aa0ddf3d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()
(gdb) p assigned_dev_pci_read_config::address
$1 = 64
(gdb) p assigned_dev_pci_read_config::val
$2 = 0
(gdb) p assigned_dev_pci_read_config::len
$3 = 4
(gdb) p assigned_dev_pci_read_config::ret
$4 = <value optimized out>
(gdb) p assigned_dev_pci_read_config::fd
$5 = 13
(gdb) p assigned_dev_pci_read_config::pci_dev
$6 = (AssignedDevice *) 0x259c6f0
(gdb) p assigned_dev_pci_read_config::pci_dev->real_device
$7 = {bus = 0 '\000', dev = 0 '\000', func = 0 '\000', irq = 0, region_number = 7, regions = {{
      type = 512, valid = 1, base_addr = 4077142016, size = 16384, resource_fd = 15}, {type = 0, 
      valid = 0, base_addr = 0, size = 0, resource_fd = 0}, {type = 0, valid = 0, base_addr = 0, 
      size = 0, resource_fd = 0}, {type = 512, valid = 1, base_addr = 4077273088, size = 16384, 
      resource_fd = 16}, {type = 0, valid = 0, base_addr = 0, size = 0, resource_fd = 0}, {
      type = 0, valid = 0, base_addr = 0, size = 0, resource_fd = 0}, {type = 0, valid = 0, 
      base_addr = 0, size = 0, resource_fd = 0}}, config_fd = 13}
(gdb) p assigned_dev_pci_read_config::d
$8 = (PCIDevice *) 0x259c6f0

So the function assigned_dev_pci_read_config fails to read the PCI configuration of the device and then the exit(1) call kills my guest. I don't know enough about the internals of KVM PCI device assignment and furthermore I don't quite know why this works when starting virt-manager from the command line and not when starting it from the GUI.

>From the dmesg logs I would still guess that the problem is that pci-stub is not initialized properly, and perhaps this is also why the PCI read fails here? pci-stub tells me in the logs "enabling device" but I don't see any messages about enabling/assigning interrupts as I do when running from the command line. 

Let me know if you need any further information.

Attached a list of virt packages I run under Fedora Core 12.

Thanks,
Anna

Attachment: packages.log
Description: packages.log


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux