Re: first bisection results in -mm3 [was: Re: 2.6.15-mm2: reiser3oops on suspend and more (bonus oops shot!)]

From: john stultz
Date: Mon Jan 16 2006 - 19:47:54 EST


On Mon, 2006-01-16 at 21:40 +0100, Mattia Dongili wrote:
> On Mon, Jan 16, 2006 at 12:16:21PM -0800, john stultz wrote:
> > I'll try to narrow that window down a bit and see if that doesn't
> > resolve the issue.
>
> I'll be happy to test new patches if necessary (I'm running -mm4)

See if this patch doesn't resolve the issue. Its a bit hackish, but
basically I'm just holding off installing any clocksources until later
on at boot. This avoids some of the clocksource churn.

You will still see the TSC be installed briefly, since in this cases it
doesn't realize its a bad choice until after its being used for one
interval. However it should be much shorter (only ~50ms) of a window.

thanks
-john


diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -51,13 +51,27 @@ static LIST_HEAD(clocksource_list);
static DEFINE_SPINLOCK(clocksource_lock);
static char override_name[32];

+static int finished_booting;
+
+/* clocksource_done_booting - Called near the end of bootup
+ *
+ * Hack to avoid lots of clocksource churn at boot time
+ */
+static int clocksource_done_booting(void)
+{
+ finished_booting = 1;
+ return 0;
+}
+
+late_initcall(clocksource_done_booting);
+
/**
* get_next_clocksource - Returns the selected clocksource
*/
struct clocksource *get_next_clocksource(void)
{
spin_lock(&clocksource_lock);
- if (next_clocksource) {
+ if (next_clocksource && finished_booting) {
curr_clocksource = next_clocksource;
next_clocksource = NULL;
}


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