From: Chris Friesen <chris.friesen@windriver.com>
To: Corey Minyard <cminyard@mvista.com>, <rolf.freitag@email.de>,
<linux-rt-users@vger.kernel.org>
Subject: Re: Why is real time pinging not possible with RT kernels?
Date: Mon, 12 Jun 2017 10:45:29 -0600 [thread overview]
Message-ID: <593EC529.80508@windriver.com> (raw)
In-Reply-To: <f60f3487-64d7-141c-6d6c-aec8318a87da@mvista.com>
On 06/12/2017 06:57 AM, Corey Minyard wrote:
> On 06/10/2017 01:13 PM, rolf.freitag@email.de wrote:
>> Hi,
>>
>> I tried ping as a minimal latency test, e. g.
>>
>> ionice -c3 -p $$
>> renice +19 -p $$
>> ping -q -s 28 -l 1 -p 0f1e2d3c4b5a6978 -i 0.001 localhost
>>
>> but when cyclictest shows a worst-case latency of 40 mikroseconds,
>> ping shows more than 10,000 (after 1 day run).
>> I tried different kernels, e. g.
>> SMP PREEMPT RT Debian 4.6.4-1~bpo8+1 (2016-08-11) x86_64
>> but with the same result, low cyclictest values, high ping values.
>> What is the reason?
>
> Since no one else has answered, I guess I will.
>
> Creating a real-time *system* is hard work. Just running a program on a
> real-time OS does not magically make it a real-time system. You really
> have to know what you are doing. I suggest you read "POSIX.4
> Programmers Guide: Programming for the Real World" for an intro to
> the subject. It's fairly close to what Linux does, though there are things
> that Linux does beyond what is in there.
>
> A few notes on what you have done:
>
> * ionice doesn't affect network I/O.
> * renice does not set real-time priorities.
Good point...the OP probably wants something like "sudo chrt <prio> <cmd> ...."
> * You don't do anything with memory locking. What happens
> if memory in your program gets paged out then is required?
I suppose this would require a custom "ping" client to ensure all necessary
memory is allocated and locked before starting the actual ping.
> * Something on the other end of the ping is running, too. It
> also needs to be real-time, too, and it's not by default.
The standard ICMP ping would be handled by the kernel. With linux-rt I guess
you'd have the ethernet interrupt thread involved as well as ksoftirqd?
Chris
next prev parent reply other threads:[~2017-06-12 16:45 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-10 18:13 Why is real time pinging not possible with RT kernels? rolf.freitag
2017-06-12 5:10 ` Chris Friesen
2017-06-12 12:57 ` Corey Minyard
2017-06-12 13:17 ` Peter C. Wallace
2017-06-12 16:45 ` Chris Friesen [this message]
2017-06-12 17:16 ` Corey Minyard
2017-06-17 8:37 ` rolf.freitag
2017-06-17 12:10 ` Corey Minyard
2017-06-13 11:58 ` Sebastian Andrzej Siewior
2017-06-13 16:06 ` Chris Friesen
2017-06-13 16:53 ` Corey Minyard
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=593EC529.80508@windriver.com \
--to=chris.friesen@windriver.com \
--cc=cminyard@mvista.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=rolf.freitag@email.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.