qemu-kvm 1.1.1 hangs using 100% CPU when using ES1370 emulation

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

 



Hi,

I'm using a KVM guest to stream audio using darkice to an icecast2 server on the
same guest. The guest uses an emulated ES1370 sound card to capture the host's
audio input (ASUS Xonar DX) using the ALSA backend. After 1 or 2 days, the
qemu-kvm process locks up, using up 100% CPU, apparently spinning in 
audio/rate_template.h (See gdb session below).

Do you have any advice on how to solve this problem?

I haven't tried the -no-kvm-* switches, please advice if that would be useful
in this case. Unfortunately it takes up to 2 days for the bug to happen, so
trying all possible configurations is a bit time-consuming.

More information here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685353

Thank you for your time,
Mike

cpu model: AMD Turion(tm) II Neo N40L Dual-Core Processor
qemu-kvm version: 1.1.1 (Debian package by Michael Tokarev), 
                  happened also with 1.1.0
host: Debian wheezy, 3.2.23, x86_64
guest: Debian wheezy, 3.2.23, x86_64

  /usr/bin/kvm -S -M pc-1.1 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1
  -name mp3 -uuid 25d2b76c-9533-c55a-b5e2-07da213886f1 -nodefconfig -nodefaults
  -chardev
  socket,id=charmonitor,path=/var/lib/libvirt/qemu/mp3.monitor,server,nowait -mon
  chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device
  piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
  file=/dev/vg_vms/lv_mp3,if=none,id=drive-virtio-disk0,format=raw -device
  virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
  -netdev tap,fd=20,id=hostnet0 -device
  virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b1:e7:80,bus=pci.0,addr=0x3
  -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0
  -vnc 127.0.0.1:0 -vga cirrus -device ES1370,id=sound0,bus=pci.0,addr=0x6 -device
  i6300esb,id=watchdog0,bus=pci.0,addr=0x7 -watchdog-action reset -device
  virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4

