Re: [Alsa-devel] Reproducible deadlock w. alsa/maestro3 when sleeping (ACPI,) 2.6.0-test1

From: P. Christeas (p_christ@hol.gr)
Date: Wed Jul 16 2003 - 10:03:48 EST


> Takashi Iwai wrote:
> > At Mon, 14 Jul 2003 19:17:22 +0300,
> >
> > P. Christeas <p_christ@hol.gr> wrote:
> > > I have been experiencing some fully reproducible deadlock when waking
> > > from sleep, using artsd over ALSA.
> > > The scenario is:
> > > I use ALSA, with the maestro3 device and everything else compiled as
> > > modules. From userspace, I launch artsd, which uses its native ALSA
> > > support to connect to /dev/pcmXXXXX .
> > > I only have a custom script, which sleeps the machine by a 'echo 1>
> > > /proc/acpi/sleep' . It does NOT stop alsa .
> >
> > could you check whether m3_suspend() and m3_resume() in
> > sound/pci/maestro3.c are really called?
> >
> >
> > Takashi
>
> OK, I did that. I put two messages in both functions of the maestro3
> driver. I suspended/resumed the machine. Both functions had been called.
>
> This time, I did NOT have 'artsd' (i.e. the client) loaded. What happened
> was that the module was properly restored and I could load (and use) artsd
> even after the resume.
> That brings me to the first assumption/question I have made: is there
> something wrong if we suspend two parts (one module and a userspace
> process), while they inter-communicate through the /dev/* interface?
>
>
In a second test, I have also added messages at the end of these functions.
They surely don't exit early indeed.

Has anybody else managed to reproduce the bug?
Does it happen with other drivers (say, PCI cards w. pcm interface)?

procedure:
        (read the last step first; it is a warning)
        1. load the sound module, like 'modprobe snd-maestro3'
        2. load the client ("artsd" should be the one, others may eventually release
the descriptor. If you want, you could give them a try as well.)
        3. Suspend, S1, NOT with an all-capable script. The script you use must not
try to bring down ALSA.
        4. Resume.
        5. Check the state of the "artsd" (or equivalent) process.

        W. Note that if the process is waiting for I/O, you can do nothing but
reboot.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jul 23 2003 - 22:00:24 EST