SV: Configuration of real-time tasks in PREEMPT_RT kernels > 2.6.33

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----Oprindelig meddelelse-----
Fra: linux-rt-users-owner@xxxxxxxxxxxxxxx
[mailto:linux-rt-users-owner@xxxxxxxxxxxxxxx] På vegne af Wolfgang Wallner
Sendt: 26. august 2013 14:29
Til: linux-rt-users@xxxxxxxxxxxxxxx
Emne: Configuration of real-time tasks in PREEMPT_RT kernels > 2.6.33
>
>Dear RT community,
>
>I have a question regarding the configuration of real-time tasks in
PREEMPT _RT kernels > 2.6.33.
>Up to now, I only have experience with 2.6.33-rt.
>
>I use the openPOWERLINK[1] real-time ethernet stack, and have it running
on an x86-box with Ubuntu 13.04.
>I try to use it with two different kernel versions:
>* 2.6.33.7.2-rt30
>* 3.2.48-rt69
>
>When I use kernel version 2.6.33, I get very good results (jitter of
ethernet frames on the network < +/-10us).
>But when I use kernel version 3.2, the results are much worse. The jitter
on the network increases up to +/-50us.
>
>In my configuration, the openPOWERLINK stack consists of a kernel module
(data link layer) and a user space application.
>
>I know that in 2.6.33 there were splitted softirqs, and that it was
possible to configure each thread with its own priority.
>What are the steps that need to be done in 3.x to achieve similar results
as in 2.6.33?
>
>kind regards,
>Wolfgang Wallner
>
>[1] http://sourceforge.net/projects/openpowerlink/
>
>PS: Running cyclictest (e.g. sudo cyclictest -p 99 -n -i 500) on both
kernels shows very similar results (avg latency: 15us, max latency 35us).

Hi Wolfgang,

>From the openPOWERLINK documentation (linux-x86.txt):

Kernel 3.x
   The behaviour of a 3.X real-time kernel changed. Splitted softirq
threads
   are no longer available. To get a good real-time behaviour the
following
   steps have to be made:
   1. A multicore processor is required for these optimizations!
   2. Ensure that the following configuration options are set for your
      real-time kernel:
      CONFIG_RT_GROUP_SCHED is not set
      CONFIG_RCU_BOOST=y
      CONFIG_RCU_BOOST_PRIO=99
   3. Isolate the second core of the multi-core processor to be used
      exclusively for openPOWERLINK by specifying the kernel-commandline
parameter
      isolcpus=1
   4. Set the default interrupt affinity to all other cores, e.g. for a
      dual-core system to core 0 by setting the kernel-commandline
parameter
      irqaffinity=0
   5. Disable IRQ balancing by disable irqbalance. This depends on your
      Linux distribution. For example in Ubuntu edit
/etc/default/irqbalance

So to get similar performance on 3.x, it seems that you'll need to assign
a core solely for the openPOWERLINK stack. I've wondered a bit about
whether there might be a different solution myself, but hadn't had the
time to investigate much further.

Best regards,
Simon Falsig
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux