Paolo Mantegazza wrote:
It does not show up in 3.1 because the supporting hrdened real time
kthread just suspends while in the CVS exits also.
But it also exited in all kernel-only schedulers. What is the difference
with LXRT that we got a crash here?
The following might be a solution (SMP safe also):
...as safe as the original one: you still have to know what your
task_fun does when you terminate - some kind of "rt_task_join" would be
safe under any circumstances.
[...]
void cleanup_module(void)
{
rt_sem_delete(&sem);
rt_printk("SEM DELETED\n");
set_cpus_allowed(current, cpumask_of_cpu(task.runnable_on_cpus));
if (task.magic) {
rt_task_delete(&task);
Well, what is the difference between this application-level check and
the one performed in clr_rtext
(http://www.rts.uni-hannover.de/rtai/lxr/source/rtai-core/sched/rtai/sched_lxrt.c?v=cvs-stable-vesuvio#L977)?
I do not yet consider this as a solution, at best it's a workaround.
Sorry, I simply hate kernel oopses when I don't understand their real
reason (and potential side effects).
Jan