[alsa-devel] commit 109fef9edcc100952eec980acbc2e1295627fbab ALSA: timer: automatically load the high-resolution timer causing MIDI playback tempo problems

Arthur Marsh arthur.marsh at internode.on.net
Sun Jan 23 16:48:31 CET 2011


Arthur Marsh wrote, on 24/01/11 01:15:
> Hi, on an old machine I have with Intel 440BX chipset and PII-266 CPU, I
> found recent kernels causing MIDI sound output from a Soundblaster
> Audigy 2 ZS to be varying widely in tempo.
>
> dmesg reports with recent kernels (both those that allow correct
> playback of MIDI files and those that give wide variation in playback
> tempo):
>
> Clocksource tsc unstable (delta = 132040172 ns)
> Switching to clocksource pit
>
> After git-bisection I found:
>
> git bisect bad
> 109fef9edcc100952eec980acbc2e1295627fbab is the first bad commit
> commit 109fef9edcc100952eec980acbc2e1295627fbab
> Author: Clemens Ladisch<clemens at ladisch.de>
> Date:   Thu Nov 18 09:53:54 2010 +0100
>
>       ALSA: timer: automatically load the high-resolution timer
>
>       Increase the default timer limit so that snd-hrtimer.ko can be
>       automatically loaded when needed, e.g., when used as the default
>       sequencer timer.  This replaces the check for the obsolete
>       CONFIG_SND_HPET.
>
>       Signed-off-by: Clemens Ladisch<clemens at ladisch.de>
>       Signed-off-by: Takashi Iwai<tiwai at suse.de>
>
> :040000 040000 c7b3b046ea99e563228f36ea4a00f9b763bf5813
> 741f137a201b31bdf5eaaa58c3031b4b2a68c6d6 M      sound
>
> diff --git a/sound/core/timer.c b/sound/core/timer.c
> index 13afb60..b3aaa60 100644
> --- a/sound/core/timer.c
> +++ b/sound/core/timer.c
> @@ -34,8 +34,8 @@
>    #include<sound/initval.h>
>    #include<linux/kmod.h>
>
> -#if defined(CONFIG_SND_HPET) || defined(CONFIG_SND_HPET_MODULE)
> -#define DEFAULT_TIMER_LIMIT 3
> +#if defined(CONFIG_SND_HRTIMER) || defined(CONFIG_SND_HRTIMER_MODULE)
> +#define DEFAULT_TIMER_LIMIT 4
>    #elif defined(CONFIG_SND_RTCTIMER) || defined(CONFIG_SND_RTCTIMER_MODULE)
>    #define DEFAULT_TIMER_LIMIT 2
>    #else
>
> I am currently rebuilding kernel 2.6.38-rc2 with this patch reverted to
> verify that this commit triggers the problem with this machine.
>
> Arthur.

I forgot to mention, the kernels I have been using have all had

CONFIG_SND_HPET* undefined
CONFIG_SND_HRTIMER=m
CONFIG_SND_RTC* undefined

as per Debian kernel 2.6.32-5-686 version 2.6.32-30.

With the above patch applied,

both snd_hrtimer and snd_seq_dummy get loaded, but without the patch 
applied, neither of snd_hrtimer or snd_seq_dummy gets loaded.

Without the patch applied, if the CPU has some idle time, the sound 
playback using aplaymidi is fine, with the patch, the sound tempo can 
vary widely even with idle CPU time.

Arthur.



More information about the Alsa-devel mailing list