Re: 2.6.14-rc4-rt7

From: William Weston
Date: Thu Oct 27 2005 - 17:08:33 EST


On Wed, 26 Oct 2005, Steven Rostedt wrote:

> Here's a updated patch.
>
> Index: linux-2.6.14-rc5-rt7/kernel/time/timeofday.c
> ===================================================================
> --- linux-2.6.14-rc5-rt7.orig/kernel/time/timeofday.c 2005-10-26 16:57:03.000000000 -0400
> +++ linux-2.6.14-rc5-rt7/kernel/time/timeofday.c 2005-10-26 22:10:32.000000000 -0400
> @@ -232,6 +232,12 @@
> unsigned long seq;
> ktime_t prev, now;
> nsec_t mc, prev_st, curr_st;
> + unsigned long flags;
> +
> + raw_local_irq_save(flags);
> + prev = per_cpu(prev_mono_time, cpu);
> + prev_st = per_cpu(prev_system_time, cpu);
> + raw_local_irq_restore(flags);
>
> /* atomically read __get_monotonic_clock_ns() */
> do {
> @@ -242,11 +248,7 @@
> } while (read_seqretry(&system_time_lock, seq));
>
> ns_to_timespec(ts, mc);
> -
> now = timespec_to_ktime(*ts);
> - prev = per_cpu(prev_mono_time, cpu);
> -
> - prev_st = per_cpu(prev_system_time, cpu);
> curr_st = system_time;
>
> if (ktime_cmp(now, <, prev)) {
> @@ -264,8 +266,12 @@
> ktime_to_timespec(ts, prev);
> return;
> }
> +
> + raw_local_irq_save(flags);
> per_cpu(prev_mono_time, cpu) = now;
> per_cpu(prev_system_time, cpu) = system_time;
> + raw_local_irq_restore(flags);
> +
> put_cpu();
> }

Hi Steven. I think you fixed it!

The xeon-smt box has been up for over 30 minutes with this patch, and no
warnings as of yet. Also, 'rtc_wakeup -f 1024' is reporting a max jitter
of 131us (decent for this box considering its hardware induced latencies)
instead of the >500us jitter seen earlier.

I'll try the patch out on the athlon box (which does mostly audio/midi)
when I get home.


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