[LITMUS^RT] Zombie task after the experiment

Ricardo Teixeira ricardo.btxr at gmail.com
Wed Dec 12 03:10:25 CET 2018


Dear all,

I have been implementing a resource sharing protocol for an existing
multiprocessor scheduling algorithm in Litmus.

Sometimes some tasks remain zombies after the time to stop the experiment.
Debugging and investigating the logs, I noticed that these tasks pass
through this code, inside kernel/sched/litmus.c

/* check if the task became invalid while we dropped the lock */
if (next && (!is_realtime(next) || !tsk_rt(next)->present)) {
TRACE_TASK(next,
"BAD: next (no longer?) valid\n");
litmus->next_became_invalid(next);
litmus_reschedule_local();
next = NULL;
}

I noticed that the value of the attribute called "present" is 0 at that
point.

This condition can make the task zombie? What can make this value equals to
0 and how can I avoid it? The algorithm code does not set this value
explicitly.

Best regards,

Ricardo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20181211/1285f1f1/attachment.html>


More information about the litmus-dev mailing list