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 Ladischclemens@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@ladisch.de> Signed-off-by: Takashi Iwai<tiwai@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.