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

Reply via email to