RT Latency on Atmel Processors

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

 



Hi all,

I try to get PREEMP_RT running on an Olimex SAM9-L9260 board. On this board
there is an AT91SAM9260 processor (ARM926EJ-S).

Unfortunately more or less nothing works out of the box, whenever I try to use
RT. I even have problems providing some useful data here (I'll try to explain
why).

I started with vanilla linux-2.6.31, no Atmel patch. Kernel .config was reduced
to a minium. Kernel boots without a problem. When I enable debugging options and
some tests like "Locking API Testsuite" I have no problems as well.

When I apply patch-2.6.31-rt11 but do not enable full RT the kernel boots. When
I try to get cyclictest (cyclictest -p99 -D5 -q -n) running I often get some
unexpected results which are somewhat hard to describe. When I run cyclictest
without any other process running (only /bin/ash from busybox) Max is often
smaller than 1000 us. Sometimes I get 50000 us (no RT yet, so that is ok). When
I start to ping -f the board, Max, Avg and Min start to increase, even if I stop
the ping command, all three values are constantly increasing. In the given
example above it is not uncommon that all three values are above 4'500'000. The
same happens if I start a telnetd daemon in addition and login on the board. The
fancy thing here that I can open new sessions and type some commands, therefore
the system is still responsive. Without using the "-n" options results are
often random numbers.

Whenever I switch to RT (still linux-2.6.31) the kernel boots until init should
be called. It is the same problem as here:
http://article.gmane.org/gmane.linux.rt.user/5108.

I switched back to linux-2.6.29.6 then. Main reason was that
linuxlink.timesys.com offers a RT linux for AT91SAM9260 (an indication that
should boot at least).

Vanilla 2.6.29.6 boots fine.

When I apply patch-2.6.29.6-rt23 without enabling RT, I get the same odd
behavior with cyclictest as described above.

When I enable RT, everything works more or less (tons of kernel Oops, often with
at least one call to JFFS2 in the backtrace). Without any load, Max from
cyclictest is below 500 us. If I ping -f the board Max goes up to ca. 8000 us.

When I compare this results with:

http://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch

it should be possible to get worst case latency below 150 us (for this kind of
processor). The problem with this page is that there are no details, about the
test environment. Was it measured with cyclictest? Was there anything running in
the background? Any testsuite that produces any load? Even details like, how
much influence the gcc version has, would be interesting. It would be nice if
anyone can post some details about their environment (especially ARM and PPC
environment, PPC is missing in the list, whatever the reason).

I thought then, ok let's track the source of the problem. I was reading
http://www.osadl.org/Realtime-Preempt-Kernel.kernel-rt.0.html then.

After enabling Function Tracing in the kernel, i was not able to compile the
kernel anymore. I'm using the latest Code Sourcery GCC for ARM. I found a fix
and if anyone is interested I'll post it here.

Second problem is that it seems that cyclictest does not exactly works together
with the current layout of debugfs (looks like some virtual files were moved
around).

Third problem ist when I try to interpret the output from debugfs I get
thousands of lines prefixed with the exact same time. It seems impossible for me
to get any idea, where the problem is.

I've to admit that currently have so many problems that I don't now where I
should start (write docs, fix tools, try to get more info about the Oops I get,
get into the problem that somehow the results from cyclictest are sometimes
totally wrong, ...).

Thanks for any clarification, hint, or detailed description of a working ARM
setup.

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