All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] rt_task_shadow returns always -EFAULT
@ 2009-07-16 13:15 Petr Cervenka
  2009-07-16 14:30 ` Philippe Gerum
  0 siblings, 1 reply; 14+ messages in thread
From: Petr Cervenka @ 2009-07-16 13:15 UTC (permalink / raw)
  To: xenomai-help


Hello,
the xenomai native function rt_task_shadow(...) always returns -EFAULT for me. Only happens in xenomai-2.5-rc2.

Same behaviour was also in 2.5-rc1, see note in my older post:
https://mail.gna.org/public/xenomai-help/2009-05/msg00024.html

Example code, in the end of this post:
https://mail.gna.org/public/xenomai-help/2009-05/msg00038.html

My configuration:
Athlon 64 X2 4600+
Kubuntu 7.10
linux-2.6.29.5 (also tried 2.6.30.1)
xenomai-2.5.-rc2

Best regards

Petr Cervenka


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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-16 13:15 [Xenomai-help] rt_task_shadow returns always -EFAULT Petr Cervenka
@ 2009-07-16 14:30 ` Philippe Gerum
  2009-07-17 11:17   ` Petr Cervenka
  0 siblings, 1 reply; 14+ messages in thread
From: Philippe Gerum @ 2009-07-16 14:30 UTC (permalink / raw)
  To: Petr Cervenka; +Cc: xenomai-help

On Thu, 2009-07-16 at 15:15 +0200, Petr Cervenka wrote:
> Hello,
> the xenomai native function rt_task_shadow(...) always returns -EFAULT for me. Only happens in xenomai-2.5-rc2.
> 
> Same behaviour was also in 2.5-rc1, see note in my older post:
> https://mail.gna.org/public/xenomai-help/2009-05/msg00024.html
> 
> Example code, in the end of this post:
> https://mail.gna.org/public/xenomai-help/2009-05/msg00038.html
> 
> My configuration:
> Athlon 64 X2 4600+
> Kubuntu 7.10
> linux-2.6.29.5 (also tried 2.6.30.1)
> xenomai-2.5.-rc2

Does this still break when the name is passed as illustrated below?

--- petr.c~	2009-07-16 15:50:46.000000000 +0200
+++ petr.c	2009-07-16 16:28:31.000000000 +0200
@@ -14,11 +14,12 @@
     RT_EVENT event;
     unsigned long mask;
     RTIME start, end;
+    char name[32];
     int res;
 
     mlockall(MCL_CURRENT | MCL_FUTURE);
 
-    res = rt_task_shadow(&mainTask, "main_task", MY_PRIORITY, 0);
+    res = rt_task_shadow(&mainTask, strcpy(name, "main_task"), MY_PRIORITY, 0);
     if (res < 0) {
         printf("rt_task_shadow(): %d (%s)\n", res, strerror(-res));
     }

> 
> Best regards
> 
> Petr Cervenka
> 
> _______________________________________________
> Xenomai-help mailing list
> Xenomai-help@domain.hid
> https://mail.gna.org/listinfo/xenomai-help
-- 
Philippe.




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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-16 14:30 ` Philippe Gerum
@ 2009-07-17 11:17   ` Petr Cervenka
  2009-07-17 12:05     ` Philippe Gerum
  0 siblings, 1 reply; 14+ messages in thread
From: Petr Cervenka @ 2009-07-17 11:17 UTC (permalink / raw)
  To: rpm; +Cc: xenomai-help


>On Thu, 2009-07-16 at 15:15 +0200, Petr Cervenka wrote:
>> Hello,
>> the xenomai native function rt_task_shadow(...) always returns -EFAULT for me. Only happens in xenomai-2.5-rc2.
>> 
>> Same behaviour was also in 2.5-rc1, see note in my older post:
>> https://mail.gna.org/public/xenomai-help/2009-05/msg00024.html
>> 
>> Example code, in the end of this post:
>> https://mail.gna.org/public/xenomai-help/2009-05/msg00038.html
>> 
>> My configuration:
>> Athlon 64 X2 4600+
>> Kubuntu 7.10
>> linux-2.6.29.5 (also tried 2.6.30.1)
>> xenomai-2.5.-rc2
>
>Does this still break when the name is passed as illustrated below?
>

No, it doesn't help.

I also tried the xenomai rtprint example -> same behavior. The rt_task_shadow() returns -EFAULT and any following rt_task_sleep() in that task returns -1. The other task works fine.
I will do some deeper examination of rt_task_shadow() code.
If you have any advices, what to send or what to try, i would like to hear it.

