Messages in this thread |  | | Date | Fri, 16 Aug 2002 19:50:57 +0300 | From | Antti Salmela <> | Subject | Re: [OOPS] 2.4.20-pre1-ac3, SMP (Dual PIII) |
| |
On Fri, Aug 16, 2002 at 04:17:18PM +0200, Christian Ehrhardt wrote: > On Thu, Aug 15, 2002 at 02:33:02AM +0100, Alan Cox wrote: > > Thanks - your analysis is informative to say the least. It looks like > > the PIV load balancing code is the problem. > > The (untested) patch below should correct this problem along with > a locking oddity (last hunk) that IMHO either needs fixing or a BIG > comment. Be prepared for a few (up to 4) lines of fuzz due to additional > BUG_ONs in both versions of the file.
With this patch I could boot 2.4.20-pre2-ac3 and it has now run nearly an hour without any problems.
> regards Christian Ehrhardt > > [1] http://www.atnf.csiro.au/people/rgooch/benchmarks/linux-scheduler.html > > > --- /usr/src/linux-2.4.20-pre1-ac3/kernel/sched.c Thu Aug 15 20:03:01 2002 > +++ sched.c Fri Aug 16 16:15:57 2002 > @@ -769,7 +772,7 @@ > set_tsk_need_resched(p); > > /* put it at the end of the queue: */ > - dequeue_task(p, rq->active); > + dequeue_task(p, p->array); > enqueue_task(p, rq->active); > } > goto out; > @@ -785,7 +788,7 @@ > if (p->sleep_avg) > p->sleep_avg--; > if (!--p->time_slice) { > - dequeue_task(p, rq->active); > + dequeue_task(p, p->array); > set_tsk_need_resched(p); > p->prio = effective_prio(p); > p->time_slice = TASK_TIMESLICE(p); > @@ -1396,7 +1399,7 @@ > */ > if (likely(current->prio == MAX_PRIO-1)) { > if (current->time_slice <= 1) { > - dequeue_task(current, rq->active); > + dequeue_task(current, array); > enqueue_task(current, rq->expired); > } else > current->time_slice--; > @@ -1411,7 +1414,7 @@ > list_add_tail(¤t->run_list, array->queue + current->prio); > __set_bit(current->prio, array->bitmap); > } > - spin_unlock(&rq->lock); > + rq_unlock (rq); > > schedule(); >
-- Antti Salmela - 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/
|  |