From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=48195 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P7Qa0-0001iC-2b for qemu-devel@nongnu.org; Sun, 17 Oct 2010 06:35:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P7QZz-0005ot-57 for qemu-devel@nongnu.org; Sun, 17 Oct 2010 06:35:04 -0400 Received: from mail-iw0-f173.google.com ([209.85.214.173]:34470) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P7QZz-0005jE-1C for qemu-devel@nongnu.org; Sun, 17 Oct 2010 06:35:03 -0400 Received: by iwn34 with SMTP id 34so3091195iwn.4 for ; Sun, 17 Oct 2010 03:34:58 -0700 (PDT) MIME-Version: 1.0 Date: Sun, 17 Oct 2010 12:34:56 +0200 Message-ID: From: =?ISO-8859-2?Q?Jind=F8ich_Makovi=E8ka?= Content-Type: multipart/mixed; boundary=001485ec070c5fad7e0492cd9c67 Subject: [Qemu-devel] [PATCH] alsa: fix 100% CPU load when idle w/ dmix List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, kvm@vger.kernel.org Cc: =?ISO-8859-2?Q?Jind=F8ich_Makovi=E8ka?= --001485ec070c5fad7e0492cd9c67 Content-Type: text/plain; charset=ISO-8859-1 Hi, when using dmix as an ALSA output, the output cannot be polled and ALSA (snd_pcm_poll_descriptors) returns the event mask set to POLLIN instead. As this event mask is passed to the main loop, the select() in main_loop_wait() never waits, because the output file descriptor is never read. So, qemu/kvm ends up busy looping all the time. The attached patch simply disables the poll mode, when ALSA returns POLLIN in the event mask for the ALSA playback pcm handle. -- Jindrich Makovicka --001485ec070c5fad7e0492cd9c67 Content-Type: text/x-patch; charset=US-ASCII; name="alsaaudio.c.diff" Content-Disposition: attachment; filename="alsaaudio.c.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gfdrqigt0 LS0tIGFsc2FhdWRpby5jLm9yaWcJMjAxMC0xMC0xMyAxMjo1NToxMS4wMDAwMDAwMDAgKzAyMDAK KysrIGFsc2FhdWRpby5jCTIwMTAtMTAtMTcgMTI6MTg6NTcuOTI4ODM0Mjc2ICswMjAwCkBAIC0y NjYsOCArMjY2LDEzIEBACiAKICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewogICAg ICAgICBpZiAocGZkc1tpXS5ldmVudHMgJiBQT0xMSU4pIHsKLSAgICAgICAgICAgIGVyciA9IHFl bXVfc2V0X2ZkX2hhbmRsZXIgKHBmZHNbaV0uZmQsIGFsc2FfcG9sbF9oYW5kbGVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgaGxwKTsKKyAgICAgICAgICAg IGlmIChtYXNrICYgUE9MTElOKSB7CisgICAgICAgICAgICAgICAgZXJyID0gcWVtdV9zZXRfZmRf aGFuZGxlciAocGZkc1tpXS5mZCwgYWxzYV9wb2xsX2hhbmRsZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgaGxwKTsKKyAgICAgICAgICAgIH0gZWxz ZSB7CisgICAgICAgICAgICAgICAgZG9sb2cgKCJDYW5ub3QgdXNlIHBvbGwgbW9kZSBmb3Igb3V0 cHV0XG4iKTsKKyAgICAgICAgICAgICAgICBlcnIgPSAtMTsKKyAgICAgICAgICAgIH0KICAgICAg ICAgfQogICAgICAgICBpZiAocGZkc1tpXS5ldmVudHMgJiBQT0xMT1VUKSB7CiAgICAgICAgICAg ICBpZiAoY29uZi52ZXJib3NlKSB7Cg== --001485ec070c5fad7e0492cd9c67--