Re: [Xenomai-core] Linux lock-up with rtcanrecv

2007-02-08 Thread Wolfgang Grandegger

Jan Kiszka wrote:

Jan Kiszka wrote:

Hi all,

fiddling with latest Xenomai trunk and 2.3.x on one of our robots (there
is still a bug in trunk /wrt broken timeouts of rt_dev_read on
xeno_16550A - different issue...), I ran into a weird behaviour of
rtcanrecv:

I have a continuous stream of a few thousand packets/s towards the
robot. When I start up two rtcanrecv rtcan0 -p1000 instances (or one +
our own receiver application), the second one causes a Linux lock-up.
Sometimes this happens during startup of the second rtcanrecv, but at
latest on its termination. Other RT tasks are still running. I can
resolve the lock-up by pulling the CAN cable, everyone is fine
afterwards and can be cleaned up. I played with quite a few combinations
of recent ipipe patches and Xenomai revisions (even back to #1084 in
v2.3.x), no noticeable difference.



Forgot to mention one further observation: removing the usleep form
rtcanrecv's cleanup() works around the shutdown lock-up. I can't
interpret this yet. [BTW, Wolfgang, what is it good for?]


Hm, I think the usleep() only make sense for rtcansend to allow messages 
to got out before the close. You can remove it.


Wolfgang.


___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


[Xenomai-core] Linux lock-up with rtcanrecv

2007-02-07 Thread Jan Kiszka
Hi all,

fiddling with latest Xenomai trunk and 2.3.x on one of our robots (there
is still a bug in trunk /wrt broken timeouts of rt_dev_read on
xeno_16550A - different issue...), I ran into a weird behaviour of
rtcanrecv:

I have a continuous stream of a few thousand packets/s towards the
robot. When I start up two rtcanrecv rtcan0 -p1000 instances (or one +
our own receiver application), the second one causes a Linux lock-up.
Sometimes this happens during startup of the second rtcanrecv, but at
latest on its termination. Other RT tasks are still running. I can
resolve the lock-up by pulling the CAN cable, everyone is fine
afterwards and can be cleaned up. I played with quite a few combinations
of recent ipipe patches and Xenomai revisions (even back to #1084 in
v2.3.x), no noticeable difference.

Seems like I have to take a closer look - once time permits and the
robot is available. So any ideas or attempts to reproduce this are
welcome, current .config attached (no magic knob found there yet).

Jan


PS: Wolfgang, any objections against decoupling -v from -p and
lowering the receiver priority to 0?

Index: src/utils/can/rtcanrecv.c
===
--- src/utils/can/rtcanrecv.c   (revision 2146)
+++ src/utils/can/rtcanrecv.c   (working copy)
@@ -192,6 +192,7 @@ int main(int argc, char **argv)

case 'p':
print = strtoul(optarg, NULL, 0);
+   break;

case 'v':
verbose = 1;
@@ -312,7 +313,7 @@ int main(int argc, char **argv)
 }

 snprintf(name, sizeof(name), rtcanrecv-%d, getpid());
-ret = rt_task_shadow(rt_task_desc, name, 1, 0);
+ret = rt_task_shadow(rt_task_desc, name, 0, 0);
 if (ret) {
fprintf(stderr, rt_task_shadow: %s\n, strerror(-ret));
goto failure;



config.bz2
Description: Binary data


signature.asc
Description: OpenPGP digital signature
___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] Linux lock-up with rtcanrecv

2007-02-07 Thread Jan Kiszka
Jan Kiszka wrote:
 Hi all,
 
 fiddling with latest Xenomai trunk and 2.3.x on one of our robots (there
 is still a bug in trunk /wrt broken timeouts of rt_dev_read on
 xeno_16550A - different issue...), I ran into a weird behaviour of
 rtcanrecv:
 
 I have a continuous stream of a few thousand packets/s towards the
 robot. When I start up two rtcanrecv rtcan0 -p1000 instances (or one +
 our own receiver application), the second one causes a Linux lock-up.
 Sometimes this happens during startup of the second rtcanrecv, but at
 latest on its termination. Other RT tasks are still running. I can
 resolve the lock-up by pulling the CAN cable, everyone is fine
 afterwards and can be cleaned up. I played with quite a few combinations
 of recent ipipe patches and Xenomai revisions (even back to #1084 in
 v2.3.x), no noticeable difference.
 

Forgot to mention one further observation: removing the usleep form
rtcanrecv's cleanup() works around the shutdown lock-up. I can't
interpret this yet. [BTW, Wolfgang, what is it good for?]

Jan



signature.asc
Description: OpenPGP digital signature
___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core