Leopold Palomo-Avellaneda wrote: > A Dilluns 14 Maig 2007 18:22, Jan Kiszka va escriure: >> Leopold Palomo-Avellaneda wrote: >>> A Dijous 03 Maig 2007 22:04, Jan Kiszka va escriure: >>>> Leopold Palomo Avellaneda wrote: >>>>> A Dijous 03 Maig 2007 20:44, Jan Kiszka va escriure: >>>>>> [Oops, almost overseen.] >>>>>> >>>>>> Leopold Palomo-Avellaneda wrote: >>>>>>> Hi, >>>>>>> >>>>>>> some days ago I was sending some messages about the examples of rtnet >>>>>>> using rtai. I compiled and installing rtnet with some problems but I >>>>>>> think that is working. >>>>>>> >>>>>>> I modified the init script for have a notdma option because it's the >>>>>>> only configuration that I need. I never couldn't run the examples of >>>>>>> rtai or generic till yesterday. I modified the examples, created a >>>>>>> new examples, and never worked. I have been more or less stopped in >>>>>>> this some days. >>>>>>> >>>>>>> Yesterday, I run in a desperately moment the examples of rtai and >>>>>>> generic and wou!!! it worked!!! However I was I bit worried because I >>>>>>> thought that I have been losing my time and the rtnet list with my >>>>>>> stupids questions. Also, I modified the example to send 100 messages >>>>>>> and it ran. >>>>>>> >>>>>>> Today I tried to run the examples and again it failed. I tried to >>>>>>> make a rtnet stop and rtnet notdma again but it failed to unload the >>>>>>> module rtipv4. So, I needed to reboot the box. After reboot it, I >>>>>>> could run again the examples, but only one time. The next time it >>>>>>> failed again, and now I check the /var/log/kern messages and I found >>>>>>> this: >>>>>>> >>>>>>> >>>>>>> May 3 10:45:03 ulises kernel: LXRT CHANGED MODE (SYSCALL), PID = >>>>>>> 4304, SYSCALL = 4. >>>>>>> May 3 10:48:30 ulises kernel: Assertion >>>>>>> failed! /root/rtnet-0.9.8/stack/ipv4/udp.c:rt_udp_recvmsg:398 skb != >>>>>>> NULL May 3 10:48:30 ulises kernel: LXRT releases PID 4304 (ID: >>>>>>> simpleserver). May 3 10:48:50 ulises kernel: Assertion >>>>>>> failed! /root/rtnet-0.9.8/stack/ipv4/udp.c:rt_udp_recvmsg:398 skb != >>>>>>> NULL May 3 10:48:50 ulises kernel: LXRT releases PID 4307 (ID: >>>>>>> simpleserver). >>>>>> Hmm. What RTAI version? I vaguely recall some bug in RTAI's RTDM layer >>>>>> (3.4?) that triggered similar messages. And it would also explain >>>>>> indeterministic behaviour your observed (internal event signalling was >>>>>> broken). >>>>> rtai 3.4. ummmm ugly. Also I found that I can repeat it if the program >>>>> fails, or I kill it without finish the rt commands.... >>>> Vanilla RTAI 3.4* is not usable with RTnet, see below. Pick something >>>> more recent. >>>> >>>>>>> Also, I cannot made a rtnet stop because the script is stopped >>>>>>> removing the rtipv4 module. >>>>>>> >>>>>>> So, this is normal? It's something that I have done wrong? how can I >>>>>>> know what is happening? >>>>>> Core assertion failures are never normal and indicate bugs underneath. >>>>>> Unless you are running an older RTAI version, we would have to dig >>>>>> deeper. >>>>> Ok, next week I can prepare some test and example to send you. >>>> Bug hunting only makes sense if you update or patch your RTAI first. >>>> Here is the related thread I recalled: >>>> >>>> http://thread.gmane.org/gmane.linux.real-time.rtnet.user/2105 >>> well, following your recommendations I have downloaded the last stable >>> version of rtai 3.5. Compiled and installed without any important >>> problem. The problem persist. >>> >>> The idea is the sequent: >>> >>> I run a program that open a rt socket. For any reason, mainly because the >>> programmer is a rocky (as me) the program crash, or simple killed by the >>> user (crtl + c). >>> >>> Then I got a message: >>> >>> kernel: Assertion >>> failed! /root/rtnet-0.9.8/stack/ipv4/udp.c:rt_udp_recvmsg:398 skb >>> kernel: LXRT releases PID 12483 (ID: simpleserver). >> Are you sure you are _actually_ running the updated RTAI binaries? I'm >> asking for a good reason because I used to spend hours debugging ghost >> issues due to inconsistent builds... > > well, I downloaded this file: > > https://www.rtai.org/RTAI/rtai-3.5.tar.bz2
I do believe you. My point is if you checked twice that the modules
generated from those sources are actually those you loaded on your box.
>
>> Otherwise, this assertion signals that we either have a spurious wakeup
>> of the receiver (wakeup although no packet was queued) or that the queue
>> is corrupted. The former points at RTAI (but I really think to remember
>> that issue was solved), the latter was once a problem with RTnet (0.9.3,
>> since then everyone is happy with it).
>>
>>> I can run the program, but I need to change the port, because, although
>>> the program thinks that can use the port, never received some data.
>> After that assertion everything can happen.
>
> OK.
> I have realised that I'm using 0.9.8 version, not the last one of rtnet. Now
> I
> test it.
No fix in 0.9.9 should relate to your issue. Nevertheless, using a
recent version when starting new is not wrong.
>
>
>>> Also, a problem is that I cannot unload the rtnet modules, because:
>>>
>>> RTcfg: unloaded
>>> removing loopback...
>>> RTnet: unregistered rtlo
>>> RTnet: unregistered rteth0
>>> RTDM: RTDM: device still in use - waiting for release...
>>>
>>> so, is this a rtnet bug, a rtai but, or a simple a user bug that corrump
>>> the rtai/rtnet modules?
>> IF it turns out to be a persistent issue for RTAI 3.5, I would suggest
>> to capture a trace of the previous events when the assertion fires:
>
> well, always happen ...
>
>> CONFIG_IPIPE_TRACE (+TRACE_MCOUNT), "if (!skb) ipipe_trace_freeze(0);"
>> before the assertion line, sufficiently large
>> /proc/ipipe/trace/back_trace_points, and then let it go. The result
>> under /proc/ipipe/trace/frozen would allow a first look back in history
>> (kernel function calls) and may then inspire further instrumentation
>> ideas to track the issue down.
>
> I don't understand very well what are you saying ... do you want that I
> modified some file and I add this line:
> if (!skb) ipipe_trace_freeze(0);
>
> where?
--- stack/ipv4/udp.c (Revision 1121)
+++ stack/ipv4/udp.c (Arbeitskopie)
@@ -396,6 +396,7 @@ ssize_t rt_udp_recvmsg(struct rtdm_dev_c
}
skb = rtskb_dequeue_chain(&sock->incoming);
+ if (!skb) ipipe_trace_freeze(0);
RTNET_ASSERT(skb != NULL, return -EFAULT;);
uh = skb->h.uh;
But the problem remains that RTAI doesn't provide the required patch
revision for this experiment.
Jan
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------- 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

