2010/7/22 Chris cpollock@embarqmail.com
On Wed, 2010-07-21 at 16:17 +0800, Raymond Yau wrote:
2010/7/21 Chris cpollock@embarqmail.com
Before I try the above Raymond, what would cause the below when the system is sitting here basically idle? I'm not even home to do anything when this happened?
Jul 20 11:32:43 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: ratelimit.c: 240 events suppressed Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally Jul 20 11:32:45 localhost pulseaudio[28711]: asyncq.c: q overrun, queuing locally
I don't think the system is idle , you still have the gnome-volume-mixer-applet / kmix connected to PA server using pulse api
pactl stat
pactl list
you have to ask PA developers because I cannot reproduce "asyncq.c: q overrun," in the virtualbox
Raymond, outputs of above are here:
you only have three PA clients when your system is idle,
1. Client #0 2. Driver: module-console-kit.c 3. Properties: 4. application.name = "ConsoleKit Session /org/freedesktop/ConsoleKit/Session9" 5. console-kit.session = "/org/freedesktop/ConsoleKit/Session9" 6. 7. Client #1 8. Driver: protocol-native.c 9. application.name = "GNOME Volume Control Media Keys" 10. native-protocol.peer = "UNIX socket client" 11. native-protocol.version = "16" 12. application.id = "org.gnome.VolumeControl" 13. application.icon_name = "multimedia-volume-control" 14. application.version = "2.30.2" 15. application.process.id = "30012" 16. application.process.user = "chris" 17. application.process.host = "localhost" 18. application.process.binary = "gnome-settings-daemon" 19. application.language = "en_US.utf8" 20. window.x11.display = ":0.0" 21. 22. Client #2 23. Driver: protocol-native.c 24. application.name = "GNOME Volume Control Applet" 25. native-protocol.peer = "UNIX socket client" 26. native-protocol.version = "16" 27. application.id = "org.gnome.VolumeControl" 28. application.icon_name = "multimedia-volume-control" 29. application.version = "2.30.0" 30. application.process.id = "30031" 31. application.process.user = "chris" 32. application.process.host = "localhost" 33. application.process.binary = "gnome-volume-control-applet" 34. application.language = "en_US.utf8" 35. window.x11.display = ":0.0"
on Fedora 10 , there are 17 PA clients when I just open gnome-terminal to run pactl
consolekit, x11-xsmp, nm-applet, imsetting-applet, gnome-panel, trashapplet, wnckapplet, nautilus, clock-applet, mixer2-applet, gdm-user-switch-applet, notification-area-applet, mono, meta-city, gnome-terminal, gpk-update-icon and pactl
Just look at the driver modules, they only post PA_CORE_MESSAGE_UNLOAD_MODULE and PA_MESSAGE_SHUTDOWN , and wait for PA_MESSAGE_SHUTDOWN
i.e. the driver modules are unlikely to cause "asyncq overrun"
grep -ir "pa_asyncmsgq" * alsa/alsa-sink.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); alsa/alsa-sink.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); alsa/alsa-sink.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); alsa/alsa-source.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); alsa/alsa-source.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); alsa/alsa-source.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); bluetooth/module-bluetooth-device.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); bluetooth/module-bluetooth-device.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); bluetooth/module-bluetooth-device.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); coreaudio/module-coreaudio-device.c: pa_asyncmsgq *async_msgq; coreaudio/module-coreaudio-device.c: pa_assert_se(pa_asyncmsgq_send(u->async_msgq, PA_MSGOBJECT(u->sinks->pa_sink), coreaudio/module-coreaudio-device.c: pa_assert_se(pa_asyncmsgq_send(u->async_msgq, PA_MSGOBJECT(u->sources->pa_source), coreaudio/module-coreaudio-device.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->module->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); coreaudio/module-coreaudio-device.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); coreaudio/module-coreaudio-device.c: u->async_msgq = pa_asyncmsgq_new(0); coreaudio/module-coreaudio-device.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); coreaudio/module-coreaudio-device.c: pa_asyncmsgq_unref(u->async_msgq); jack/module-jack-source.c: pa_asyncmsgq *jack_msgq; jack/module-jack-source.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); jack/module-jack-source.c: pa_asyncmsgq_post(u->jack_msgq, PA_MSGOBJECT(u->source), SOURCE_MESSAGE_POST, NULL, frame_time, &chunk, NULL); jack/module-jack-source.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); jack/module-jack-source.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); jack/module-jack-source.c: pa_asyncmsgq_post(u->jack_msgq, PA_MSGOBJECT(u->source), SOURCE_MESSAGE_ON_SHUTDOWN, NULL, 0, NULL, NULL); jack/module-jack-source.c: u->jack_msgq = pa_asyncmsgq_new(0); jack/module-jack-source.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); jack/module-jack-source.c: pa_asyncmsgq_unref(u->jack_msgq); jack/module-jack-sink.c: * via pa_asyncmsgq. The cost is an additional context switch which jack/module-jack-sink.c: pa_asyncmsgq *jack_msgq; jack/module-jack-sink.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); jack/module-jack-sink.c: pa_assert_se(pa_asyncmsgq_send(u->jack_msgq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_RENDER, &frame_time, nframes, NULL) == 0); jack/module-jack-sink.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); jack/module-jack-sink.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); jack/module-jack-sink.c: pa_asyncmsgq_post(u->jack_msgq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_ON_SHUTDOWN, NULL, 0, NULL, NULL); jack/module-jack-sink.c: pa_asyncmsgq_post(u->jack_msgq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_BUFFER_SIZE, NULL, nframes, NULL, NULL); jack/module-jack-sink.c: u->jack_msgq = pa_asyncmsgq_new(0); jack/module-jack-sink.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); jack/module-jack-sink.c: pa_asyncmsgq_unref(u->jack_msgq);
module-solaris.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); module-solaris.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); module-solaris.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); oss/module-oss.c: pa_asyncmsgq_post(u->thread_mq.outq, PA_MSGOBJECT(u->core), PA_CORE_MESSAGE_UNLOAD_MODULE, u->module, 0, NULL, NULL); oss/module-oss.c: pa_asyncmsgq_wait_for(u->thread_mq.inq, PA_MESSAGE_SHUTDOWN); oss/module-oss.c: pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL);