Re: mmotm 2008-11-13-17-22 uploaded (pc-speaker)
From: Takashi Iwai
Date: Fri Nov 14 2008 - 03:18:18 EST
At Fri, 14 Nov 2008 09:03:14 +0100,
Peter Zijlstra wrote:
>
> On Fri, 2008-11-14 at 07:47 +0100, Takashi Iwai wrote:
> > At Fri, 14 Nov 2008 07:36:54 +0100,
> > I wrote:
> > >
> > > At Thu, 13 Nov 2008 21:18:42 -0800,
> > > Randy Dunlap wrote:
> > > >
> > > >
> > > > mmotm-2008-1113-1722/sound/drivers/pcsp/pcsp.c: In function 'snd_card_pcsp_probe':
> > > > mmotm-2008-1113-1722/sound/drivers/pcsp/pcsp.c:99: error: 'HRTIMER_CB_IRQSAFE' undeclared (first use in this function)
> > > >
> > > > # CONFIG_SND_HRTIMER is not set
> > >
> > > snd-pcsp and CONFIG_SND_HRTIMER are independent.
> > > The snd-pcsp driver code isn't changed over weeks, thus it must be the
> > > change in hrtimer side.
> >
> > It's turned out to be the recent commint in the upstream:
> >
> > commit 621a0d5207c18012cb39932f2d9830a11a6cb03d
> > Author: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > Date: Wed Nov 12 09:36:35 2008 +0100
> >
> > hrtimer: clean up unused callback modes
> >
> > Impact: cleanup
> >
> > git grep HRTIMER_CB_IRQSAFE revealed half the callback modes are actually
> > unused.
> >
> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
> >
> > This hits on snd-pcsp driver on linux-next, since it was switched to
> > use this dropped flag. Now we get a build error.
> >
> > Can this commit be reverted?
>
> I think we determined the silly pc speaker driver should be using the
> SOFTIRQ timer, why was this changed back again?
It uses a tasklet inside now.
The background story is: pcsp driver does register bit flips at each
hrtimer callback. This should be done as accurate as possible for the
sound quality (heh, who matters?). The register flip itself doesn't
take time and no lock problem. Thus, IRQSAFE is more appropriate just
for this task.
The reason we used the softirq mode is the call of the ALSA core
update part. This is eventually called after the given samples have
been processed. And, this could cause a spin deadlock if called
directly from hrtimer callback.
In the latest code, the call of ALSA PCM core is off-loaded via
tasklet for avoiding both spin deadlock and too long hrtimer
handling.
thanks,
Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/