Ok thank you,
"Either fix your application or the TDMA network configuration." -- If
I am not wrong, by this did u mean to say that I need to put the
nanosleep() equivalent to TDMA_CYCLE time in my application or else i
need to change (reduce) the value of TDMA_CYCLE in rtnet.conf file
right?
Going back to background actually I am trying to compare the ethernet
performance of Xenomai+RTnet and RT-Preempt. So can you please advice
me some test suits avalable to do the same. More over today I was
looking at "netpref", may you please tell me does netpref works in
Xenomai+RTnet?
Thanks and regards
Saiful
On 5/3/07, Jan Kiszka <[EMAIL PROTECTED]> wrote:
> Saiful Khan wrote:
> > Hello,
> >
> > I observed some thing really surprised me-
> > if i put a 10000 microsecond sleep between consecutive sendto() then
> > it sends any no of packets packets continuously.
> >
> > while (test_time <=180000.0) //Test duration, In millisecond
> > {
> > bzero (buffer, 50);
> > strcpy(buffer, "hello server - xenomai");
> > n = sendto (sockfd, buffer, 50, 0, (struct sockaddr *) &serv_addr,
> > (socklen_t) sizeof (serv_addr));
> > usleep (10000);
> > if ( n < 0 )
> > {
> > perror ("ERROR, Sending Failed....\n");
> > exit (0);
> > }
> > }//end of while
> >
> > --but if i dont give the usleep(), it sends only 16 packets. More over
> > if I use usleep(1000), then also after sending some messages the
> > program exits giving "ERROR, Sending Failed.... No buffer space
> > available".
>
> OK, a few things to note:
>
> - sendto is non-blocking, i.e. it tries to send immediately, queues
> messages that cannot be sent right now (TDMA...), fails if something
> goes wrong before enqueuing (routing, no more buffers, ...).
>
> - You are running RTmac/TDMA, likely with the default setup: 1 message
> slot per node each 5 ms.
>
> - You try to send messages at a higher rate, consuming your personal
> (per socket) transmission buffers faster than they can be released
> again (after the actual transmission). Thus, your system setup is
> broken. Either fix your application or the TDMA network
> configuration.
>
> - usleep is, according to POSIX spec, obsolescent. More problematic: it
> is not supported by Xenomai's POSIX skin, thus you are continuously
> leaving the RT context to sleep for an indeterministic period. Use
> [clock_]nanosleep instead. (That's just a footnote here, not the
> reason for the error message.)
>
> HTH,
> Jan
>
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
RTnet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rtnet-users