Steven Seeger wrote:
Yous seem to be running in periodic timing mode, with a default slice of 125
us.
Which parameters are passed to rt_task_set_periodic() and
rt_task_wait_period() in
your sampling task?


I am confused why this matters? You said the latency test shows my realtime
does not work, so clearly the problem I have isn't specific to my code, but
rather to my system, right?


The latency figures obtained are totally braindamage, so either something weird is happening in 1) the real-time core, or 2) with the hw config selected, or 3) in the application.

1) is always possible, but you might also consider that early timer shots beyond two _milliseconds_ (-2293218 ns) would have been caught by a few other people on the list; this has not been the case yet. So considering a massive breakage in the real-time behaviour of that magnitude at this point of the investigation seems a bit premature.

2) Geode brings its own set of issues. SMI is one of them. Something may also go wrong when upgrading a kernel while reusing an old config file. Given your past answers, I now take for granted that it is not the case, but asking first is better.

3) v2.1 has changed a lot of things wrt v2.0, including the way some key configurations are made. Timing mode is one of those critical changes, and maybe one of those changes has had a negative impact in some unexpected way. Looking at the application to see what it requests to the real-time core and how it does it, is the usual way to start digging the issue.

Here is my call to rt_task_set_periodic:

rt_task_set_periodic(&task, TM_NOW, rt_timer_ns2ticks(500000));


Ok, I think we might be dealing with a timing mode issue. Could you try disabling CONFIG_XENO_OPT_TIMING_PERIODIC in your kernel config (Timing menu) and re-run the latency test? TIA,

I don't pass any parameters to rt_task_wait_period()


Yep, my mistake.

Steven




--

Philippe.

Reply via email to