>--- petr.c~	2009-07-16 15:50:46.000000000 +0200
>+++ petr.c	2009-07-16 16:28:31.000000000 +0200
>@@ -14,11 +14,12 @@
>     RT_EVENT event;
>     unsigned long mask;
>     RTIME start, end;
>+    char name[32];
>     int res;
> 
>     mlockall(MCL_CURRENT | MCL_FUTURE);
> 
>-    res = rt_task_shadow(&mainTask, "main_task", MY_PRIORITY, 0);
>+    res = rt_task_shadow(&mainTask, strcpy(name, "main_task"), MY_PRIORITY, 0);
>     if (res < 0) {
>         printf("rt_task_shadow(): %d (%s)n", res, strerror(-res));
>     }
>
>> 
>> Best regards
>> 
>> Petr Cervenka
>> 
>> _______________________________________________
>> Xenomai-help mailing list
>> Xenomai-help@domain.hid
>> https://mail.gna.org/listinfo/xenomai-help
>-- 
>Philippe.
>
>
Petr


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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-17 11:17   ` Petr Cervenka
@ 2009-07-17 12:05     ` Philippe Gerum
  2009-07-17 13:32       ` Petr Cervenka
  0 siblings, 1 reply; 14+ messages in thread
From: Philippe Gerum @ 2009-07-17 12:05 UTC (permalink / raw)
  To: Petr Cervenka; +Cc: xenomai-help

On Fri, 2009-07-17 at 13:17 +0200, Petr Cervenka wrote:
> >On Thu, 2009-07-16 at 15:15 +0200, Petr Cervenka wrote:
> >> Hello,
> >> the xenomai native function rt_task_shadow(...) always returns -EFAULT for me. Only happens in xenomai-2.5-rc2.
> >> 
> >> Same behaviour was also in 2.5-rc1, see note in my older post:
> >> https://mail.gna.org/public/xenomai-help/2009-05/msg00024.html
> >> 
> >> Example code, in the end of this post:
> >> https://mail.gna.org/public/xenomai-help/2009-05/msg00038.html
> >> 
> >> My configuration:
> >> Athlon 64 X2 4600+
> >> Kubuntu 7.10
> >> linux-2.6.29.5 (also tried 2.6.30.1)
> >> xenomai-2.5.-rc2
> >
> >Does this still break when the name is passed as illustrated below?
> >
> 
> No, it doesn't help.
> 
> I also tried the xenomai rtprint example -> same behavior. The rt_task_shadow() returns -EFAULT and any following rt_task_sleep() in that task returns -1. The other task works fine.
> I will do some deeper examination of rt_task_shadow() code.
> If you have any advices, what to send or what to try, i would like to hear it.
> 

Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
identify which spot returns -EFAULT. I can't reproduce this issue on a
ppc target; I may try over x86 later, but this would speed up things if
you could spot the failing test before I'm able to switch to this.

> >--- petr.c~	2009-07-16 15:50:46.000000000 +0200
> >+++ petr.c	2009-07-16 16:28:31.000000000 +0200
> >@@ -14,11 +14,12 @@
> >     RT_EVENT event;
> >     unsigned long mask;
> >     RTIME start, end;
> >+    char name[32];
> >     int res;
> > 
> >     mlockall(MCL_CURRENT | MCL_FUTURE);
> > 
> >-    res = rt_task_shadow(&mainTask, "main_task", MY_PRIORITY, 0);
> >+    res = rt_task_shadow(&mainTask, strcpy(name, "main_task"), MY_PRIORITY, 0);
> >     if (res < 0) {
> >         printf("rt_task_shadow(): %d (%s)n", res, strerror(-res));
> >     }
> >
> >> 
> >> Best regards
> >> 
> >> Petr Cervenka
> >> 
> >> _______________________________________________
> >> Xenomai-help mailing list
> >> Xenomai-help@domain.hid
> >> https://mail.gna.org/listinfo/xenomai-help
> >-- 
> >Philippe.
> >
> >
> Petr
-- 
Philippe.




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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-17 12:05     ` Philippe Gerum
@ 2009-07-17 13:32       ` Petr Cervenka
  2009-07-17 13:52         ` Philippe Gerum
  0 siblings, 1 reply; 14+ messages in thread
From: Petr Cervenka @ 2009-07-17 13:32 UTC (permalink / raw)
  To: rpm; +Cc: xenomai-help

[-- Attachment #1: Type: text/plain, Size: 2419 bytes --]

>
>On Fri, 2009-07-17 at 13:17 +0200, Petr Cervenka wrote:
>> >On Thu, 2009-07-16 at 15:15 +0200, Petr Cervenka wrote:
>> >> Hello,
>> >> the xenomai native function rt_task_shadow(...) always returns -EFAULT for me. Only happens in xenomai-2.5-rc2.
>> >> 
>> >> Same behaviour was also in 2.5-rc1, see note in my older post:
>> >> https://mail.gna.org/public/xenomai-help/2009-05/msg00024.html
>> >> 
>> >> Example code, in the end of this post:
>> >> https://mail.gna.org/public/xenomai-help/2009-05/msg00038.html
>> >> 
>> >> My configuration:
>> >> Athlon 64 X2 4600+
>> >> Kubuntu 7.10
>> >> linux-2.6.29.5 (also tried 2.6.30.1)
>> >> xenomai-2.5.-rc2
>> >
>> >Does this still break when the name is passed as illustrated below?
>> >
>> 
>> No, it doesn't help.
>> 
>> I also tried the xenomai rtprint example -> same behavior. The rt_task_shadow() returns -EFAULT and any following rt_task_sleep() in that task returns -1. The other task works fine.
>> I will do some deeper examination of rt_task_shadow() code.
>> If you have any advices, what to send or what to try, i would like to hear it.
>> 
>
>Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
>identify which spot returns -EFAULT. I can't reproduce this issue on a
>ppc target; I may try over x86 later, but this would speed up things if
>you could spot the failing test before I'm able to switch to this.
>

Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
But most attempts to confirm, that the value is returned by line:
	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
				NULL);
where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
--- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
+++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
@@ -241,6 +241,7 @@
        pthread_setspecific(__native_tskey, NULL);
        free(self);
 #endif /* !HAVE___THREAD */
+       rt_task_set_mode(0, 0, NULL);
        return err;
 }

objdumps of original and changed rt_task_shadow() is in attachment

I will continue in research, but I'm really not good in dissasembling nor the register knowledge.

Petr

