All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] rt_queue_write strange behaviour ++
@ 2007-11-30 10:42 Roderik.Wildenburg
  2007-11-30 10:55 ` Philippe Gerum
  0 siblings, 1 reply; 7+ messages in thread
From: Roderik.Wildenburg @ 2007-11-30 10:42 UTC (permalink / raw)
  To: xenomai

Sorry, but in my last mail (see below) I had forgotten to tell you my 
Xenomai-Version and architecture.
I still use Xenomai 2.3.2 on PPC.

In the meantime I had a deeper look into the Xenomai source code 
and I would say, the case we observed (msg->refcount == 0 ; see below)
isn´t possible with rt_queue_write, as this function implicitly allocate 
its messagebuffer and rt_queue_alloc initilaizes refcount to 1.
Immediatelly after this rt_queue_send is called, where the 
plausibility test if( msg->refcount == 0) is done and fails. 
So, I can´t see a gap where refcount falls back to 0.

Does any guru have a good idea, I am quite clueless.

Original mail :
--------------------------------------------------------------------

Sometimes we get an EINVAL-Error with rt_queue_write.
If we immediatelly after the EINVAL-Error try an a second time to write
to the queue (with exactly the same parameters as at the first time) the
rt_queue_write succeeds (see appended code sniped) !!??

I traced down (xnprintf) the error to the function rt_queue_send where a
plausibility test is made :

if (xnheap_check_block(&q->bufpool, msg) || msg->refcount == 0) 
[approx at line 614]

this test fail as (msg->refcount == 0).
If I understand the comment correctly :

/* In case of invalid block or if the sender does not own the
   message, just bail out. */

the sender does not own the message.
But if so, the second try should fail also (and I am quite sure the
message belongs to the sender) ?
Does anyone (probabliy Philipe) has an idea in what situation this
problem could occur or what is the reason for this strange behaviour ?

Unfortunately I could not reproduce this problem in a simple testcase, 
but with our application the error occurs regularly (~10 times a hour).
So I rely on your intuition to spike this problem.

Many thanks in advance and best regards
Roderik 

MAN Roland Druckmaschinen AG
Vorsitzender des Aufsichtsrates: Hanno C. Fiedler
Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. Markus Rall, Paul Steidle    
Sitz der Gesellschaft: Offenbach am Main, Registergericht: Amtsgericht Offenbach HRB-Nr. 42592    
USt-Ident-Nr. DE 250200933


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

* Re: [Xenomai-help] rt_queue_write strange behaviour ++
  2007-11-30 10:42 [Xenomai-help] rt_queue_write strange behaviour ++ Roderik.Wildenburg
@ 2007-11-30 10:55 ` Philippe Gerum
  2007-11-30 12:22   ` Roderik.Wildenburg
  2007-12-03 13:31   ` Roderik.Wildenburg
  0 siblings, 2 replies; 7+ messages in thread
From: Philippe Gerum @ 2007-11-30 10:55 UTC (permalink / raw)
  To: Roderik.Wildenburg; +Cc: xenomai

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

Roderik.Wildenburg@domain.hid wrote:
> Sorry, but in my last mail (see below) I had forgotten to tell you my 
> Xenomai-Version and architecture.
> I still use Xenomai 2.3.2 on PPC.
> 
> In the meantime I had a deeper look into the Xenomai source code 
> and I would say, the case we observed (msg->refcount == 0 ; see below)
> isn´t possible with rt_queue_write, as this function implicitly allocate 
> its messagebuffer and rt_queue_alloc initilaizes refcount to 1.
> Immediatelly after this rt_queue_send is called, where the 
> plausibility test if( msg->refcount == 0) is done and fails. 
> So, I can´t see a gap where refcount falls back to 0.

Does the attached patch trigger any message when your app fails?

-- 
Philippe.

[-- Attachment #2: heap-check-block-trace.patch --]
[-- Type: text/x-patch, Size: 849 bytes --]

Index: ksrc/nucleus/heap.c
===================================================================
--- ksrc/nucleus/heap.c	(revision 3224)
+++ ksrc/nucleus/heap.c	(working copy)
@@ -911,8 +911,10 @@
 			break;
 	}
 
