From: Ingo Molnar <mingo@elte.hu>
To: Kristian Benoit <kbenoit@opersys.com>
Cc: linux-kernel@vger.kernel.org, paulmck@us.ibm.com, bhuey@lnxw.com,
andrea@suse.de, tglx@linutronix.de, karim@opersys.com,
pmarques@grupopie.com, bruce@andrew.cmu.edu,
nickpiggin@yahoo.com.au, ak@muc.de, sdietrich@mvista.com,
dwalker@mvista.com, hch@infradead.org, akpm@osdl.org,
rpm@xenomai.org
Subject: Re: PREEMPT_RT and I-PIPE: the numbers, take 3
Date: Thu, 30 Jun 2005 07:55:35 +0200 [thread overview]
Message-ID: <20050630055535.GB23962@elte.hu> (raw)
In-Reply-To: <42C320C4.9000302@opersys.com>
* Kristian Benoit <kbenoit@opersys.com> wrote:
> This is the 3rd run of our tests.
thanks for the testing!
> Here are the changes since last time:
>
> - Modified the IRQ latency measurement code on the logger to do a
> busy- wait on the target instead of responding to an interrupt
> triggered by the target's "reply". As Ingo had suggested, this very
> much replicates what lpptest.c does. In fact, we actually copied
> Ingo's loop.
[...]
> We stand corrected as to the method that was used to collect interrupt
> latency measurements. Ingo's suggestion to disable all interrupts on
> the logger to collect the target's response does indeed mostly
> eliminate logger-side latencies. However, we've sporadically ran into
> situations where the logger locked-up, whereas it didn't before when
> we used to measure the response using another interrupt. This happened
> around 3 times in total over all of our test runs (and that's a lot of
> test runs), so it isn't systematic, but it did happen. [...]
are you timing-out based on a TSC-based deadline like lpptest does? If
an interrupt gets lost then the logger may lock up, if it's looping with
interrupts disabled.
> +--------------------+------------+------+-------+------+--------+
> | Kernel | sys load | Aver | Max | Min | StdDev |
> +====================+============+======+=======+======+========+
> +--------------------+------------+------+-------+------+--------+
> | | None | 5.7 | 47.5 | 5.7 | 0.2 |
> | | Ping | 7.0 | 63.4 | 5.7 | 1.6 |
> | with RT-V0.7.50-35 | lm. + ping | 7.9 | 66.2 | 5.7 | 1.9 |
> | | lmbench | 7.4 | 51.8 | 5.7 | 1.4 |
> | | lm. + hd | 7.3 | 53.4 | 5.7 | 1.9 |
> | | DoHell | 7.9 | 59.1 | 5.7 | 1.8 |
> +--------------------+------------+------+-------+------+--------+
> We don't know whether we've hit the maximums Ingo alluded to, but we
> did integrate his dohell script and the only noticeable difference was
> with Linux where the maximum jumped to 525.4 micro-seconds. But that
> was with vanilla only. Neither PREEMPT_RT nor I-PIPE exhibited such
> maximums under the same load.
i'm seeing roughly half of that worst-case IRQ latency on similar
hardware (2GHz Athlon64), so i believe your system has some hardware
latency that masks the capabilities of the underlying RTOS. It would be
interesting to see IRQSOFF_TIMING + LATENCY_TRACE critical path
information from the -RT tree. Just enable those two options in the
.config (on the host side), and do:
echo 0 > /proc/sys/kernel/preempt_max_latency
and the kernel will begin measuring and tracing worst-case latency
paths. Then put some load on the host when you see a 50+ usec latency
reported to the syslog, send me the /proc/latency_trace. It should be a
matter of a few minutes to capture this information.
also, i'm wondering why you tested with only 1,000,000 samples. I
routinely do 100,000,000 sample tests, and i did one overnight test with
more than 1 billion samples, and the latency difference is quite
significant between say 1,000,000 samples and 100,000,000 samples. All
you need to do is to increase the rate of interrupts generated by the
logger - e.g. my testbox can handle 80,000 irqs/sec with only 15% CPU
overhead.
Ingo
next prev parent reply other threads:[~2005-06-30 5:57 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-29 22:29 Kristian Benoit
2005-06-29 22:57 ` Bill Huey
2005-06-29 23:03 ` Andrea Arcangeli
2005-06-29 23:33 ` Bill Huey
2005-06-29 23:54 ` Paul E. McKenney
2005-06-30 1:50 ` Bill Huey
2005-06-30 1:56 ` Nick Piggin
2005-06-30 2:14 ` Bill Huey
2005-06-30 2:09 ` Nick Piggin
2005-06-30 2:18 ` Bill Huey
2005-06-30 6:50 ` Steven Rostedt
2005-06-30 14:15 ` Zwane Mwaikambo
2005-06-30 19:08 ` Bill Huey
2005-06-30 2:01 ` Nicolas Pitre
2005-06-30 2:16 ` Bill Huey
2005-06-30 2:19 ` Paul E. McKenney
2005-06-30 14:59 ` Bill Davidsen
2005-06-30 18:59 ` Bill Huey
2005-06-30 7:07 ` Ingo Molnar
2005-06-30 15:43 ` Paul E. McKenney
2005-06-30 16:17 ` Ingo Molnar
2005-06-30 16:48 ` Sven-Thorsten Dietrich
2005-06-30 23:08 ` Paul E. McKenney
2005-06-29 23:49 ` Paul E. McKenney
2005-06-30 5:55 ` Ingo Molnar [this message]
2005-06-30 10:32 ` Ingo Molnar
2005-06-30 16:55 ` Ingo Molnar
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=20050630055535.GB23962@elte.hu \
--to=mingo@elte.hu \
--cc=ak@muc.de \
--cc=akpm@osdl.org \
--cc=andrea@suse.de \
--cc=bhuey@lnxw.com \
--cc=bruce@andrew.cmu.edu \
--cc=dwalker@mvista.com \
--cc=hch@infradead.org \
--cc=karim@opersys.com \
--cc=kbenoit@opersys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=paulmck@us.ibm.com \
--cc=pmarques@grupopie.com \
--cc=rpm@xenomai.org \
--cc=sdietrich@mvista.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®