voluntary-preemption: understanding latency trace

From: Kevin Hilman
Date: Thu Sep 09 2004 - 05:44:23 EST


I'm seeing a mismatch between my manually-measured timings and the
timings I see in /proc/latency_trace.

I've got a SCHED_FIFO kernel thread at the highest priority
(MAX_USER_RT_PRIO-1) and it's sleeping on a wait queue. The wake is
called from an ISR. Since this thread is the highest priority in the
system, I expect it to run before the ISR threads and softIRQ threads
etc.

In the ISR I sample sched_clock() just before the call to wake_up()
and in the thread I sample sched_clock() again just after the call to
sleep. I'm seeing an almost 4ms latency between the call to wake_up
and the actual wakeup. However, in /proc/latency_trace, the worst
latency I see during the running of this test is <500us.

I must be misunderstanding how the latency traces are
started/stopped. Can anyone shed some light? Thanks.

My current setup is using -R5, running on a PII 400MHz system.

Kevin
http://hilman.org/
-
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/