[-- Attachment #2: rt_task_shadow_1.txt --]
[-- Type: text/plain, Size: 3146 bytes --]

00000000000006d0 <rt_task_shadow>:
 6d0:   48 89 5c 24 d8          mov    %rbx,-0x28(%rsp)
 6d5:   48 89 6c 24 e0          mov    %rbp,-0x20(%rsp)
 6da:   48 89 fd                mov    %rdi,%rbp
 6dd:   4c 89 64 24 e8          mov    %r12,-0x18(%rsp)
 6e2:   4c 89 6c 24 f0          mov    %r13,-0x10(%rsp)
 6e7:   49 89 f4                mov    %rsi,%r12
 6ea:   4c 89 74 24 f8          mov    %r14,-0x8(%rsp)
 6ef:   48 83 ec 68             sub    $0x68,%rsp
 6f3:   48 85 ff                test   %rdi,%rdi
 6f6:   48 8d 44 24 30          lea    0x30(%rsp),%rax
 6fb:   bf 01 00 00 00          mov    $0x1,%edi
 700:   41 89 d5                mov    %edx,%r13d
 703:   41 89 ce                mov    %ecx,%r14d
 706:   48 0f 44 e8             cmove  %rax,%rbp
 70a:   31 f6                   xor    %esi,%esi
 70c:   e8 00 00 00 00          callq  711 <rt_task_shadow+0x41>
 711:   be 00 00 00 00          mov    $0x0,%esi
 716:   bf 00 00 00 00          mov    $0x0,%edi
 71b:   e8 00 00 00 00          callq  720 <rt_task_shadow+0x50>
 720:   48 8b 05 00 00 00 00    mov    0x0(%rip),%rax        # 727 <rt_task_shadow+0x57>
 727:   64 48 03 04 25 00 00    add    %fs:0x0,%rax
 72e:   00 00
 730:   8b 1d 00 00 00 00       mov    0x0(%rip),%ebx        # 736 <rt_task_shadow+0x66>
 736:   48 89 44 24 28          mov    %rax,0x28(%rsp)
 73b:   81 cb 2b 02 00 00       or     $0x22b,%ebx
 741:   e8 00 00 00 00          callq  746 <rt_task_shadow+0x76>
 746:   48 89 44 24 20          mov    %rax,0x20(%rsp)
 74b:   49 63 c6                movslq %r14d,%rax
 74e:   4c 89 64 24 08          mov    %r12,0x8(%rsp)
 753:   48 89 44 24 18          mov    %rax,0x18(%rsp)
 758:   49 63 c5                movslq %r13d,%rax
 75b:   48 89 2c 24             mov    %rbp,(%rsp)
 75f:   48 89 44 24 10          mov    %rax,0x10(%rsp)
 764:   89 d8                   mov    %ebx,%eax
 766:   0f 05                   syscall
 768:   85 c0                   test   %eax,%eax
 76a:   49 89 c4                mov    %rax,%r12
 76d:   89 c3                   mov    %eax,%ebx
 76f:   75 31                   jne    7a2 <rt_task_shadow+0xd2>
 771:   48 8b 55 00             mov    0x0(%rbp),%rdx
 775:   48 8b 05 00 00 00 00    mov    0x0(%rip),%rax        # 77c <rt_task_shadow+0xac>
 77c:   64 48 89 10             mov    %rdx,%fs:(%rax)
 780:   48 8b 55 08             mov    0x8(%rbp),%rdx
 784:   64 48 89 50 08          mov    %rdx,%fs:0x8(%rax)
 789:   e8 00 00 00 00          callq  78e <rt_task_shadow+0xbe>
 78e:   41 81 e6 00 00 02 00    and    $0x20000,%r14d
 795:   0f 44 1d 00 00 00 00    cmove  0x0(%rip),%ebx        # 79c <rt_task_shadow+0xcc>
 79c:   89 1d 00 00 00 00       mov    %ebx,0x0(%rip)        # 7a2 <rt_task_shadow+0xd2>
 7a2:   44 89 e0                mov    %r12d,%eax
 7a5:   48 8b 5c 24 40          mov    0x40(%rsp),%rbx
 7aa:   48 8b 6c 24 48          mov    0x48(%rsp),%rbp
 7af:   4c 8b 64 24 50          mov    0x50(%rsp),%r12
 7b4:   4c 8b 6c 24 58          mov    0x58(%rsp),%r13
 7b9:   4c 8b 74 24 60          mov    0x60(%rsp),%r14
 7be:   48 83 c4 68             add    $0x68,%rsp
 7c2:   c3                      retq

[-- Attachment #3: rt_task_shadow_2.txt --]
[-- Type: text/plain, Size: 3304 bytes --]

00000000000006d0 <rt_task_shadow>:
 6d0:   48 89 5c 24 e0          mov    %rbx,-0x20(%rsp)
 6d5:   48 89 6c 24 e8          mov    %rbp,-0x18(%rsp)
 6da:   48 89 fd                mov    %rdi,%rbp
 6dd:   4c 89 64 24 f0          mov    %r12,-0x10(%rsp)
 6e2:   4c 89 6c 24 f8          mov    %r13,-0x8(%rsp)
 6e7:   48 83 ec 68             sub    $0x68,%rsp
 6eb:   48 8d 44 24 30          lea    0x30(%rsp),%rax
 6f0:   48 85 ff                test   %rdi,%rdi
 6f3:   48 89 f3                mov    %rsi,%rbx
 6f6:   bf 01 00 00 00          mov    $0x1,%edi
 6fb:   41 89 d4                mov    %edx,%r12d
 6fe:   41 89 cd                mov    %ecx,%r13d
 701:   48 0f 44 e8             cmove  %rax,%rbp
 705:   31 f6                   xor    %esi,%esi
 707:   e8 00 00 00 00          callq  70c <rt_task_shadow+0x3c>
 70c:   be 00 00 00 00          mov    $0x0,%esi
 711:   bf 00 00 00 00          mov    $0x0,%edi
 716:   e8 00 00 00 00          callq  71b <rt_task_shadow+0x4b>
 71b:   49 63 c4                movslq %r12d,%rax
 71e:   48 89 2c 24             mov    %rbp,(%rsp)
 722:   48 89 5c 24 08          mov    %rbx,0x8(%rsp)
 727:   48 89 44 24 10          mov    %rax,0x10(%rsp)
 72c:   49 63 c5                movslq %r13d,%rax
 72f:   48 89 44 24 18          mov    %rax,0x18(%rsp)
 734:   e8 00 00 00 00          callq  739 <rt_task_shadow+0x69>
 739:   48 89 44 24 20          mov    %rax,0x20(%rsp)
 73e:   48 8b 05 00 00 00 00    mov    0x0(%rip),%rax        # 745 <rt_task_shadow+0x75>
 745:   48 89 e7                mov    %rsp,%rdi
 748:   64 48 03 04 25 00 00    add    %fs:0x0,%rax
 74f:   00 00
 751:   31 f6                   xor    %esi,%esi
 753:   48 89 44 24 28          mov    %rax,0x28(%rsp)
 758:   8b 05 00 00 00 00       mov    0x0(%rip),%eax        # 75e <rt_task_shadow+0x8e>
 75e:   0d 2b 02 00 00          or     $0x22b,%eax
 763:   0f 05                   syscall
 765:   85 c0                   test   %eax,%eax
 767:   89 c3                   mov    %eax,%ebx
 769:   74 26                   je     791 <rt_task_shadow+0xc1>
 76b:   31 d2                   xor    %edx,%edx
 76d:   31 f6                   xor    %esi,%esi
 76f:   31 ff                   xor    %edi,%edi
 771:   e8 00 00 00 00          callq  776 <rt_task_shadow+0xa6>
 776:   89 d8                   mov    %ebx,%eax
 778:   48 8b 6c 24 50          mov    0x50(%rsp),%rbp
 77d:   48 8b 5c 24 48          mov    0x48(%rsp),%rbx
 782:   4c 8b 64 24 58          mov    0x58(%rsp),%r12
 787:   4c 8b 6c 24 60          mov    0x60(%rsp),%r13
 78c:   48 83 c4 68             add    $0x68,%rsp
 790:   c3                      retq
 791:   48 8b 55 00             mov    0x0(%rbp),%rdx
 795:   48 8b 05 00 00 00 00    mov    0x0(%rip),%rax        # 79c <rt_task_shadow+0xcc>
 79c:   64 48 89 10             mov    %rdx,%fs:(%rax)
 7a0:   48 8b 55 08             mov    0x8(%rbp),%rdx
 7a4:   64 48 89 50 08          mov    %rdx,%fs:0x8(%rax)
 7a9:   e8 00 00 00 00          callq  7ae <rt_task_shadow+0xde>
 7ae:   41 81 e5 00 00 02 00    and    $0x20000,%r13d
 7b5:   74 bf                   je     776 <rt_task_shadow+0xa6>
 7b7:   c7 05 00 00 00 00 00    movl   $0x0,0x0(%rip)        # 7c1 <rt_task_shadow+0xf1>
 7be:   00 00 00
 7c1:   eb b3                   jmp    776 <rt_task_shadow+0xa6>

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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-17 13:32       ` Petr Cervenka
@ 2009-07-17 13:52         ` Philippe Gerum
  2009-07-17 15:51           ` Petr Cervenka
  0 siblings, 1 reply; 14+ messages in thread
From: Philippe Gerum @ 2009-07-17 13:52 UTC (permalink / raw)
  To: Petr Cervenka; +Cc: xenomai-help

On Fri, 2009-07-17 at 15:32 +0200, Petr Cervenka wrote:
> >
> >On Fri, 2009-07-17 at 13:17 +0200, Petr Cervenka wrote:
> >> >On Thu, 2009-07-16 at 15:15 +0200, Petr Cervenka wrote:
> >> >> Hello,
> >> >> the xenomai native function rt_task_shadow(...) always returns -EFAULT for me. Only happens in xenomai-2.5-rc2.
> >> >> 
> >> >> Same behaviour was also in 2.5-rc1, see note in my older post:
> >> >> https://mail.gna.org/public/xenomai-help/2009-05/msg00024.html
> >> >> 
> >> >> Example code, in the end of this post:
> >> >> https://mail.gna.org/public/xenomai-help/2009-05/msg00038.html
> >> >> 
> >> >> My configuration:
> >> >> Athlon 64 X2 4600+
> >> >> Kubuntu 7.10
> >> >> linux-2.6.29.5 (also tried 2.6.30.1)
> >> >> xenomai-2.5.-rc2
> >> >
> >> >Does this still break when the name is passed as illustrated below?
> >> >
> >> 
> >> No, it doesn't help.
> >> 
> >> I also tried the xenomai rtprint example -> same behavior. The rt_task_shadow() returns -EFAULT and any following rt_task_sleep() in that task returns -1. The other task works fine.
> >> I will do some deeper examination of rt_task_shadow() code.
> >> If you have any advices, what to send or what to try, i would like to hear it.
> >> 
> >
> >Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
> >identify which spot returns -EFAULT. I can't reproduce this issue on a
> >ppc target; I may try over x86 later, but this would speed up things if
> >you could spot the failing test before I'm able to switch to this.
> >
> 
> Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
> But most attempts to confirm, that the value is returned by line:
> 	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
> 				NULL);

This branches to __rt_task_create in kernel space.

> where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
> --- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
> +++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
> @@ -241,6 +241,7 @@
>         pthread_setspecific(__native_tskey, NULL);
>         free(self);
>  #endif /* !HAVE___THREAD */
> +       rt_task_set_mode(0, 0, NULL);
>         return err;
>  }
> 
> objdumps of original and changed rt_task_shadow() is in attachment
> 
> I will continue in research, but I'm really not good in dissasembling nor the register knowledge.
> 

Try rebuilding the user-space libs passing --without-__thread to the
configure script.

> Petr
-- 
Philippe.




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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-17 13:52         ` Philippe Gerum
@ 2009-07-17 15:51           ` Petr Cervenka
  2009-07-18  8:05             ` Jan Kiszka
  0 siblings, 1 reply; 14+ messages in thread
From: Petr Cervenka @ 2009-07-17 15:51 UTC (permalink / raw)
  To: rpm; +Cc: xenomai-help


>> >
>> >Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
>> >identify which spot returns -EFAULT. I can't reproduce this issue on a
>> >ppc target; I may try over x86 later, but this would speed up things if
>> >you could spot the failing test before I'm able to switch to this.
>> >
>> 
>> Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
>> But most attempts to confirm, that the value is returned by line:
>> 	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
>> 				NULL);
>
>This branches to __rt_task_create in kernel space.
>

The bulk variable is totally wrong in kernel space:
for example (2, 0, 0, 0, 0, 134217728), perhaps always same values. Value 2 could be number of arguments of the skincall.
It fails on following line (syscall.c:aprox. 193):
	if (__xn_safe_copy_to_user((void __user *)bulk.a1, &ph, sizeof(ph))) {

>> where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
>> --- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
>> +++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
>> @@ -241,6 +241,7 @@
>>         pthread_setspecific(__native_tskey, NULL);
>>         free(self);
>>  #endif /* !HAVE___THREAD */
>> +       rt_task_set_mode(0, 0, NULL);
>>         return err;
>>  }
>> 
>> objdumps of original and changed rt_task_shadow() is in attachment
>> 
>> I will continue in research, but I'm really not good in dissasembling nor the register knowledge.
>> 
>
>Try rebuilding the user-space libs passing --without-__thread to the
>configure script.
>

After rebuilding with "./configure --enable-smp --without-__thread" it works without any problems.
Do you already know, where the problem is? What does the "--without-__thread" argument mean?

Petr


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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-17 15:51           ` Petr Cervenka
@ 2009-07-18  8:05             ` Jan Kiszka
  2009-07-18 10:32               ` Gilles Chanteperdrix
  0 siblings, 1 reply; 14+ messages in thread
From: Jan Kiszka @ 2009-07-18  8:05 UTC (permalink / raw)
  To: Petr Cervenka; +Cc: xenomai-help

[-- Attachment #1: Type: text/plain, Size: 2359 bytes --]

Petr Cervenka wrote:
>>>> Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
>>>> identify which spot returns -EFAULT. I can't reproduce this issue on a
>>>> ppc target; I may try over x86 later, but this would speed up things if
>>>> you could spot the failing test before I'm able to switch to this.
>>>>
>>> Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
>>> But most attempts to confirm, that the value is returned by line:
>>> 	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
>>> 				NULL);
>> This branches to __rt_task_create in kernel space.
>>
> 
> The bulk variable is totally wrong in kernel space:
> for example (2, 0, 0, 0, 0, 134217728), perhaps always same values. Value 2 could be number of arguments of the skincall.
> It fails on following line (syscall.c:aprox. 193):
> 	if (__xn_safe_copy_to_user((void __user *)bulk.a1, &ph, sizeof(ph))) {
> 
>>> where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
>>> --- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
>>> +++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
>>> @@ -241,6 +241,7 @@
>>>         pthread_setspecific(__native_tskey, NULL);
>>>         free(self);
>>>  #endif /* !HAVE___THREAD */
>>> +       rt_task_set_mode(0, 0, NULL);
>>>         return err;
>>>  }
>>>
>>> objdumps of original and changed rt_task_shadow() is in attachment
>>>
>>> I will continue in research, but I'm really not good in dissasembling nor the register knowledge.
>>>
>> Try rebuilding the user-space libs passing --without-__thread to the
>> configure script.
>>
> 
> After rebuilding with "./configure --enable-smp --without-__thread" it works without any problems.
> Do you already know, where the problem is? What does the "--without-__thread" argument mean?

It's reproducible, will try to understand it. It's either a compiler bug
(your kubuntu version is fairly old and also unsupported due to security
flaws), or we actually still have a problems around TLS variables
(Thread Local Storage, that's what --without-__thread disables).

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-18  8:05             ` Jan Kiszka
@ 2009-07-18 10:32               ` Gilles Chanteperdrix
  2009-07-18 12:56                 ` Jan Kiszka
  0 siblings, 1 reply; 14+ messages in thread
From: Gilles Chanteperdrix @ 2009-07-18 10:32 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: Petr Cervenka, xenomai-help

Jan Kiszka wrote:
> Petr Cervenka wrote:
>>>>> Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
>>>>> identify which spot returns -EFAULT. I can't reproduce this issue on a
>>>>> ppc target; I may try over x86 later, but this would speed up things if
>>>>> you could spot the failing test before I'm able to switch to this.
>>>>>
>>>> Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
>>>> But most attempts to confirm, that the value is returned by line:
>>>> 	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
>>>> 				NULL);
>>> This branches to __rt_task_create in kernel space.
>>>
>> The bulk variable is totally wrong in kernel space:
>> for example (2, 0, 0, 0, 0, 134217728), perhaps always same values. Value 2 could be number of arguments of the skincall.
>> It fails on following line (syscall.c:aprox. 193):
>> 	if (__xn_safe_copy_to_user((void __user *)bulk.a1, &ph, sizeof(ph))) {
>>
>>>> where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
>>>> --- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
>>>> +++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
>>>> @@ -241,6 +241,7 @@
>>>>         pthread_setspecific(__native_tskey, NULL);
>>>>         free(self);
>>>>  #endif /* !HAVE___THREAD */
>>>> +       rt_task_set_mode(0, 0, NULL);
>>>>         return err;
>>>>  }
>>>>
>>>> objdumps of original and changed rt_task_shadow() is in attachment
>>>>
>>>> I will continue in research, but I'm really not good in dissasembling nor the register knowledge.
>>>>
>>> Try rebuilding the user-space libs passing --without-__thread to the
>>> configure script.
>>>
>> After rebuilding with "./configure --enable-smp --without-__thread" it works without any problems.
>> Do you already know, where the problem is? What does the "--without-__thread" argument mean?
> 
> It's reproducible, will try to understand it. It's either a compiler bug

