Latency with Real-Time Preemption with 2.6.12

From: Sundar Narayanaswamy
Date: Wed Aug 17 2005 - 21:41:07 EST


Hi,
I am trying to experiment using 2.6.12 kernel with the realtime-preempt
V0.7.51-38 patch to determine the kernel preemption latencies with the
CONFIG_PREEMPT_RT mode. The test program I wrote does the following on
a thread with highest priority (99) and SCHED_FIFO policy to simulate
a real time thread.

t1 = gettimeofday
nanosleep(for 3 ms)
t2 = gettimeofday

I was expecting to see the difference t2-t1 to be close to 3 ms. However,
the smallest difference I see is 4 milliseconds under no system load,
and the difference is as high as 25 milliseconds under moderate to
heavy system load (mostly performing disk I/O).

Based on the articles and the mails I read on this list, I understand that
worst case latencies of 1 ms (or less) should be possible using the RT
Preemption patch, but I am unable to get anything less than 4 millseconds
even with sleep times smaller than 3 ms. I am running the tests on a SBC
with a 1.4G Pentium M, 512M RAM, 1GB compact flash (using IDE).

I believe I have the high resolution timer working correctly, because if I
comment out the sleep line above t2-t1 is consistenly 0 or 1 microsecond.

Following earlier discussions (in July) in this list, I tried to set kernel
configuration parameters like CONFIG_LATENCY_TRACE to get tracing/debug
information, but I didn't find these parameters in my .config file.

I appreciate your suggestions/insights into the situation and steps that I
should try to get more debug/tracing information that might help to understand
the cause of high latency.

Thanks for your help,
sundar.


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-
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/