* [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.