From: Steven Rostedt <rostedt@goodmis.org>
To: Sundar Narayanaswamy <sundar007@yahoo.com>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: Latency with Real-Time Preemption with 2.6.12
Date: Wed, 17 Aug 2005 23:12:46 -0400 [thread overview]
Message-ID: <1124334766.5186.35.camel@localhost.localdomain> (raw)
In-Reply-To: <20050818023853.48406.qmail@web54406.mail.yahoo.com>
On Wed, 2005-08-17 at 19:38 -0700, Sundar Narayanaswamy wrote:
> 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).
That version of Ingo's patch does not implement High-Resolution Timers.
Thomas worked on merging this into the latest RT patch. Without
high-res timers, the best you may ever get is 4ms. This is because
nanosleep is to guarantee _at_least_ 3 ms. So you have the following
situation:
0 1 2 3 4 (ms)
+---------------+---------------+----------------+---------------+--->
^ ^
| |
Start here 0+3 = 3 here we have the response
If we look at this in smaller units than ms, we started on 0.8ms and
responded at 3.2ms where we have 3.2 - 0.8 = 2.4 which is less than 3ms.
So since Ingo's patch doesn't increase the resolution of the timers from
a jiffy (which is currently 1ms) Linux is forced to add one more than
you need.
>
> 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.
I don't think you have the high res timer working, since there is no
high res timer in that kernel.
>
> 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.
It's not a high latency. It's doing exactly as it is suppose to, since
the nanosleep doesn't have high-res support (in that kernel). If you
really want to measure latency, you need to add a device or something
and see what the response time of an interrupt going off to the time a
thread is woken to respond to it. Now with Ingo's that is really fast.
-- Steve
next prev parent reply other threads:[~2005-08-18 3:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-18 2:38 Latency with Real-Time Preemption with 2.6.12 Sundar Narayanaswamy
2005-08-18 3:12 ` Steven Rostedt [this message]
2005-08-18 22:29 ` George Anzinger
2005-08-19 0:23 ` Sundar Narayanaswamy
2005-08-19 1:22 ` Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1124334766.5186.35.camel@localhost.localdomain \
--to=rostedt@goodmis.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=sundar007@yahoo.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.