Bugs In 24.11
At the end of dispatch_global_irq (in rtai.c) substitute:
if (!test_bit(cpuid, &global.cpu_in_sti) && lflags) {
hard_sti();
while (test_and_clear_bit(0, &kbrdirq)) {
do_linux_irq(global_vector[KBRD_IRQ]);
}
linux_sti(0);
return 1;
}
with:
if (lflags) {
hard_sti();
while (test_and_clear_bit(0, &kbrdirq)) {
do_linux_irq(global_vector[KBRD_IRQ]);
}
if (!test_bit(cpuid, &global.cpu_in_sti)) {
linux_sti(0);
}
return 1;
}
Date: Thu, 10 Jul 2003 12:18:25 +0200 Subject: Re: Computer "temporarly" freeze when num lock is used At 12.44 09/07/03 +0200, Paolo Mantegazza wrote: >Look at RTAI stromoboli CVS version. It works perfectly, thanks. At first I was a little afraid because hundreds of lines where modified from revision 1.86 to revision 1.87 in order to fix this bug. Then I realized that 1.87 is quite similar to the stock 24.1.11 rtai.c. So I suggest everybody to simply use the cvs version. Thanks again Alberto
...I tried to find these answers looking through RTAI and Linux code, but to no avail. I did, however, uncover what I believe is an omission in infnewlxrt.c. When we delete the RTAI task (near the bottom of linux_process_termination) we fail to free the LXRT slot associated with the name of the task (assigned during rtai_task_init). There is a call to rt_drg_on_adr when we delete the task normally (i.e. rt_task_delete) that does _NOT_ appear here. I believe the in these two functions should be the same. This would explain why I've seen the task names not disappear from /proc/rtai/lxrt if my app does not call rt_task_delete on all RTAI tasks.
So, to sum up, usage of RTAI/Adeos is recommended in the etna (24.1.11) and stromboli (24.1.12) branches with: