* [Xenomai-help] Time for rt_mutex_acquire @ 2007-08-16 13:11 Dirk Eibach 2007-08-16 18:14 ` Gilles Chanteperdrix 0 siblings, 1 reply; 6+ messages in thread From: Dirk Eibach @ 2007-08-16 13:11 UTC (permalink / raw) To: Xenomai help Hello, I'm wondering how long a rt_mutex_acquire is supposed to take on a PPC405 platform. I'm getting times about 50 usec here, which is too much for my application. Is anything wrong in my kernel/xenomai configuration or is this time to expected? Cheers, Dirk ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-help] Time for rt_mutex_acquire 2007-08-16 13:11 [Xenomai-help] Time for rt_mutex_acquire Dirk Eibach @ 2007-08-16 18:14 ` Gilles Chanteperdrix 2007-08-17 11:00 ` Dirk Eibach 0 siblings, 1 reply; 6+ messages in thread From: Gilles Chanteperdrix @ 2007-08-16 18:14 UTC (permalink / raw) To: Dirk Eibach; +Cc: Xenomai help Dirk Eibach wrote: > Hello, > > I'm wondering how long a rt_mutex_acquire is supposed to take on a PPC405 > platform. I'm getting times about 50 usec here, which is too much for my > application. Is anything wrong in my kernel/xenomai configuration or is > this time to expected? How do you measure this ? Are you sure the mutex is free when you try to acquire it ? -- Gilles Chanteperdrix. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-help] Time for rt_mutex_acquire 2007-08-16 18:14 ` Gilles Chanteperdrix @ 2007-08-17 11:00 ` Dirk Eibach 2007-08-17 12:04 ` Gilles Chanteperdrix 0 siblings, 1 reply; 6+ messages in thread From: Dirk Eibach @ 2007-08-17 11:00 UTC (permalink / raw) To: gilles.chanteperdrix; +Cc: Xenomai help gilles.chanteperdrix@xenomai.org wrote: > Dirk Eibach wrote: > > Hello, > > > > I'm wondering how long a rt_mutex_acquire is supposed to take on a PPC405 > > platform. I'm getting times about 50 usec here, which is too much for my > > application. Is anything wrong in my kernel/xenomai configuration or is > > this time to expected? > > How do you measure this ? Are you sure the mutex is free when you try to > acquire it ? > I prepared a small testcase. It shows about 8.300 ticks, which is about 30 usec on my platform (266MHz). #include <stdio.h> #include <signal.h> #include <unistd.h> #include <sys/mman.h> #include <native/mutex.h> #include <native/task.h> #include <native/timer.h> #include <rtdm/rtserial.h> #define TOGGLE \ do {rt_dev_ioctl(0, _IOR(RTIOC_TYPE_SERIAL, 0xdf, int), 0);} while(0); RT_TASK demo_task; /* NOTE: error handling omitted. */ static void ppc_getcounter(unsigned long long *v) { register unsigned long tbu, tb, tbu2; loop: asm volatile ("mftbu %0" : "=r" (tbu) ); asm volatile ("mftb %0" : "=r" (tb) ); asm volatile ("mftbu %0" : "=r" (tbu2)); if (__builtin_expect(tbu != tbu2, 0)) goto loop; /* The slightly peculiar way of writing the next lines is compiled better by GCC than any other way I tried. */ ((long*)(v))[0] = tbu; ((long*)(v))[1] = tb; } void demo(void *arg) { RT_MUTEX mutex; rt_mutex_create (&mutex, NULL); int file_descriptor = rt_dev_open("rtser0", O_RDWR | O_NOCTTY); unsigned long long count0, count1; while (1) { ppc_getcounter(&count0); rt_mutex_acquire(&mutex, TM_INFINITE); ppc_getcounter(&count1); printf("ticks for rt_mutex_acquire: %lld\n", count1- count0); rt_task_sleep(rt_timer_ns2ticks(1 * 1000000000llu)); rt_mutex_release(&mutex); rt_task_sleep(rt_timer_ns2ticks(1 * 1000000000llu)); } } void catch_signal(int sig) { } int main(int argc, char* argv[]) { signal(SIGTERM, catch_signal); signal(SIGINT, catch_signal); /* Avoids memory swapping for this program */ mlockall(MCL_CURRENT|MCL_FUTURE); /* * Arguments: &task, * name, * stack size (0=default), * priority, * mode (FPU, start suspended, ...) */ rt_task_create(&demo_task, "trivial", 0, 99, 0); /* * Arguments: &task, * task function, * function argument */ rt_task_start(&demo_task, &demo, NULL); pause(); rt_task_delete(&demo_task); } -- Dirk Eibach Entwicklung Guntermann & Drunck GmbH Systementwicklung ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-help] Time for rt_mutex_acquire 2007-08-17 11:00 ` Dirk Eibach @ 2007-08-17 12:04 ` Gilles Chanteperdrix 0 siblings, 0 replies; 6+ messages in thread From: Gilles Chanteperdrix @ 2007-08-17 12:04 UTC (permalink / raw) To: Dirk Eibach; +Cc: Xenomai help On 8/17/07, Dirk Eibach <eibach@domain.hid> wrote: > gilles.chanteperdrix@xenomai.org wrote: > > Dirk Eibach wrote: > > > Hello, > > > > > > I'm wondering how long a rt_mutex_acquire is supposed to take on a PPC405 > > > platform. I'm getting times about 50 usec here, which is too much for my > > > application. Is anything wrong in my kernel/xenomai configuration or is > > > this time to expected? > > > > How do you measure this ? Are you sure the mutex is free when you try to > > acquire it ? > > > > I prepared a small testcase. It shows about 8.300 ticks, which is about 30 > usec on my platform (266MHz). Did you try to call ppc_getcounter twice in a raw to measure the overhead of this function ? -- Gilles Chanteperdrix ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-help] Time for rt_mutex_acquire
@ 2007-08-17 12:13 Dirk Eibach
2007-08-17 12:45 ` Jan Kiszka
0 siblings, 1 reply; 6+ messages in thread
From: Dirk Eibach @ 2007-08-17 12:13 UTC (permalink / raw)
To: Xenomai help
gilles.chanteperdrix@xenomai.org wrote:
> On 8/17/07, Dirk Eibach <eibach@domain.hid> wrote:
>> gilles.chanteperdrix@xenomai.org wrote:
>>> Dirk Eibach wrote:
>>> > Hello,
>>> >
>>> > I'm wondering how long a rt_mutex_acquire is supposed to take on a PPC405
>>> > platform. I'm getting times about 50 usec here, which is too much for my
>>> > application. Is anything wrong in my kernel/xenomai configuration or is
>>> > this time to expected?
>>>
>>> How do you measure this ? Are you sure the mutex is free when you try to
>>> acquire it ?
>>>
>> I prepared a small testcase. It shows about 8.300 ticks, which is about 30
>> usec on my platform (266MHz).
>
> Did you try to call ppc_getcounter twice in a raw to measure the
> overhead of this function ?
Calling ppc_getcounter twice in a raw results in 116 ticks.
Cheers.
--
Dirk Eibach
Entwicklung
Guntermann & Drunck GmbH Systementwicklung
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [Xenomai-help] Time for rt_mutex_acquire 2007-08-17 12:13 Dirk Eibach @ 2007-08-17 12:45 ` Jan Kiszka 0 siblings, 0 replies; 6+ messages in thread From: Jan Kiszka @ 2007-08-17 12:45 UTC (permalink / raw) To: Dirk Eibach; +Cc: Xenomai help [-- Attachment #1: Type: text/plain, Size: 1398 bytes --] Dirk Eibach wrote: > gilles.chanteperdrix@xenomai.org wrote: >> On 8/17/07, Dirk Eibach <eibach@domain.hid> wrote: >>> gilles.chanteperdrix@xenomai.org wrote: >>>> Dirk Eibach wrote: >>>> > Hello, >>>> > >>>> > I'm wondering how long a rt_mutex_acquire is supposed to take on a PPC405 >>>> > platform. I'm getting times about 50 usec here, which is too much for my >>>> > application. Is anything wrong in my kernel/xenomai configuration or is >>>> > this time to expected? >>>> >>>> How do you measure this ? Are you sure the mutex is free when you try to >>>> acquire it ? >>>> >>> I prepared a small testcase. It shows about 8.300 ticks, which is about 30 >>> usec on my platform (266MHz). >> Did you try to call ppc_getcounter twice in a raw to measure the >> overhead of this function ? > > Calling ppc_getcounter twice in a raw results in 116 ticks. Is that service RT-safe, means does it stay in user space and issue no Linux syscall? Maybe some of the PPC gurus can comment on this as well (/me is lacking comparative numbers). Besides this, you may want to try running the latency tracer on your scenario. xntrace_user_start() and xntrace_user_stop(0) would frame the path you want to measure, /proc/ipipe/trace/frozen will show its kernel side. For sure, that tool will increase the latency even more, but it may show better what goes on. Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 250 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-08-17 12:45 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-08-16 13:11 [Xenomai-help] Time for rt_mutex_acquire Dirk Eibach 2007-08-16 18:14 ` Gilles Chanteperdrix 2007-08-17 11:00 ` Dirk Eibach 2007-08-17 12:04 ` Gilles Chanteperdrix -- strict thread matches above, loose matches on Subject: below -- 2007-08-17 12:13 Dirk Eibach 2007-08-17 12:45 ` Jan Kiszka
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.