Re: [PATCH] to fix xtime lock for in the RT kernel patch
From: George Anzinger
Date: Fri Jan 21 2005 - 03:41:43 EST
Ingo Molnar wrote:
* George Anzinger <george@xxxxxxxxxx> wrote:
how about the patch below? One of the important benefits of the
threaded timer IRQ is the ability to make xtime_lock a mutex.
The problem is that that removes the
cur_timer->mark_offset();
do_timer(regs);
in time. [...]
i'm not sure i understand what you mean. My change does:
| @@ -294,6 +313,7 @@ irqreturn_t timer_interrupt(int irq, voi
| write_seqlock(&xtime_lock);
|
| cur_timer->mark_offset();
| + do_timer(regs);
|
| do_timer_interrupt(irq, NULL, regs);
so ->mark_offset and do_timer() go together, and happen under
xtime_lock. What problem is there if we do this?
We are trying to get an accurate picture of when, exactly in time, jiffies
changes. We then want to have that marked (mark_offset) with a TCS (or other
clock) so we can tell how many nanoseconds past that time any given point of
time is. This is used by gettimeofday. So if we wait till the thread gets
control, we have a lot of variability in when, exactly, the event took place.
We already have interrupt latency in the mix, but, by moving it to a thread, we
also add scheduling delays due to other RT threads (the actual intent of making
it a thread, right).
We can handle (do today) some variability in this area, but, at least for RT
systems, we would like to get this down to a small a window as possible. The
changes I am suggesting are aimed at getting a good a handle on the current time
as possible. They say nothing about how accurate we are in expiring a timer,
for example.
Ingo
--
George Anzinger george@xxxxxxxxxx
High-res-timers: http://sourceforge.net/projects/high-res-timers/
-
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/