On Mon, 11 Jan 2010, pl bossart wrote:
The improved and more clean fix in now in my tree:
http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=1250932e48d3b6...
The race condition is definitely gone. However I still see a NULL event in snd_pcm_playback_poll() in pcm_native.c.
[13312.755305] ALSA: null poll event, avail 265 avail_min 8192
I couldn't figure out who generates this null event, and even better it does not show in the report printed by my test app. I am somewhat lost here as to how snd_pcm_playback_poll works.
Note that do_poll() in linux/fs/select.c first checks all given fds if there's an event. So probably the userspace just called poll() for a reason in different timing than sound one (processing event from another fd or so). I believe it's normal behaviour.
Jaroslav
----- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc.