Messages in this thread | | | Date | Sun, 7 Feb 1999 11:58:58 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: Linux-2.2.2-pre2.. |
| |
On Sun, 7 Feb 1999, Linus Torvalds wrote: > > You are correct. The scheduler code is special, and the scheduler will > leave lock_depth set even though it has released the lock. I did that as a > performance optimization, because I thought nobody would ever care, but > it's obvious that yes, you do have to also set lock_depth to -1 inside the > scheduler.
Actually, the proper approach is probably to move the "run_task_queue(&tq_scheduler);" to above the code that releases the kernel lock.
Bottom half stuff can be done with the kernel lock in this "inconsistent" state (because bottom half code cannot aquire the kernel lock anyway, that would lead to instant lockups), so the bottom half stuff can be left where it is, but the tq_scheduler running should be done at the top of the scheduler.
Linus
- 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/
| |