gdb output (truncated, full output at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685353)

  (gdb) info threads
    Id   Target Id         Frame 
    2    Thread 0x7fccec446700 (LWP 19893) "kvm" 0x00007fccf3f5fcec in __lll_lock_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
  * 1    Thread 0x7fccf7c8c8e0 (LWP 19892) "kvm" st_rate_flow (opaque=0x7fccf9248f40, ibuf=0x7fccf9150320, obuf=0x7fccf91975b0, isamp=isamp@entry=0x7fffe9ff6550, 
      osamp=osamp@entry=0x7fffe9ff6554) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h:75
  (gdb) thread apply all bt full

  Thread 2 (Thread 0x7fccec446700 (LWP 19893)):
  #0  0x00007fccf3f5fcec in __lll_lock_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
  No symbol table info available.
  #1  0x00007fccf3f5b339 in _L_lock_926 () from /lib/x86_64-linux-gnu/libpthread.so.0
  No symbol table info available.
  #2  0x00007fccf3f5b15b in pthread_mutex_lock () from /lib/x86_64-linux-gnu/libpthread.so.0
  No symbol table info available.
  #3  0x00007fccf7f18c29 in qemu_mutex_lock (mutex=mutex@entry=0x7fccf8c39a80) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/qemu-thread-posix.c:54
          err = <optimized out>
          __func__ = "qemu_mutex_lock"
  #4  0x00007fccf7f729f0 in qemu_mutex_lock_iothread () at /tmp/buildd/qemu-kvm-1.1.1+dfsg/cpus.c:897
  No locals.
  #5  0x00007fccf7f9a0b6 in kvm_cpu_exec (env=env@entry=0x7fccf902d510) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/kvm-all.c:1268
          run = 0x7fccf7d80000
          ret = <optimized out>
          run_ret = 0
  #6  0x00007fccf7f71591 in qemu_kvm_cpu_thread_fn (arg=0x7fccf902d510) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/cpus.c:752
          env = 0x7fccf902d510
          r = <optimized out>
  #7  0x00007fccf3f58b50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
  No symbol table info available.
  #8  0x00007fccf3ca370d in clone () from /lib/x86_64-linux-gnu/libc.so.6
  No symbol table info available.
  #9  0x0000000000000000 in ?? ()
  No symbol table info available.

  Thread 1 (Thread 0x7fccf7c8c8e0 (LWP 19892)):
  #0  st_rate_flow (opaque=0x7fccf9248f40, ibuf=0x7fccf9150320, obuf=0x7fccf91975b0, isamp=isamp@entry=0x7fffe9ff6550, osamp=osamp@entry=0x7fffe9ff6554)
      at /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h:75
          rate = 0x7fccf9248f40
          istart = 0x7fccf9148810
          iend = 0x7fccf91730c0
          ostart = 0x7fccf91975b0
          oend = 0x7fccf9197870
          ilast = {l = -50003968, r = 171704320}
          icur = <optimized out>
          out = <optimized out>
          t = <optimized out>
  #1  0x00007fccf7e08a96 in audio_pcm_sw_read (sw=0x7fccf9260bf0, buf=0x7fffe9ff65d0, size=<optimized out>) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/audio.c:952
          hw = 0x7fccf924aa20
          samples = <optimized out>
          live = <optimized out>
          ret = <optimized out>
          swlim = <optimized out>
          isamp = 10891
          osamp = 44
          rpos = 0
          total = <optimized out>
          src = <optimized out>
          dst = <optimized out>
          __FUNCTION__ = "audio_pcm_sw_read"
  #2  0x00007fccf7e9ac0a in es1370_transfer_audio (s=s@entry=0x7fccf90a9470, d=0x7fccf90a9988, loop_sel=32768, max=<optimized out>, irq=irq@entry=0x7fffe9ff7624)
      at /tmp/buildd/qemu-kvm-1.1.1+dfsg/hw/es1370.c:803
          acquired = <optimized out>
          to_copy = 4096
          tmpbuf = "\344\002\230\017f\002\006\022\243\001~\021\230\000\000\r\251\377\035\005z\377{\374O\000\332\365\320\001\032\362\224\003]\360U\005\330\357\347\006\375\357i\b\\\360\062\n\273\360h\f9\361\263\016\070\362N\020\336\363`\020\233\365H\016{\366\357\n\234\366\351\a|\366\365\005\065\366\364\004n\365\230\004\372\363\242\004B\362\320\004\026\361\346\004\365\360\363\004\214\361\017\005E\362\323\004\034\363C\004\246\364\304\003\374\366\306\003\\\371p\004W\372\222\005\341\370\343\006\004\365\067\b\357\357}\t\202\353m\n\330\351\256\n\254\354C\n\226\362\024\t\346\367P\a\341\372\313\005\064\374\063\005\353\374\230\005y\375\221\006\336\375\270\a\025\376\366\b#\376>\n\367\375\062\v\372\375}\v\271\376P\v\357\377\357\n\t\001\256\n\213\001\023\v\033\001]\f\203\377\032\016\316\374R\017a\371Y\017\330\365\357\r,\363 \v\273\362\v\bA\364\215\005\210\366{\003n\370a\001\220\371=\377T\372\\\375v\373\372\373f\375T\373\275\377\265\373h\001\352\374\264\001$\376\340\000\312\376$\377\300\376\204\374a\376[\371\032\376H\366\a\376\t\364\363\375n\363\254\375\032\365\063\375\316\370\217\374P\375G\3---Type <return> to continue, or q <return> to quit---
  74q\000\240\374z\000\025\375t\375\061\375\375\370\n\375\346\364\027\375\363\361\275\375\363\357\365\376\316\356%\000&\357V\000R\361\066\377\374\363\205\375\300\365\277\374\376\366\344\375\033\370\220\000\037\371v\003\332\371\223\005\367\371\274\006\063\371U\a\272\367\304\a@\366W\b\\\365\372\b\323\364\352\b\322\363\071\b\032\362f\a\275\357\306\006\353\354\200\006\357\351\211\006\060\347"...
          addr = 1021014016
          sc = 1023
          csc_bytes = 4096
          cnt = 7168
          size = 16383
          left = <optimized out>
          transferred = <optimized out>
          temp = 4096
          index = 2
  #3  0x00007fccf7e9af54 in es1370_run_channel (s=0x7fccf90a9470, chan=<optimized out>, free_or_avail=<optimized out>) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/hw/es1370.c:877
          new_status = 96
          max_bytes = <optimized out>
          irq = <optimized out>
          d = <optimized out>
          b = 0x7fccf833ec30
  #4  0x00007fccf7e0a4e7 in audio_run_in (s=<optimized out>) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/audio.c:1487
          sw = 0x7fccf9260bf0
          captured = <optimized out>
          hw = <optimized out>
  #5  audio_run (msg=msg@entry=0x7fccf80529d1 "alsa run (running)") at /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/audio.c:1546
          s = 0x7fccf84029c0
  #6  0x00007fccf7e04b91 in alsa_poll_handler (opaque=0x7fccf924aaa8) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/alsaaudio.c:233
          err = <optimized out>
          count = <optimized out>
          state = <optimized out>
          revents = 1
  #7  0x00007fccf7e5b406 in qemu_iohandler_poll (readfds=readfds@entry=0x7fccf880f060, writefds=writefds@entry=0x7fccf880f0e0, xfds=xfds@entry=0x7fccf880f160, ret=ret@entry=1)
      at /tmp/buildd/qemu-kvm-1.1.1+dfsg/iohandler.c:122
          pioh = 0x7fccf90e7990
          ioh = 0x7fccf9274e40
  #8  0x00007fccf7eedb6a in main_loop_wait (nonblocking=<optimized out>) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/main-loop.c:497
          ret = 1
          timeout = 4294967295
  #9  0x00007fccf7dfd943 in main_loop () at /tmp/buildd/qemu-kvm-1.1.1+dfsg/vl.c:1566
          nonblocking = <optimized out>
          last_io = 1
  #10 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at /tmp/buildd/qemu-kvm-1.1.1+dfsg/vl.c:3702
          i = <optimized out>
          snapshot = 0
          linux_boot = <optimized out>
          icount_option = 0x0
          initrd_filename = <optimized out>
          kernel_filename = <optimized out>
          kernel_cmdline = <optimized out>
          boot_devices = "cad", '\000' <repeats 29 times>
          ds = 0x7fccf90470b0
          dcl = <optimized out>
          cyls = 0
          heads = 0
          secs = 0
          translation = 0
          hda_opts = <optimized out>
          opts = <optimized out>
          machine_opts = <optimized out>
          olist = <optimized out>
          optind = 48
          optarg = 0x7fffe9ff8f67 "virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4"
          loadvm = 0x0
          machine = 0x7fccf83fdb60
  ---Type <return> to continue, or q <return> to quit---
          cpu_model = 0x0
          vga_model = 0x7fffe9ff8ee4 "cirrus"
          pid_file = 0x0
          incoming = 0x0
          defconfig = <optimized out>
          userconfig = false
          log_mask = 0x0
          log_file = 0x0
          mem_trace = {malloc = 0x7fccf7ee6c40 <malloc_and_trace>, realloc = 0x7fccf7ee6c00 <realloc_and_trace>, free = 0x7fccf7ee6bc0 <free_and_trace>, calloc = 0, try_malloc = 0, 
            try_realloc = 0}
          trace_events = 0x0
          trace_file = 0x0
  (gdb) step
  73  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  75  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  71  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  72  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  73  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  75  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  73  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  75  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  71  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
  72  in /tmp/buildd/qemu-kvm-1.1.1+dfsg/audio/rate_template.h
  (gdb) 
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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