Re: [patch] cpufreq: mark cpufreq_tsc() as core_initcall_sync

From: Andrew Morton
Date: Thu Nov 16 2006 - 16:25:04 EST


On Thu, 16 Nov 2006 21:15:32 +0100
Ingo Molnar <mingo@xxxxxxx> wrote:

>
> * Thomas Gleixner <tglx@xxxxxxxxxxx> wrote:
>
> > [PATCH] cpufreq: make the transition_notifier chain use SRCU
> > (b4dfdbb3c707474a2254c5b4d7e62be31a4b7da9)
> >
> > breaks cpu frequency notification users, which register the callback
> > on core_init level. Interestingly enough the registration survives the
> > uninitialized head, but the registered user is lost by:
>
> i have hit this bug in -rt (it caused a lockup) and have fixed it -
> forgot to send it upstream. Find the patch below.
>
> Ingo
>
> ---------------->
> From: Ingo Molnar <mingo@xxxxxxx>
> Subject: [patch] cpufreq: mark cpufreq_tsc() as core_initcall_sync
>
> init_cpufreq_transition_notifier_list() should execute first, which is a
> core_initcall, so mark cpufreq_tsc() core_initcall_sync.

That's not a terribly useful changelog. What bug is being fixed. What
does "first" mean?

> Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
>
> --- linux.orig/arch/x86_64/kernel/tsc.c
> +++ linux/arch/x86_64/kernel/tsc.c
> @@ -138,7 +138,11 @@ static int __init cpufreq_tsc(void)
> return 0;
> }
>
> -core_initcall(cpufreq_tsc);
> +/*
> + * init_cpufreq_transition_notifier_list() should execute first,
> + * which is a core_initcall, so mark this one core_initcall_sync:
> + */
> +core_initcall_sync(cpufreq_tsc);

Would prefer that we not use the _sync levels. They're there as a
synchronisation for MULTITHREAD_PROBE and might disappear at any time.

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