That would be the second compiler bug with __thread (we have a bug on
arm). If we add this to the fact that supporting __thread clutters the
code with many #ifdefs, and does not improve performances on other
platforms than x86 where so many cycles are executed by nanosecond that
it does not matter that much, I'd say let's get rid of __thread.

Besides, it really looks like C++ syntactic sugar where the compiler
makes things behind my back when I use a seemingly simple syntax, it
does not conform with what I would expect from a C compiler.

-- 
					    Gilles.


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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-18 10:32               ` Gilles Chanteperdrix
@ 2009-07-18 12:56                 ` Jan Kiszka
  2009-07-18 13:01                   ` Gilles Chanteperdrix
  0 siblings, 1 reply; 14+ messages in thread
From: Jan Kiszka @ 2009-07-18 12:56 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Petr Cervenka, xenomai-help

[-- Attachment #1: Type: text/plain, Size: 3512 bytes --]

Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
>> Petr Cervenka wrote:
>>>>>> Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
>>>>>> identify which spot returns -EFAULT. I can't reproduce this issue on a
>>>>>> ppc target; I may try over x86 later, but this would speed up things if
>>>>>> you could spot the failing test before I'm able to switch to this.
>>>>>>
>>>>> Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
>>>>> But most attempts to confirm, that the value is returned by line:
>>>>> 	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
>>>>> 				NULL);
>>>> This branches to __rt_task_create in kernel space.
>>>>
>>> The bulk variable is totally wrong in kernel space:
>>> for example (2, 0, 0, 0, 0, 134217728), perhaps always same values. Value 2 could be number of arguments of the skincall.
>>> It fails on following line (syscall.c:aprox. 193):
>>> 	if (__xn_safe_copy_to_user((void __user *)bulk.a1, &ph, sizeof(ph))) {
>>>
>>>>> where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
>>>>> --- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
>>>>> +++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
>>>>> @@ -241,6 +241,7 @@
>>>>>         pthread_setspecific(__native_tskey, NULL);
>>>>>         free(self);
>>>>>  #endif /* !HAVE___THREAD */
>>>>> +       rt_task_set_mode(0, 0, NULL);
>>>>>         return err;
>>>>>  }
>>>>>
>>>>> objdumps of original and changed rt_task_shadow() is in attachment
>>>>>
>>>>> I will continue in research, but I'm really not good in dissasembling nor the register knowledge.
>>>>>
>>>> Try rebuilding the user-space libs passing --without-__thread to the
>>>> configure script.
>>>>
>>> After rebuilding with "./configure --enable-smp --without-__thread" it works without any problems.
>>> Do you already know, where the problem is? What does the "--without-__thread" argument mean?
>> It's reproducible, will try to understand it. It's either a compiler bug
> 
> That would be the second compiler bug with __thread (we have a bug on
> arm). If we add this to the fact that supporting __thread clutters the
> code with many #ifdefs, and does not improve performances on other
> platforms than x86 where so many cycles are executed by nanosecond that
> it does not matter that much, I'd say let's get rid of __thread.
> 
> Besides, it really looks like C++ syntactic sugar where the compiler
> makes things behind my back when I use a seemingly simple syntax, it
> does not conform with what I would expect from a C compiler.
> 

TLS was just the catalyst. The x86_64 syscall interface is defined in a
too fragile way. As Petr already noticed, the core of the problem is
that the syscall argument &bulk does not reach the kernel. And if you
look at the disassembly kubuntu's gcc-4.3.1 generates, it's obvious why:
rdi is not initialized at all with &bulk. For some reason, the compiler
thinks it could leave this out or rdi would already contain the correct
address.

However, I successfully applied the pattern Xen hypercalls use ("+r"
in/out arguments). Will switch Xenomai to this scheme (which is also
easier readable) and will fold in the 32-bit version at this chance, too.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-18 12:56                 ` Jan Kiszka
@ 2009-07-18 13:01                   ` Gilles Chanteperdrix
  2009-07-18 13:31                     ` Jan Kiszka
  0 siblings, 1 reply; 14+ messages in thread
