From owner-freebsd-arch Sun Jan 26 0:43:45 2003 Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6335A37B401; Sun, 26 Jan 2003 00:43:44 -0800 (PST) Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 01D1A43F43; Sun, 26 Jan 2003 00:43:44 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (localhost [127.0.0.1]) by apollo.backplane.com (8.12.6/8.12.6) with ESMTP id h0Q8hg0i030573; Sun, 26 Jan 2003 00:43:42 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.12.6/8.12.6/Submit) id h0Q8hgoZ030572; Sun, 26 Jan 2003 00:43:42 -0800 (PST) Date: Sun, 26 Jan 2003 00:43:42 -0800 (PST) From: Matthew Dillon Message-Id: <200301260843.h0Q8hgoZ030572@apollo.backplane.com> To: Jeff Roberson Cc: Steve Kargl , Robert Watson , Gary Jennejohn , Subject: Re: New scheduler - Interactivity fixes References: <20030126001955.I7994-100000@mail.chesapeake.net> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message