Messages in this thread | | | Date | Fri, 28 Mar 2003 11:45:10 +0100 (CET) | From | Ingo Molnar <> | Subject | Re: 2.5.66-mm1 |
| |
On Thu, 27 Mar 2003, Andrew Morton wrote:
> That longer Code: line is really handy. > > You died in schedule()->deactivate_task()->dequeue_task(). > > static inline void dequeue_task(struct task_struct *p, prio_array_t *array) > { > array->nr_active--; > > `array' is zero. > > I'm going to Cc Ingo and run away. Ed uses preempt.
hm, this is an 'impossible' scenario from the scheduler code POV. Whenever we deactivate a task, we remove it from the runqueue and set p->array to NULL. Whenever we activate a task again, we set p->array to non-NULL. A double-deactivate is not possible. I tried to reproduce it with various scheduler workloads, but didnt succeed.
Mike, do you have a backtrace of the crash you saw?
Ingo
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |