[alsa-devel] Which project to choose?
Raymond Yau
superquad.vortex2 at gmail.com
Thu Jul 22 02:33:50 CEST 2010
2010/7/22 Chris <cpollock at embarqmail.com>
> On Wed, 2010-07-21 at 16:17 +0800, Raymond Yau wrote:
> > 2010/7/21 Chris <cpollock at 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:
>
> http://pastebin.com/db20pXi9
>
>
>
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);
More information about the Alsa-devel
mailing list