From: Gilles Chanteperdrix @ 2009-07-18 13:01 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: Petr Cervenka, xenomai-help

Jan Kiszka wrote:
> Gilles Chanteperdrix wrote:
>> Jan Kiszka wrote:
>>> Petr Cervenka wrote:
>>>>>>> Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
>>>>>>> identify which spot returns -EFAULT. I can't reproduce this issue on a
>>>>>>> ppc target; I may try over x86 later, but this would speed up things if
>>>>>>> you could spot the failing test before I'm able to switch to this.
>>>>>>>
>>>>>> Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
>>>>>> But most attempts to confirm, that the value is returned by line:
>>>>>> 	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
>>>>>> 				NULL);
>>>>> This branches to __rt_task_create in kernel space.
>>>>>
>>>> The bulk variable is totally wrong in kernel space:
>>>> for example (2, 0, 0, 0, 0, 134217728), perhaps always same values. Value 2 could be number of arguments of the skincall.
>>>> It fails on following line (syscall.c:aprox. 193):
>>>> 	if (__xn_safe_copy_to_user((void __user *)bulk.a1, &ph, sizeof(ph))) {
>>>>
>>>>>> where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
>>>>>> --- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
>>>>>> +++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
>>>>>> @@ -241,6 +241,7 @@
>>>>>>         pthread_setspecific(__native_tskey, NULL);
>>>>>>         free(self);
>>>>>>  #endif /* !HAVE___THREAD */
>>>>>> +       rt_task_set_mode(0, 0, NULL);
>>>>>>         return err;
>>>>>>  }
>>>>>>
>>>>>> objdumps of original and changed rt_task_shadow() is in attachment
>>>>>>
>>>>>> I will continue in research, but I'm really not good in dissasembling nor the register knowledge.
>>>>>>
>>>>> Try rebuilding the user-space libs passing --without-__thread to the
>>>>> configure script.
>>>>>
>>>> After rebuilding with "./configure --enable-smp --without-__thread" it works without any problems.
>>>> Do you already know, where the problem is? What does the "--without-__thread" argument mean?
>>> It's reproducible, will try to understand it. It's either a compiler bug
>> That would be the second compiler bug with __thread (we have a bug on
>> arm). If we add this to the fact that supporting __thread clutters the
>> code with many #ifdefs, and does not improve performances on other
>> platforms than x86 where so many cycles are executed by nanosecond that
>> it does not matter that much, I'd say let's get rid of __thread.
>>
>> Besides, it really looks like C++ syntactic sugar where the compiler
>> makes things behind my back when I use a seemingly simple syntax, it
>> does not conform with what I would expect from a C compiler.
>>
> 
> TLS was just the catalyst. The x86_64 syscall interface is defined in a
> too fragile way. As Petr already noticed, the core of the problem is
> that the syscall argument &bulk does not reach the kernel. And if you
> look at the disassembly kubuntu's gcc-4.3.1 generates, it's obvious why:
> rdi is not initialized at all with &bulk. For some reason, the compiler
> thinks it could leave this out or rdi would already contain the correct
> address.

