Re: [PATCH 14/23] clocksource: increase initcall priority

From: Daniel Walker
Date: Wed Jan 31 2007 - 12:23:44 EST


On Wed, 2007-01-31 at 18:10 +0100, Ingo Molnar wrote:
> * Daniel Walker <dwalker@xxxxxxxxxx> wrote:
>
> > On Wed, 2007-01-31 at 12:50 +0100, Ingo Molnar wrote:
> > > * Daniel Walker <dwalker@xxxxxxxxxx> wrote:
> > >
> > > > -module_init(init_acpi_pm_clocksource);
> > > > +/*
> > > > + * This clocksource is removed from the clocksource_initcall
> > > > + * macro since it's mandatory for it to be in fs_initcall as the
> > > > + * highest initcall level, or else it doesn't work properly with
> > > > + * it's PCI fix ups.
> > > > + */
> > > > +fs_initcall(init_acpi_pm_clocksource);
> > >
> > > ugh - this bit looks quite interesting.
> > >
> > > what's the purpose of this patch? Switching to high-res timers
> > > should be done late in the bootup - in case there's a problem it's
> > > more debuggable, etc.
> >
> > The timekeeping code, and hrt/dynamic tick both wait till after boot
> > up to switch to high res mode ..
>
> again, let me repeat the question: what's the purpose of this (whole!)
> patch. Not just of this chunk - the whole patch. You change around
> initcall levels - why? It makes no sense to me. The explanation in the
> patch header makes no sense to me.
>
> Please if possible try to build clear arguments: first outlining "this
> is how it worked before: <X>", then outlining "this is how it will work
> after my change: <Y>", and then maybe a small blurb about "Y is better
> than X, because: <Z>". That X, Y, Z analysis is what is needed to accept
> a patch.

I don't know that I could explain it better than what's in the patch
header .. I'll think about it.

> > The specific code block you commented on above was added cause acpi_pm
> > has special pci fixups that don't function properly earlier in boot
> > up. So it can't be arbitrarily raised to order in the initcall
> > sequence ..
>
> i think you misunderstood my comment. In the chunk above you used
> fs_initcall() initcall instead of clocksource_initcall(). (Which is
> funny even ignoring the bad hack that clocksource_initcall is defined to
> fs_initcall.)

The purpose of clocksource_initcall is so the initcall can be increased
without changing all the individual clocksources .. So I have to
disconnect that from the acpi_pm because it can't tolerate it.

Daniel

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