Re: sched.c:659 dec_rt_tasks BUG with patch-2.6.15-rt1(realtime-preempt)

From: Steven Rostedt
Date: Fri Jan 06 2006 - 20:04:26 EST


On Thu, 2006-01-05 at 17:15 +0200, Nedko Arnaudov wrote:
> Will try to crash SMP ASAP, I'm not able to do tests now.
>
> I do erase/burn of 210 MiB rw disk. Erase is done without crash.
> I use version 2.01.01a03 of cdrecord.
> It crashes when burning:
>
> http://nedko.arnaudov.name/tmp/rt-cdrecord-crash.jpg
>
> Same crash occurs when I run oss2jack with -d option.
> It does not occur when running without -d option (daemonize).
>

Nedko,

Could you try either the patch below, or the link
http://home.stny.rr.com/rostedt/patches/patch-2.6.15-rt2-sr2
which has the patch included, to see if this fixes your problem.

Thanks,

-- Steve

Index: linux-2.6.15-rt2/kernel/sched.c
===================================================================
--- linux-2.6.15-rt2.orig/kernel/sched.c 2006-01-06 17:49:41.000000000 -0500
+++ linux-2.6.15-rt2/kernel/sched.c 2006-01-06 19:36:17.000000000 -0500
@@ -783,7 +783,6 @@
static inline void inc_nr_running(task_t *p, runqueue_t *rq)
{
rq->nr_running++;
- inc_rt_tasks(p, rq);
}

static inline void dec_nr_running(task_t *p, runqueue_t *rq)
@@ -921,11 +920,17 @@
static inline
void __activate_task_after(task_t *p, task_t *parent, runqueue_t *rq)
{
+ trace_special_pid(p->pid, p->prio, rq->nr_running);
+ if (p->flags & PF_DEAD) {
+ printk("BUG: %s/%d: dead task enqueued!\n", p->comm, p->pid);
+ dump_stack();
+ }
+ sched_info_queued(p);
// FIXME: to head rather?
list_add_tail(&p->run_list, &parent->run_list);
p->array = parent->array;
p->array->nr_active++;
-
+ inc_rt_tasks(p, p->array->rq);
inc_nr_running(p, rq);
}



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/