Just like the ARM bug.

-- 
					    Gilles.


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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-18 13:01                   ` Gilles Chanteperdrix
@ 2009-07-18 13:31                     ` Jan Kiszka
  2009-07-18 13:40                       ` Gilles Chanteperdrix
  0 siblings, 1 reply; 14+ messages in thread
From: Jan Kiszka @ 2009-07-18 13:31 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Petr Cervenka, xenomai-help

[-- Attachment #1: Type: text/plain, Size: 4590 bytes --]

Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
>> Gilles Chanteperdrix wrote:
>>> Jan Kiszka wrote:
>>>> Petr Cervenka wrote:
>>>>>>>> Try instrumenting ksrc/skins/native/syscall.c, __rt_task_create(), to
>>>>>>>> identify which spot returns -EFAULT. I can't reproduce this issue on a
>>>>>>>> ppc target; I may try over x86 later, but this would speed up things if
>>>>>>>> you could spot the failing test before I'm able to switch to this.
>>>>>>>>
>>>>>>> Meanwhile I tried to mess little bit with rt_task_shadow() function to see, where is the source of -EFAULT. I planned to continue to follow it inside syscall etc.
>>>>>>> But most attempts to confirm, that the value is returned by line:
>>>>>>> 	err = XENOMAI_SKINCALL2(__native_muxid, __native_task_create, &bulk,
>>>>>>> 				NULL);
>>>>>> This branches to __rt_task_create in kernel space.
>>>>>>
>>>>> The bulk variable is totally wrong in kernel space:
>>>>> for example (2, 0, 0, 0, 0, 134217728), perhaps always same values. Value 2 could be number of arguments of the skincall.
>>>>> It fails on following line (syscall.c:aprox. 193):
>>>>> 	if (__xn_safe_copy_to_user((void __user *)bulk.a1, &ph, sizeof(ph))) {
>>>>>
>>>>>>> where suprisingly followed by correct behavior. For example following (nothing doing) change in the attached patch solves the whole thing:
>>>>>>> --- /usr/src/xenomai/src/skins/native/task2.c   2009-04-13 19:20:18.000000000 +0200
>>>>>>> +++ /usr/src/xenomai/src/skins/native/task.c    2009-07-17 15:06:20.000000000 +0200
>>>>>>> @@ -241,6 +241,7 @@
>>>>>>>         pthread_setspecific(__native_tskey, NULL);
>>>>>>>         free(self);
>>>>>>>  #endif /* !HAVE___THREAD */
>>>>>>> +       rt_task_set_mode(0, 0, NULL);
>>>>>>>         return err;
>>>>>>>  }
>>>>>>>
>>>>>>> objdumps of original and changed rt_task_shadow() is in attachment
>>>>>>>
>>>>>>> I will continue in research, but I'm really not good in dissasembling nor the register knowledge.
>>>>>>>
>>>>>> Try rebuilding the user-space libs passing --without-__thread to the
>>>>>> configure script.
>>>>>>
>>>>> After rebuilding with "./configure --enable-smp --without-__thread" it works without any problems.
>>>>> Do you already know, where the problem is? What does the "--without-__thread" argument mean?
>>>> It's reproducible, will try to understand it. It's either a compiler bug
>>> That would be the second compiler bug with __thread (we have a bug on
>>> arm). If we add this to the fact that supporting __thread clutters the
>>> code with many #ifdefs, and does not improve performances on other
>>> platforms than x86 where so many cycles are executed by nanosecond that
>>> it does not matter that much, I'd say let's get rid of __thread.
>>>
>>> Besides, it really looks like C++ syntactic sugar where the compiler
>>> makes things behind my back when I use a seemingly simple syntax, it
>>> does not conform with what I would expect from a C compiler.
>>>
>> TLS was just the catalyst. The x86_64 syscall interface is defined in a
>> too fragile way. As Petr already noticed, the core of the problem is
>> that the syscall argument &bulk does not reach the kernel. And if you
>> look at the disassembly kubuntu's gcc-4.3.1 generates, it's obvious why:
>> rdi is not initialized at all with &bulk. For some reason, the compiler
>> thinks it could leave this out or rdi would already contain the correct
>> address.
> 
> Just like the ARM bug.
> 

What was the precise brokenness you saw? Also a missing syscall argument
initialization? Can you easily reproduce the ARM issue? Would be
interesting to know if '+r' makes a difference there, too.

This is what the xen/hypercall.h states on the "+r":

>  * - Avoid compiler bugs.
>  *    This is the tricky part.  Because x86_32 has such a constrained
>  *    register set, gcc versions below 4.3 have trouble generating
>  *    code when all the arg registers and memory are trashed by the
>  *    asm.  There are syntactically simpler ways of achieving the
>  *    semantics below, but they cause the compiler to crash.
>  *
>  *    The only combination I found which works is:
>  *     - assign the __argX variables first
>  *     - list all actually used parameters as "+r" (__argX)
>  *     - clobber the rest

This does not really match to bug we see on x86_64, but it points into a
more or less similar direction (BTW, it was gcc 4.1.3 on kubuntu, not
4.3.1).

Is it possible that other arch (so far silently) suffer from such issues
with older gcc versions, too?

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-18 13:31                     ` Jan Kiszka
@ 2009-07-18 13:40                       ` Gilles Chanteperdrix
  2009-07-19  8:04                         ` Jan Kiszka
  0 siblings, 1 reply; 14+ messages in thread
