Re: 2.6.33.7-rt29 PREEMPT_RT worse latency than PREEMPT_DESKTOP on AT91?

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

 



 On 15/09/10 17:08, Thomas Gleixner wrote:
On Wed, 15 Sep 2010, Agustin Ferrin Pozuelo wrote:
  On 27/08/10 11:35, Thomas Gleixner wrote:
On Mon, 23 Aug 2010, Agustin Ferrin Pozuelo wrote:
Sorry, my test setup is not very comprehensive at the moment. I have some
overnight/overweekend results at hand with millions of loops:

     PREEMPT-DESKTOP:
     root@at91sam9263cpc:~# time cyclictest -i 70000 -p 80 -h 700 -r
Oh, you are running cyclictest with a signal based timer and relative
time. Any reason for this ?
Not sure about the "signal based timer", is there an alternative to it? (clock_nanosleep?)

The relative time setting "-r" I put there to prevent issues with some specific configurations, specially when the interval was smaller than max latency, in which case cyclictest would freeze or give unusable results. That was happening often before using the workaround for the 9263 ethernet bug which induced long latencies (non RT at all).

What happens if you change the command line to

    cyclictest -i 70000 -p 80 -n

Interesting, "-n" setting (use clock_nanosleep) brings down the min and avg latencies for 35~40 us. (~70 when using "-r") on the PREEMPT-DESKTOP configuration:

    root@at91sam9263cpc:~# cyclictest -i 70000 -p 80 -l 1000
    Clock resolution: 0.000000001 (s.ns)
    policy: fifo: loadavg: 0.14 0.13 0.06 1/36 954
T: 0 ( 876) P:80 I:70000 C: 1000 Min: 107 Act: 135 Avg: 164 Max: 262

    root@at91sam9263cpc:~# cyclictest -i 70000 -p 80 -l 1000 -n
    Clock resolution: 0.000000001 (s.ns)
    policy: fifo: loadavg: 0.14 0.12 0.05 1/37 874
T: 0 ( 795) P:80 I:70000 C: 1000 Min: 72 Act: 127 Avg: 125 Max: 275

    root@at91sam9263cpc:~# cyclictest -i 70000 -p 80 -l 1000 -r
    Clock resolution: 0.000000001 (s.ns)
    policy: fifo: loadavg: 0.04 0.10 0.06 1/36 1035
T: 0 ( 956) P:80 I:70000 C: 1000 Min: 145 Act: 205 Avg: 203 Max: 348

    root@at91sam9263cpc:~# cyclictest -i 70000 -p 80 -l 1000 -r -n
    Clock resolution: 0.000000001 (s.ns)
    policy: fifo: loadavg: 0.01 0.07 0.05 2/37 1115
T: 0 ( 1037) P:80 I:70000 C: 1000 Min: 87 Act: 135 Avg: 150 Max: 439

(Longer runs giving similar results)
Note that"-r" seems to lower CPU usage, is loadavg 0.14 == 14% or 0.0014%?
Right now I don't have the PREEMPT-RT version available for this test, should I expect big improvement there?

I am assuming context switching is more expensive on PREEMPT-RT under ARM9,
where it seems already a bit expensive.
No, the context switch is equally expensive, but signal delivery might
be a bit more overhead on -RT
Thanks for the clarification and tips!
Regards,
--Agustín.

--
[CG logo]

Agustín Ferrín Pozuelo

Embedded Systems Engineer

CG Power Systems Ireland Limited

Automation Systems Division

Herbert House, Harmony Row, Dublin 2, Ireland.

Phone: +353 1 4153700 Web: www.cgglobal.com <http://www.cgglobal.com>

Save the environment. Please print only if essential.



CG DISCLAIMER: This email contains confidential information. It is intended exclusively for the addressees. If you are not an addressee, you must not store, transmit or disclose its contents. Instead please notify the sender immediately; and permanently delete this e-mail from your computer systems. We have taken reasonable precautions to ensure that no viruses are present. However, you must check this email and the attachments, for viruses. We accept no liability whatsoever, for any detriment caused by any transmitted virus.

--
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