-	if (!holder)
+	if (!holder) {
+		printk(KERN_DEBUG "XNHEAP: no extent found: block=%p\n", block);
 		goto bad_block;
+	}
 
 	/* Compute the heading page number in the page map. */
 	pagenum = ((caddr_t) block - extent->membase) >> heap->pageshift;
@@ -922,9 +924,11 @@
 	ptype = extent->pagemap[pagenum].type;
 
 	if (ptype == XNHEAP_PFREE ||	/* Unallocated page? */
-	    ptype == XNHEAP_PCONT)	/* Not a range heading page? */
+	    ptype == XNHEAP_PCONT) {	/* Not a range heading page? */
+		printk(KERN_DEBUG "XNHEAP: bad page type: 0x%x\n", ptype);
   bad_block: 
 		err = -EINVAL;
+	}
 
 	xnlock_put_irqrestore(&heap->lock, s);
 

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

* Re: [Xenomai-help] rt_queue_write strange behaviour ++
  2007-11-30 10:55 ` Philippe Gerum
@ 2007-11-30 12:22   ` Roderik.Wildenburg
  2007-12-03 13:31   ` Roderik.Wildenburg
  1 sibling, 0 replies; 7+ messages in thread
From: Roderik.Wildenburg @ 2007-11-30 12:22 UTC (permalink / raw)
  To: rpm; +Cc: xenomai

Thank you for your patch !


I allready had a debug output in the function rt_queue_send :

if ((err2=xnheap_check_block(&q->bufpool, msg)) || msg->refcount == 0) {
   /* In case of invalid block or if the sender does not own the message, just bail out. */
    xnprintf("---- xnheap_check_block failed => EINVAL (err=%d refcount=%d----\n",err2,msg->refcount);
    err = -EINVAL;
    goto unlock_and_exit;
} 

I think this nearly does the same as your patch. It produces an output if xnheap_check_block() fails.
Unfortunatelly if there is an output err2 is allways 0 but msg->refcount is zero. So I think refcount is the problem. 
Excerpt from /var/log/messages :

# tail /var/log/messages
Nov 30 14:01:46 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Nov 30 14:01:46 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Nov 30 14:01:54 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Nov 30 14:01:56 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Nov 30 14:01:58 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Nov 30 14:02:02 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----


Nevertheless I applied your patch. Unfortunatelly I will get testing time only at monday again.
So please keep patient and enjoy the weekend.

Best regards
Roderik




> -----Ursprüngliche Nachricht-----
> Von: Philippe Gerum [mailto:philippe.gerum@domain.hid] Im 
> Auftrag von Philippe Gerum
> Gesendet: Freitag, 30. November 2007 11:55
> An: Wildenburg, Roderik RAEK3 MRA
> Cc: xenomai@xenomai.org
> Betreff: Re: [Xenomai-help] rt_queue_write strange behaviour ++
> 
> Roderik.Wildenburg@domain.hid wrote:
> > Sorry, but in my last mail (see below) I had forgotten to 
> tell you my 
> > Xenomai-Version and architecture.
> > I still use Xenomai 2.3.2 on PPC.
> > 
> > In the meantime I had a deeper look into the Xenomai source code 
> > and I would say, the case we observed (msg->refcount == 0 ; 
> see below)
> > isn´t possible with rt_queue_write, as this function 
> implicitly allocate 
> > its messagebuffer and rt_queue_alloc initilaizes refcount to 1.
> > Immediatelly after this rt_queue_send is called, where the 
> > plausibility test if( msg->refcount == 0) is done and fails. 
> > So, I can´t see a gap where refcount falls back to 0.
> 
> Does the attached patch trigger any message when your app fails?
> 
> -- 
> Philippe.
> 

MAN Roland Druckmaschinen AG
Vorsitzender des Aufsichtsrates: Hanno C. Fiedler
Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. Markus Rall, Paul Steidle    
Sitz der Gesellschaft: Offenbach am Main, Registergericht: Amtsgericht Offenbach HRB-Nr. 42592    
USt-Ident-Nr. DE 250200933


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

* Re: [Xenomai-help] rt_queue_write strange behaviour ++
  2007-11-30 10:55 ` Philippe Gerum
  2007-11-30 12:22   ` Roderik.Wildenburg
@ 2007-12-03 13:31   ` Roderik.Wildenburg
  2007-12-03 15:16     ` [Xenomai-help] rt_queue_write strange behaviour ++ testcase !! Roderik.Wildenburg
  1 sibling, 1 reply; 7+ messages in thread
From: Roderik.Wildenburg @ 2007-12-03 13:31 UTC (permalink / raw)
  To: rpm; +Cc: xenomai

> Does the attached patch trigger any message when your app fails?

Unforunatelly not (there is no message in /var/log/messages (see below)).
(see also my mail from 30.11. 13:27)

I still can´t see, were refcount can get zero when rt_queue_write is used.
Whatever problem occurs, refcount should stay one, as set by rt_queue_alloc.
Can you imagine a scenario where refcount gets 0 ? If so, please tell me, so I can
build a test case around it.

Many thanks for your help from a very helpless
Roderik


fer1_764_4080605:~ # tail /var/log/messages
Dec  3 15:15:11 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Dec  3 15:15:11 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Dec  3 15:15:11 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Dec  3 15:15:13 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Dec  3 15:15:16 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----
Dec  3 15:15:20 (none) user.info kernel: Xenomai: ---- xnheap_check_block failed => EINVAL (err=0 refcount=0----

> -----Ursprüngliche Nachricht-----
> Von: Philippe Gerum [mailto:philippe.gerum@domain.hid] Im 
> Auftrag von Philippe Gerum
> Gesendet: Freitag, 30. November 2007 11:55
> An: Wildenburg, Roderik RAEK3 MRA
> Cc: xenomai@xenomai.org
> Betreff: Re: [Xenomai-help] rt_queue_write strange behaviour ++
> 
> Roderik.Wildenburg@domain.hid wrote:
> > Sorry, but in my last mail (see below) I had forgotten to 
> tell you my 
> > Xenomai-Version and architecture.
> > I still use Xenomai 2.3.2 on PPC.
> > 
> > In the meantime I had a deeper look into the Xenomai source code 
> > and I would say, the case we observed (msg->refcount == 0 ; 
> see below)
> > isn´t possible with rt_queue_write, as this function 
> implicitly allocate 
> > its messagebuffer and rt_queue_alloc initilaizes refcount to 1.
> > Immediatelly after this rt_queue_send is called, where the 
> > plausibility test if( msg->refcount == 0) is done and fails. 
> > So, I can´t see a gap where refcount falls back to 0.
> 
> Does the attached patch trigger any message when your app fails?
> 
> -- 
> Philippe.
> 

MAN Roland Druckmaschinen AG
Vorsitzender des Aufsichtsrates: Hanno C. Fiedler
Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. Markus Rall, Paul Steidle    
Sitz der Gesellschaft: Offenbach am Main, Registergericht: Amtsgericht Offenbach HRB-Nr. 42592    
USt-Ident-Nr. DE 250200933


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

* Re: [Xenomai-help] rt_queue_write strange behaviour ++ testcase !!
  2007-12-03 13:31   ` Roderik.Wildenburg
