Re: stuck on TLB IPI wait (CPU#0)

From: Chris Mason (mason@suse.com)
Date: Fri Apr 21 2000 - 09:54:49 EST


On Fri, 21 Apr 2000, Richard B. Johnson wrote:

[ reiserfs in 2.2.X triggers TLB IPI wait hang, this patch should fix ]

> > --- linux/kernel/sched.c-o Wed Feb 9 14:27:20 2000
> > +++ linux/kernel/sched.c Wed Mar 29 12:53:41 2000
> > @@ -803,6 +803,7 @@
> > goto handle_bh_back;
> >
> > handle_tq_scheduler:
> > + __sti();
> > run_task_queue(&tq_scheduler);
> > goto tq_scheduler_back;
> >
> >
>
> But doesn't this just mask a more basic problem with somebody (in some
> path) not releasing a lock?
>

No, reiserfs calls lock_kernel() from inside a task it places on the
tq_scheduler queue. In a few cases, this task queue is run with
interrupts turned off, and that's when our lock_kernel call triggers the
TLB problem.

The work around in our 2.3 code is to use our own task queue, run at a
safe time.

-chris

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



This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:19 EST