All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] Alchemy periodic task and timer overruns
@ 2015-11-30 10:57 Registrierungen
  2015-11-30 12:09 ` Gilles Chanteperdrix
  0 siblings, 1 reply; 3+ messages in thread
From: Registrierungen @ 2015-11-30 10:57 UTC (permalink / raw)
  To: xenomai

Hello,

i've got a problem using the periodic tasks.
I am using the alchemy tasks running 10kHz and i get a lot of  (up ~ 
10)  timer overruns / sek calling rt_task_wait_period. (each overrung 
has an amount of 1 ).

I extracted the task to a test program. In this example he is doing 
nothing between the rt_task_wait_period calls.
Ironically i get more (up ~ 100) timer overruns / sek calling 
rt_task_wait_period.

I am running a AMD-G Series, x86_64 with SMP.
I tested on xenomai 3rc2 and xenomai 3.0.1 (with optimized kernel, 
following the documentation) with same results.

Any idea, what is going wrong?
How can i find out where is the problem?

--Source--
using namespace std;

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <sys/mman.h>

#include <bitset>
#include <sys/io.h>

#include <task.h>

#define Timing_10000Hz 100000
#define Timing_1000Hz 1000000
#define Timing_100Hz 10000000
#define Timing_10Hz    100000000
#define Timing_1Hz 1000000000

void TestTaskDispatcher(void *arg) {
     unsigned long No;
     rt_task_set_periodic(NULL, TM_NOW, Timing_10000Hz);
     while (1)
       {
       int err = rt_task_wait_period(&No);
       if (err)
           rt_printf("Error on rt_task_wait_period %d %s %d\n",err, 
strerror(-err), No);

       rt_task_wait_period(NULL);
       }
}

int main(int argc, char *argv[])
{
     RT_TASK TestTask;
     cpu_set_t aCPU;
     CPU_ZERO(&aCPU);
     CPU_SET(0, &aCPU);
     rt_task_create(&TestTask,"TestTask",0,99,0);
     rt_task_set_affinity(&TestTask,&aCPU);
     rt_task_start(&TestTask, &TestTaskDispatcher, 0);
     pause();

}


-- Makefile--
prefix := $(shell xeno-config --prefix)
ifeq ($(prefix),)
$(error Please add <xeno-install-path>/bin to your PATH variable)
  FLAGS=-ggdb -Wall -O2  -lpthread -I/usr/xenomai/include 
-L/usr/xenomai/lib -lnative  -Xlinker -rpath -Xlinker /usr/xenomai/lib 
-lmuparser -L/usr/local/lib -I/usr/include/libxml2
  CC = g++
else
   CFLAGS := $(shell xeno-config --skin alchemy --cflags)
   LDFLAGS :=  $(shell xeno-config --skin alchemy --ldflags)

   FLAGS :=  $(CFLAGS) $(LDFLAGS) -O2  -ggdb
   CC := g++
endif

all: rtprocess

rtprocess: rtprocess.cpp $(MODS) $(GLOBS)
     $(CC) -o /Entwicklung/Runtime/rttest rttest.cpp   $(FLAGS)

------

regards,

   Sascha




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Xenomai] Alchemy periodic task and timer overruns
  2015-11-30 10:57 [Xenomai] Alchemy periodic task and timer overruns Registrierungen
@ 2015-11-30 12:09 ` Gilles Chanteperdrix
  2015-11-30 15:46   ` Philippe Gerum
  0 siblings, 1 reply; 3+ messages in thread
From: Gilles Chanteperdrix @ 2015-11-30 12:09 UTC (permalink / raw)
  To: Registrierungen; +Cc: xenomai

On Mon, Nov 30, 2015 at 11:57:49AM +0100, Registrierungen wrote:
> Hello,
> 
> i've got a problem using the periodic tasks.
> I am using the alchemy tasks running 10kHz and i get a lot of  (up ~ 
> 10)  timer overruns / sek calling rt_task_wait_period. (each overrung 
> has an amount of 1 ).
> 
> I extracted the task to a test program. In this example he is doing 
> nothing between the rt_task_wait_period calls.
> Ironically i get more (up ~ 100) timer overruns / sek calling 
> rt_task_wait_period.
> 
> I am running a AMD-G Series, x86_64 with SMP.
> I tested on xenomai 3rc2 and xenomai 3.0.1 (with optimized kernel, 
> following the documentation) with same results.
> 
> Any idea, what is going wrong?
> How can i find out where is the problem?

Do you observe the same problem with xenomai "latency" test? If yes,
then using the I-pipe tracer should help you. Note that all that is
documented in the "troubleshooting" guide:

http://xenomai.org/troubleshooting-a-dual-kernel-configuration/#the_latency_test_shows_high_latencies

-- 
					    Gilles.
https://click-hack.org


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Xenomai] Alchemy periodic task and timer overruns
  2015-11-30 12:09 ` Gilles Chanteperdrix
@ 2015-11-30 15:46   ` Philippe Gerum
  0 siblings, 0 replies; 3+ messages in thread
From: Philippe Gerum @ 2015-11-30 15:46 UTC (permalink / raw)
  To: Registrierungen; +Cc: Gilles Chanteperdrix, xenomai

On 11/30/2015 01:09 PM, Gilles Chanteperdrix wrote:
> On Mon, Nov 30, 2015 at 11:57:49AM +0100, Registrierungen wrote:
>> Hello,
>>
>> i've got a problem using the periodic tasks.
>> I am using the alchemy tasks running 10kHz and i get a lot of  (up ~ 
>> 10)  timer overruns / sek calling rt_task_wait_period. (each overrung 
>> has an amount of 1 ).
>>
>> I extracted the task to a test program. In this example he is doing 
>> nothing between the rt_task_wait_period calls.
>> Ironically i get more (up ~ 100) timer overruns / sek calling 
>> rt_task_wait_period.
>>
>> I am running a AMD-G Series, x86_64 with SMP.
>> I tested on xenomai 3rc2 and xenomai 3.0.1 (with optimized kernel, 
>> following the documentation) with same results.
>>
>> Any idea, what is going wrong?
>> How can i find out where is the problem?
> 
> Do you observe the same problem with xenomai "latency" test? If yes,
> then using the I-pipe tracer should help you. Note that all that is
> documented in the "troubleshooting" guide:
> 
> http://xenomai.org/troubleshooting-a-dual-kernel-configuration/#the_latency_test_shows_high_latencies
> 

Also, demo/altency implements the very same latency test using the
alchemy API, with rt_task_wait_period() and friends. You may want to
check whether such test works fine on your platform.

-- 
Philippe.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-11-30 15:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-30 10:57 [Xenomai] Alchemy periodic task and timer overruns Registrierungen
2015-11-30 12:09 ` Gilles Chanteperdrix
2015-11-30 15:46   ` Philippe Gerum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.