@ 2007-12-03 15:16     ` Roderik.Wildenburg
  2007-12-03 16:50       ` Philippe Gerum
  0 siblings, 1 reply; 7+ messages in thread
From: Roderik.Wildenburg @ 2007-12-03 15:16 UTC (permalink / raw)
  To: rpm; +Cc: xenomai

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

After I realized that the error depends on TM_NONBLOCK in the queue reading task (rt_queue_read(&qtest1q, &buf, sizeof (buf), TM_NONBLOCK)), I finaly succeded in generating a simple testcase !

On my target (PPC 400MHZ) the appended programm produces an EINVAL error with rt_queue_write nearly immediately and the second rt_queue_write succeeds nearly allways.

So, could you/Philippe try this testcase on your target and tell me whether you face the same problem.

Thanks a lot for yor help
Roderik
 

> -----Ursprüngliche Nachricht-----
> Von: xenomai-help-bounces@domain.hid
> [mailto:xenomai-help-bounces@domain.hid] Im Auftrag von 
> Roderik.Wildenburg@domain.hid
> Gesendet: Montag, 3. Dezember 2007 14:31
> An: rpm@xenomai.org
> Cc: xenomai@xenomai.org
> Betreff: Re: [Xenomai-help] rt_queue_write strange behaviour ++
> 
> > Does the attached patch trigger any message when your app fails?
> 
> Unforunatelly not (there is no message in /var/log/messages 
> (see below)).
> (see also my mail from 30.11. 13:27)
> 
> I still can´t see, were refcount can get zero when 
> rt_queue_write is used.
> Whatever problem occurs, refcount should stay one, as set by 
> rt_queue_alloc.
> Can you imagine a scenario where refcount gets 0 ? If so, 
> please tell me, so I can
> build a test case around it.
> 
> Many thanks for your help from a very helpless
> Roderik
> 
> 
> fer1_764_4080605:~ # tail /var/log/messages
> Dec  3 15:15:11 (none) user.info kernel: Xenomai: ---- 
> xnheap_check_block failed => EINVAL (err=0 refcount=0----
> Dec  3 15:15:11 (none) user.info kernel: Xenomai: ---- 
> xnheap_check_block failed => EINVAL (err=0 refcount=0----
> Dec  3 15:15:11 (none) user.info kernel: Xenomai: ---- 
> xnheap_check_block failed => EINVAL (err=0 refcount=0----
> Dec  3 15:15:13 (none) user.info kernel: Xenomai: ---- 
> xnheap_check_block failed => EINVAL (err=0 refcount=0----
> Dec  3 15:15:16 (none) user.info kernel: Xenomai: ---- 
> xnheap_check_block failed => EINVAL (err=0 refcount=0----
> Dec  3 15:15:20 (none) user.info kernel: Xenomai: ---- 
> xnheap_check_block failed => EINVAL (err=0 refcount=0----
> 
> > -----Ursprüngliche Nachricht-----
> > Von: Philippe Gerum [mailto:philippe.gerum@domain.hid] Im 
> > Auftrag von Philippe Gerum
> > Gesendet: Freitag, 30. November 2007 11:55
> > An: Wildenburg, Roderik RAEK3 MRA
> > Cc: xenomai@xenomai.org
> > Betreff: Re: [Xenomai-help] rt_queue_write strange behaviour ++
> > 
> > Roderik.Wildenburg@domain.hid wrote:
> > > Sorry, but in my last mail (see below) I had forgotten to 
> > tell you my 
> > > Xenomai-Version and architecture.
> > > I still use Xenomai 2.3.2 on PPC.
> > > 
> > > In the meantime I had a deeper look into the Xenomai source code 
> > > and I would say, the case we observed (msg->refcount == 0 ; 
> > see below)
> > > isn´t possible with rt_queue_write, as this function 
> > implicitly allocate 
> > > its messagebuffer and rt_queue_alloc initilaizes refcount to 1.
> > > Immediatelly after this rt_queue_send is called, where the 
> > > plausibility test if( msg->refcount == 0) is done and fails. 
> > > So, I can´t see a gap where refcount falls back to 0.
> > 
> > Does the attached patch trigger any message when your app fails?
> > 
> > -- 
> > Philippe.
> > 
> 
> MAN Roland Druckmaschinen AG
> Vorsitzender des Aufsichtsrates: Hanno C. Fiedler
> Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. 
> Markus Rall, Paul Steidle    
> Sitz der Gesellschaft: Offenbach am Main, Registergericht: 
> Amtsgericht Offenbach HRB-Nr. 42592    
> USt-Ident-Nr. DE 250200933
> 
> _______________________________________________
> Xenomai-help mailing list
> Xenomai-help@domain.hid
> https://mail.gna.org/listinfo/xenomai-help
> 

MAN Roland Druckmaschinen AG
Vorsitzender des Aufsichtsrates: Hanno C. Fiedler
Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. Markus Rall, Paul Steidle    
Sitz der Gesellschaft: Offenbach am Main, Registergericht: Amtsgericht Offenbach HRB-Nr. 42592    
USt-Ident-Nr. DE 250200933

[-- Attachment #2: qtest.c --]
[-- Type: application/octet-stream, Size: 4004 bytes --]

#include <stdio.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/un.h>
#include <errno.h>
#include <stdlib.h>
#include <stddef.h>
#include <stdarg.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <unistd.h>
#include <time.h>
#include <errno.h>
#include <unistd.h>
#include <signal.h>
#include <pthread.h>

#include <native/task.h>
#include <native/queue.h>

#define einval

#ifdef einval      
   #define  MAXLEN   1830  /* größer maximale Nachrichtenlänge */
   #define  MAXWAIT  100000 
   #define  MINWAIT  100000 
#endif

#ifdef enomem   
   #define  MAXLEN   1024  /* größer maximale Nachrichtenlänge */
#endif
#define CONTROLLER_WAIT1 150000000
#define CONTROLLER_WAIT2 15000000
#define CONTROLLER_WAIT3 12300000


RT_QUEUE qtest1q;
RT_TASK qtest1, qtest2, qtest3;


void qtestrt(void)
{
   ssize_t len;
   static char buf[MAXLEN];
   long twait;

   for (;;)
   {
#ifdef enomem      
      if ((len = rt_queue_read(&qtest1q, &buf, sizeof (buf), TM_INFINITE)) < 0)
      {
         printf("qtest1t: rt_queue_read failed with %d\n",len);
         perror("perror qtest1t: rt_queue_read");
         errno = -len, perror("perror2 qtest1t: rt_queue_read");
      }
#endif      
#ifdef einval      
      rt_queue_read(&qtest1q, &buf, sizeof (buf), TM_NONBLOCK);
      twait= (long) ((float)((float)rand()/(float)RAND_MAX) * (float)MAXWAIT + (float)MINWAIT );
      rt_task_sleep(twait);
#endif      
   }
    
}

void qtestwt(void* par)
{
   int ret, len;
   RT_QUEUE_INFO qinfo;
   char buf[MAXLEN];
   int zuf;
   long twait;

   twait=(int)par;
   printf("qtestwt start ! %ld\n",twait);
   for (;;)
   {
      zuf=rand();
#ifdef einval      
      len=MAXLEN;
      twait=zuf>>5;
#else      
      len= (int) ((float)((float)zuf/(float)RAND_MAX) * (float)(MAXLEN-10) + 2.0 );
#endif      
      //printf("WriteQueue %d %d\n",len,zuf);
      if ((ret = rt_queue_write(&qtest1q, &buf, len , Q_NORMAL)) < 0)
      {
         errno = -ret, perror("qtestwt: rt_queue_write error");
         printf("Message size :%d return : %d\n",len, ret);
         if( (ret=rt_queue_inquire(&qtest1q,&qinfo))<0)
         {
            printf("queue_inquire : %d\n",ret);
         }
         else
         {
            printf("---- %s NMsg:%d Size:%d used:%d\n",qinfo.name, qinfo.nmessages,qinfo.poolsize,qinfo.usedmem);
         }
         printf("2. trial \n");
         if ((ret = rt_queue_write(&qtest1q, &buf, len , Q_NORMAL)) < 0)
            printf("failed\n");
         else
            printf("OK\n");
      }
      rt_task_sleep(twait);
   }
}
    

int startqtest(void)
{
   int err;
   int twait;

   srand (time (0));
   
   if(!rt_queue_bind(&qtest1q,"qtest1q",TM_NONBLOCK))
      rt_queue_delete(&qtest1q);
   if( (err = rt_queue_create(&qtest1q, "qtest1q", MAXLEN*10, Q_UNLIMITED, Q_FIFO)) != 0 )
      printf("q_create qtest1q failed with %d\n",err);

   err = rt_task_create(&qtest1, "qtest1t", 0, 50, 0);   /* Read */
   if (!err)
      rt_task_start(&qtest1, (void(*)(void *))qtestrt, NULL);

   err = rt_task_create(&qtest2, "qtestw2t", 0, 30, 0);   /* Write */
#ifdef enomem   
   twait=CONTROLLER_WAIT1;
#endif
#ifdef einval   
   twait=CONTROLLER_WAIT2;
#endif   
   if (!err)
      rt_task_start(&qtest2, (void(*)(void *))qtestwt, (void*)twait);
   
#ifdef einval
   err = rt_task_create(&qtest3, "qtestw3t", 0, 30, 0);   /* Write */
   if (!err)
      rt_task_start(&qtest3, (void(*)(void *))qtestwt, (void*)CONTROLLER_WAIT3);
#endif
   
   return(0);


}


int main (int ac, char *av[])

{
    sigset_t mask;
    int sig;

    printf("qtest start !\n");
    sleep(2);

    sigemptyset(&mask);
    sigaddset(&mask,SIGINT);
    sigaddset(&mask,SIGTERM);
    sigaddset(&mask,SIGHUP);
    sigaddset(&mask,SIGALRM);

    pthread_sigmask(SIG_BLOCK, &mask, NULL);

    mlockall(MCL_CURRENT|MCL_FUTURE);

    startqtest();


    sigwait(&mask, &sig);

    return 0;
}

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

* Re: [Xenomai-help] rt_queue_write strange behaviour ++ testcase !!
  2007-12-03 15:16     ` [Xenomai-help] rt_queue_write strange behaviour ++ testcase !! Roderik.Wildenburg
@ 2007-12-03 16:50       ` Philippe Gerum
  2007-12-04 12:05         ` Roderik.Wildenburg
  0 siblings, 1 reply; 7+ messages in thread
From: Philippe Gerum @ 2007-12-03 16:50 UTC (permalink / raw)
  To: Roderik.Wildenburg; +Cc: xenomai

Roderik.Wildenburg@domain.hid wrote:
> After I realized that the error depends on TM_NONBLOCK in the queue reading task (rt_queue_read(&qtest1q, &buf, sizeof (buf), TM_NONBLOCK)), I finaly succeded in generating a simple testcase !
> 
> On my target (PPC 400MHZ) the appended programm produces an EINVAL error with rt_queue_write nearly immediately and the second rt_queue_write succeeds nearly allways.
> 
> So, could you/Philippe try this testcase on your target and tell me whether you face the same problem.
>

Do you have this patch in?

--- ksrc/skins/native/syscall.c	(revision 3195)
+++ ksrc/skins/native/syscall.c	(revision 3196)
@@ -2468,10 +2468,10 @@

 		if (size > 0)
 			__xn_copy_to_user(curr, buf, mbuf, size);
+
+		rt_queue_free(q, mbuf);
 	}

-	rt_queue_free(q, mbuf);
-
 	return (int)rsize;
 }

-- 
Philippe.


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

* Re: [Xenomai-help] rt_queue_write strange behaviour ++ testcase !!
  2007-12-03 16:50       ` Philippe Gerum
@ 2007-12-04 12:05         ` Roderik.Wildenburg
  0 siblings, 0 replies; 7+ messages in thread
From: Roderik.Wildenburg @ 2007-12-04 12:05 UTC (permalink / raw)
  To: rpm; +Cc: xenomai

Hello Philippe,

> 
> Do you have this patch in?
> 

no I hadn´t (still using 2.3.2), but with this patch queues work like I expected.
So, thanks a lot ! 
I hope, you will not hear anything about queues from me for the next year ;-)

Best regards
Roderik 

MAN Roland Druckmaschinen AG
Vorsitzender des Aufsichtsrates: Hanno C. Fiedler
Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. Markus Rall, Paul Steidle    
Sitz der Gesellschaft: Offenbach am Main, Registergericht: Amtsgericht Offenbach HRB-Nr. 42592    
USt-Ident-Nr. DE 250200933


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

end of thread, other threads:[~2007-12-04 12:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-30 10:42 [Xenomai-help] rt_queue_write strange behaviour ++ Roderik.Wildenburg
2007-11-30 10:55 ` Philippe Gerum
2007-11-30 12:22   ` Roderik.Wildenburg
2007-12-03 13:31   ` Roderik.Wildenburg
2007-12-03 15:16     ` [Xenomai-help] rt_queue_write strange behaviour ++ testcase !! Roderik.Wildenburg
2007-12-03 16:50       ` Philippe Gerum
2007-12-04 12:05         ` Roderik.Wildenburg

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.