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>