Re: mmotm 2008-11-13-17-22 uploaded (pc-speaker)

From: Peter Zijlstra
Date: Fri Nov 14 2008 - 03:30:31 EST


On Fri, 2008-11-14 at 09:17 +0100, Takashi Iwai wrote:
> 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.

Aside from the fact that I think tasklets should die a horrible death
too, could you, for now, try to use HRTIMER_CB_IRQSAFE_UNLOCKED ?



--
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/