Messages in this thread Patch in this message | | | Date | Thu, 17 Sep 1998 17:55:34 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: Interesting scheduling times |
| |
On Fri, 18 Sep 1998, Richard Gooch wrote: > > Linus: what do you think of this idea? A valid project for 2.3? > I have to say I'm impressed with the soft-RT performance of Linux. In > my view the main limitation is the jiffies delay between when an RT > process is unblocked and when it starts running.
A single run-queue is almost always better than multiple run-queues, and I'm very unlikely to change that.
The reason for a single run-queue is that it's about 10 times simpler than any of the alternatives, and it's never slower in real life. Yes, we may end up walking a few more entries, but the simplicity more than pays back the cost of that walk.
Even under heavy load, the runqueue is seldom more than a few entries deep. More than 10 entries on the run-queue is already very rare, and when it does happen the scheduling overhead is very small compared to what else the machine is doing: having that many entries implies that the scheduler isn't your biggest bottle-neck anyway.
That said, the idea of just having two run-queues, one with real-time processes and one without is so far the best multi-runqueue idea I've heard. So yes, I could imagine doing something like that, but I still don't actually believe that the run-queue is the major bottle-neck.
Linus
PS. Here's the patch to make 2.1.122 perform as it should wrt scheduling, and not save the FP register state all the time. Embarrassing.
diff -u --recursive --new-file v2.1.122/linux/arch/i386/kernel/process.c linux/arch/i386/kernel/process.c --- v2.1.122/linux/arch/i386/kernel/process.c Thu Sep 17 17:53:34 1998 +++ linux/arch/i386/kernel/process.c Thu Sep 17 17:41:51 1998 @@ -540,10 +540,10 @@ static inline void unlazy_fpu(struct task_struct *tsk) { if (tsk->flags & PF_USEDFPU) { - tsk->flags &= ~PF_USEDFPU; __asm__("fnsave %0":"=m" (tsk->tss.i387)); - stts(); asm volatile("fwait"); + tsk->flags &= ~PF_USEDFPU; + stts(); } }
- 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/
| |