[Bug 1181777] [NEW] kvm: freeze a guest with a NIC PCI passthrough

AlexanderYT 1181777 at bugs.launchpad.net
Sun May 19 15:12:28 UTC 2013


Public bug reported:

After attach NIC to guest domain, this domain freeze  and CPU load 100%
on host system.

# virsh start w

# top 
top - 19:08:14 up 28 min,  1 user,  load average: 1.00, 0.97, 0.75
Tasks: 277 total,   1 running, 276 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.2%us,  1.2%sy,  0.0%ni, 97.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  99035416k total,  2537044k used, 96498372k free,    84844k buffers
Swap:        0k total,        0k used,        0k free,   484432k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                         
21168 libvirt-  20   0  837m 544m 6916 S  103  0.6   9:57.66 kvm            


# cat /etc/libvirt/qemuw.xml 
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE 
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit w
or other application using the libvirt API.
-->

<domain type='kvm'>
  <name>w</name>
  <uuid>640ff4d4-665a-5a73-9e85-aecd4e75f18f</uuid>
  <memory>524288</memory>
  <currentMemory>524288</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-1.0'>hvm</type>
    <boot dev='cdrom'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <cpu match='exact'>
    <model>Westmere</model>
    <vendor>Intel</vendor>
    <feature policy='require' name='tm2'/>
    <feature policy='require' name='est'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='ds'/>
    <feature policy='require' name='ss'/>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='rdtscp'/>
    <feature policy='require' name='ht'/>
    <feature policy='require' name='dca'/>
    <feature policy='require' name='pbe'/>
    <feature policy='require' name='tm'/>
    <feature policy='require' name='monitor'/>
    <feature policy='require' name='pdpe1gb'/>
    <feature policy='require' name='ds_cpl'/>
    <feature policy='require' name='xtpr'/>
    <feature policy='require' name='acpi'/>
    <feature policy='require' name='x2apic'/>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/var/lib/libvirt/images/w.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/home/sanches/sysrescue33.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:08:ad:b9'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5932' autoport='no' listen='10.1.110.133' passwd='123'>
      <listen type='address' address='10.1.110.133'/>
    </graphics>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
</domain>


# strace
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(7, "\16\0\0\0\0\0\0\0\376\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0"..., 128) = 128
rt_sigaction(SIGALRM, NULL, {0x7f21895d1250, ~[KILL STOP RTMIN RT_1], SA_RESTORER, 0x7f2185fa7cb0}, 8) = 0
write(9, "\1\0\0\0\0\0\0\0", 8)         = 8
read(7, 0x7fffd9558180, 128)            = -1 EAGAIN (Resource temporarily unavailable)
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0x1, 0, {it_interval={0, 0}, it_value={0, 8640000}}, NULL) = 0
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [8], left {0, 999998})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(8, "\1\0\0\0\0\0\0\0", 512)        = 8
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [7], left {0, 991512})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(7, "\16\0\0\0\0\0\0\0\376\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0"..., 128) = 128
rt_sigaction(SIGALRM, NULL, {0x7f21895d1250, ~[KILL STOP RTMIN RT_1], SA_RESTORER, 0x7f2185fa7cb0}, 8) = 0
write(9, "\1\0\0\0\0\0\0\0", 8)         = 8
read(7, 0x7fffd9558180, 128)            = -1 EAGAIN (Resource temporarily unavailable)
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0x1, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 228319}}) = 0
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [8], left {0, 999998})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(8, "\1\0\0\0\0\0\0\0", 512)        = 8
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [7], left {0, 999936})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(7, "\16\0\0\0\0\0\0\0\376\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0"..., 128) = 128
rt_sigaction(SIGALRM, NULL, {0x7f21895d1250, ~[KILL STOP RTMIN RT_1], SA_RESTORER, 0x7f2185fa7cb0}, 8) = 0
write(9, "\1\0\0\0\0\0\0\0", 8)         = 8
read(7, 0x7fffd9558180, 128)            = -1 EAGAIN (Resource temporarily unavailable)
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0x1, 0, {it_interval={0, 0}, it_value={0, 763493546}}, NULL) = 0
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [8], left {0, 999998})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(8, "\1\0\0\0\0\0\0\0", 512)        = 8
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [7], left {0, 236654})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(7, "\16\0\0\0\0\0\0\0\376\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0"..., 128) = 128
rt_sigaction(SIGALRM, NULL, {0x7f21895d1250, ~[KILL STOP RTMIN RT_1], SA_RESTORER, 0x7f2185fa7cb0}, 8) = 0
write(9, "\1\0\0\0\0\0\0\0", 8)         = 8
read(7, 0x7fffd9558180, 128)            = -1 EAGAIN (Resource temporarily unavailable)
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0x1, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 225636}}) = 0
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [4 7 8 11 15 21 22 23], [], [], {1, 0}) = 2 (in [4 8], left {0, 999996})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(4, 0x7fffd9557210, 1)              = -1 EIO (Input/output error)
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 87734}}) = 0
read(8, "\1\0\0\0\0\0\0\0", 512)        = 8
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [7], left {0, 999986})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(7, "\16\0\0\0\0\0\0\0\376\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0"..., 128) = 128
rt_sigaction(SIGALRM, NULL, {0x7f21895d1250, ~[KILL STOP RTMIN RT_1], SA_RESTORER, 0x7f2185fa7cb0}, 8) = 0
write(9, "\1\0\0\0\0\0\0\0", 8)         = 8
read(7, 0x7fffd9558180, 128)            = -1 EAGAIN (Resource temporarily unavailable)
timer_gettime(0x1, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0x1, 0, {it_interval={0, 0}, it_value={0, 224423000}}, NULL) = 0
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0}) = 1 (in [8], left {0, 999998})
read(21, 0x7fffd9558200, 16)            = -1 EAGAIN (Resource temporarily unavailable)
read(8, "\1\0\0\0\0\0\0\0", 512)        = 8
futex(0x7f218a223460, FUTEX_WAKE_PRIVATE, 1) = 1
select(24, [7 8 11 15 21 22 23], [], [], {1, 0} <unfinished ...>

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: qemu-kvm 1.0+noroms-0ubuntu14.8
ProcVersionSignature: Ubuntu 3.2.0-43.68-generic 3.2.42
Uname: Linux 3.2.0-43-generic x86_64
ApportVersion: 2.0.1-0ubuntu17.2
Architecture: amd64
Date: Sun May 19 19:02:24 2013
ExecutablePath: /usr/bin/qemu-system-x86_64
MachineType: HP ProLiant DL380p Gen8
MarkForUpload: True
ProcEnviron: PATH=(custom, no user)
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-43-generic root=/dev/mapper/CtrlSlot0--raid5-root ro console=tty0 console=ttyS1,115200 nomodeset intel_iommu=on
SourcePackage: qemu-kvm
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 02/25/2012
dmi.bios.vendor: HP
dmi.bios.version: P70
dmi.chassis.type: 23
dmi.chassis.vendor: HP
dmi.modalias: dmi:bvnHP:bvrP70:bd02/25/2012:svnHP:pnProLiantDL380pGen8:pvr:cvnHP:ct23:cvr:
dmi.product.name: ProLiant DL380p Gen8
dmi.sys.vendor: HP

** Affects: qemu-kvm (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug precise qemu-kvm

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to qemu-kvm in Ubuntu.
https://bugs.launchpad.net/bugs/1181777

Title:
  kvm: freeze a guest with a NIC PCI passthrough

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1181777/+subscriptions



More information about the Ubuntu-server-bugs mailing list