Re: IBM test question
From: Sébastien Dugué <hidden>
Date: 2008-02-08 09:06:02
On Thu, 07 Feb 2008 17:27:53 +0100 Matthieu CASTET [off-list ref] wrote:
Hi Sébastien, Sébastien Dugué wrote:quoted
Hello Matthieu, On Thu, 07 Feb 2008 14:49:07 +0100 Matthieu CASTET [off-list ref] wrote:quoted
hi, I am trying to use some IBM rt test on arm. I define atomic_add to assert(i==1); return ++(v->counter); That's a bit ugly, but that should work for my need.That would be the poor man's atomic_inc() and not sure it really does what you think it does ;). Just for the record, pre-armv6 cores have no support for userland atomic operations (aside from swapping).I can, if I use a kernel helper :) [1]
Yep, but much slower.
BTW what should do the atomic_add. On i386 it does the atomic add and return the value in memory before the add (Exchange and Add).
Looking at the kernel and glibc, i386's atomic_add seems to be a void function (unless I missed something).
On powerpc, it seems to do the atomic add and return the new value.
Yes, both for kernel and glibc implementations.
quoted
quoted
But I have a problem with the sched_latency test. On my platform the thread creation is quite slow (25ms), so with the default value, I got a PERIOD MISSED.The IBM RT tests have been integrated into the LTP and I recently sent some updates to those testcases. Notably one the patches did improve the thread starting time. Other patches did touch this particular test too. Could you try the latest release (from LTP) and tell me if things have improved for you.Ok I will try them.quoted
Also, the PASS/FAIL criteria are quite arbitrary. They happen to be fine for most recent PC-class hardware but surely not for embedded systems and should be tuned according to your RT requirements.Yes I saw that.quoted
quoted
Also my cpu is quite slow (compared to last intel core or powerpc). For example a sched_jitter run take 6s.Ouch! What's your CPU (core type, clock speed)?Arm926 ~104.65 Mhz
ARMv5 core then. You'll need the kernel helper then to be trully atomic. Sebastien.