From: Gilles Chanteperdrix @ 2009-07-18 13:40 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: Petr Cervenka, xenomai-help

Jan Kiszka wrote:
> What was the precise brokenness you saw? Also a missing syscall
> argument initialization? Can you easily reproduce the ARM issue?
> Would be

It is here:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38815

The arm syscalls contain a workaround, I copy the values to some
temporary variables, but I can not make it work with the bugzilla sample
(though I am almost sure I tested it when I did it, I may have changed
toolchain version in the mean time).


> interesting to know if '+r' makes a difference there, too.

I tested it after you mention it, and no, it makes no difference.

-- 
					    Gilles.


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

* Re: [Xenomai-help] rt_task_shadow returns always -EFAULT
  2009-07-18 13:40                       ` Gilles Chanteperdrix
@ 2009-07-19  8:04                         ` Jan Kiszka
  0 siblings, 0 replies; 14+ messages in thread
From: Jan Kiszka @ 2009-07-19  8:04 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Petr Cervenka, xenomai-help

[-- Attachment #1: Type: text/plain, Size: 1014 bytes --]

Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
>> What was the precise brokenness you saw? Also a missing syscall
>> argument initialization? Can you easily reproduce the ARM issue?
>> Would be
> 
> It is here:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38815
> 
> The arm syscalls contain a workaround, I copy the values to some
> temporary variables, but I can not make it work with the bugzilla sample
> (though I am almost sure I tested it when I did it, I may have changed
> toolchain version in the mean time).
> 
> 
>> interesting to know if '+r' makes a difference there, too.
> 
> I tested it after you mention it, and no, it makes no difference.
> 

Meanwhile I also had troubles with the "+r" approach and even more
aspects of the Xen way. But I found a different workaround, see the pull
request.

Also note that even removing all TLS references from rt_task_shadow made
no difference for me. So this was really a different kind of bug than
what you saw on ARM.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

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

end of thread, other threads:[~2009-07-19  8:04 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-16 13:15 [Xenomai-help] rt_task_shadow returns always -EFAULT Petr Cervenka
2009-07-16 14:30 ` Philippe Gerum
2009-07-17 11:17   ` Petr Cervenka
2009-07-17 12:05     ` Philippe Gerum
2009-07-17 13:32       ` Petr Cervenka
2009-07-17 13:52         ` Philippe Gerum
2009-07-17 15:51           ` Petr Cervenka
2009-07-18  8:05             ` Jan Kiszka
2009-07-18 10:32               ` Gilles Chanteperdrix
2009-07-18 12:56                 ` Jan Kiszka
2009-07-18 13:01                   ` Gilles Chanteperdrix
2009-07-18 13:31                     ` Jan Kiszka
2009-07-18 13:40                       ` Gilles Chanteperdrix
2009-07-19  8:04                         ` 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.