Re: [PATCH] timekeeping: drop irq-context clocksource polling

Daniel Walker
2007-04-07T17:44:57Z

On Sat, 2007-04-07 at 03:19 -0700, Andrew Morton wrote:
> On Thu, 05 Apr 2007 14:03:16 -0700 Daniel Walker <dwalker@mvista.com> wrote:
>
> > Before this change the timekeeping code would poll the clocksource
> > list every interrupt. This changes that so the clocksource list is
> > only checked when there has been and update, and no longer checks
> > in interrupt context.
>
> I get a complete lockup on i386 SMP - before the kernel has printed anything.
>
> I'm suspecting a recursive taking of xtime_lock.

Looks like this path ,

arch/i386/kernel/tsc.c: time_cpufreq_notifier(); <-- takes xtime_lock
mark_tsc_unstable();
clocksource_change_rating(&clocksource_tsc, 0);
timekeeping_change_clocksource(); <-- takes xtime_lock

I'm not sure why the time_cpufreq_notifier is taking the xtime_lock tho .

Daniel