Date: Sun, 26 Jan 2003 00:43:42 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Jeff Roberson <jroberson@chesapeake.net> Cc: Steve Kargl <sgk@troutmask.apl.washington.edu>, Robert Watson <rwatson@FreeBSD.ORG>, Gary Jennejohn <garyj@jennejohn.org>, <arch@FreeBSD.ORG> Subject: Re: New scheduler - Interactivity fixes Message-ID: <200301260843.h0Q8hgoZ030572@apollo.backplane.com> References: <20030126001955.I7994-100000@mail.chesapeake.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Ok, I've run some preliminary tests w/ ULE. It's a lot better
vis-a-vie interactive and batch operations. I think one
thing you can do to get better MP results is to add a bit of
code to sched_choose(). If sched_choose() cannot find any
KSEs to run on kseq->ksq_curr or kseq->ksq_next it should
search the other cpu's queues. I haven't tested your scheduler
with this but I note that without it KSEs are left bound to the cpu
they were originally scheduled on (cpu = ke->ke_oncpu in sched_add()),
which will create a lot of lost cycles on an SMP box.
My gut feeling is that sched_choose() is the best place to deal with
this and sched_add() should be left as-is.
I also think you can completely remove sched_pickcpu() without
any detrimental effects (test that!). Just have the sched_fork()
code leave ke_oncpu alone (like 4bsd does). My gut feeling is
that additional work on sched_choose() will yield the best
improvement.
I'll have some comparative buildworld numbers tomorrow, I've run
out of time tonight.
-Matt
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301260843.h0Q8hgoZ030572>
