On 2012-05-09 16:33, malc wrote:
> On Wed, 9 May 2012, Jan Kiszka wrote:
> 
>> On 2012-05-03 20:51, malc wrote:
>>> On Thu, 3 May 2012, Jan Kiszka wrote:
>>>
>>>> On 2012-05-03 16:32, malc wrote:
>>>>> On Thu, 3 May 2012, Jan Kiszka wrote:
>>>>>
>>>>>> Not only clean up enabled voices but any registered one. Backends like
>>>>>> pulsaudio rely on unconditional fini handler invocations.
>>>>>>
>>>>>> This fixes "Memory pool destroyed but not all memory blocks freed!"
>>>>>> warnings on VM shutdowns when pa is used.
>>>>>
>>>>> Perhaps it's better to actually handle VOICE_DISABLE in pa's ctl_[in|out]?
>>>>
>>>> This might be some additional issue (that pa is not supporting
>>>> enable/disable). In any case, it is unrelated to this one: fini
>>>> corresponds to init. And as we initialized the voice, we also have to
>>>> finalize it on shutdown. That's what this patch is fixing.
>>>>
>>>
>>> The issue is that i don't remember exactly why it iterates only over
>>> enabled voices, maybe there was a reason, maybe there wasn't, need to
>>> think it over. 
>>
>> Any news on this?
>>
> 
> Nope.

Can we please get this or similar fix in 1.1.? It not only cures the
annoying warning, I just noticed that, without it, the qemu process
hangs like this on exit when audio was in use by the guest:

(gdb) bt
#0  0x00007f4c2f01b5f0 in sem_wait () from /lib64/libpthread.so.0
#1  0x00007f4c2a695f58 in pa_semaphore_wait () from
/usr/lib64/libpulsecommon-0.9.22.so
#2  0x00007f4c2a67d0a4 in ?? () from /usr/lib64/libpulsecommon-0.9.22.so
#3  0x00007f4c2a67d1ab in ?? () from /usr/lib64/libpulsecommon-0.9.22.so
#4  0x00007f4c2a67fa50 in pa_memimport_free () from
/usr/lib64/libpulsecommon-0.9.22.so
#5  0x00007f4c2a688930 in pa_pstream_unlink () from
/usr/lib64/libpulsecommon-0.9.22.so
#6  0x00007f4c2de1a3ea in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007f4c2de1ad58 in ?? () from /usr/lib64/libpulse.so.0
#8  0x00007f4c30be1aa4 in qpa_audio_fini (opaque=0x7f4c311a98e0) at
/data/qemu-kvm/audio/paaudio.c:875
#9  0x00007f4c2b9fc5a1 in __run_exit_handlers () from /lib64/libc.so.6
#10 0x00007f4c2b9fc5f5 in exit () from /lib64/libc.so.6
#11 0x00007f4c2b9e5c04 in __libc_start_main () from /lib64/libc.so.6
#12 0x00007f4c30bd5219 in _start () at ../sysdeps/x86_64/elf/start.S:103

Thanks,
Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

Reply via email to