From owner-freebsd-arch Sat Jan 25 19:48: 9 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 7148137B401; Sat, 25 Jan 2003 19:48:08 -0800 (PST) Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0F87943EB2; Sat, 25 Jan 2003 19:48:08 -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 h0Q3m60i024914; Sat, 25 Jan 2003 19:48:06 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.12.6/8.12.6/Submit) id h0Q3m65F024913; Sat, 25 Jan 2003 19:48:06 -0800 (PST) Date: Sat, 25 Jan 2003 19:48:06 -0800 (PST) From: Matthew Dillon Message-Id: <200301260348.h0Q3m65F024913@apollo.backplane.com> To: Jeff Roberson Cc: Steve Kargl , Robert Watson , Gary Jennejohn , Subject: Re: New scheduler (#3) References: <20030125220945.L18109-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 :I'd be very interested in hearing a critique of the API. There are a few :things that I think are missing now. For example, a sched_exec(). Also, :I think sched_fork() should be a finer grained thing like: : :sched_fork_kse() :sched_fork_kseg() :sched_fork_td() :sched_fork_proc() So far the API is sufficient for the fractional-fair-share I intend to implement later on. One thing I noticed was that the runq_*() procedures are in kern_switch.c when, in fact, they are only used by sched_*() functions (and in the workup I did of my own scheduler I didn't use them at all). That *might* argue for moving them into sched_*() or into their own file. I only hesitate because they are rather involved despite being sched_*() specific. :I'm still not sure about the flip-flop that you're talking about. The :others should be very quick to fix. I'll get a patched version going :pretty quickly here. : :Thank you very much for the review matt. This is the most thorough :feedback I've received yet. : :Cheers, :Jeff I think I misread that part of the code. Ah, I see what happened. I misread the sched_setup() code. I thought it was indexing into another cpu's kseq. This implies that either process ping-ponging is not a problem relative to the other issues, or that it is more subtle... perhaps an unstable ping pong occurs in the rescheduling code (since you reschedule every time the slice runs out). -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message