From owner-freebsd-hackers@FreeBSD.ORG Fri Oct 12 07:32:44 2007 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A478B16A418 for ; Fri, 12 Oct 2007 07:32:44 +0000 (UTC) (envelope-from fabio@freebsd.org) Received: from sssup.it (ms01.sssup.it [193.205.80.99]) by mx1.freebsd.org (Postfix) with ESMTP id 2F68B13C448 for ; Fri, 12 Oct 2007 07:32:43 +0000 (UTC) (envelope-from fabio@freebsd.org) Received: from [10.30.3.4] (HELO granpasso.retis) by sssup.it (CommuniGate Pro SMTP 4.1.8) with SMTP id 34924450 for hackers@freebsd.org; Fri, 12 Oct 2007 09:21:16 +0200 Received: (qmail 34532 invoked from network); 12 Oct 2007 07:32:32 -0000 Received: from unknown (HELO granpasso.retis) (127.0.0.1) by localhost.retis with SMTP; 12 Oct 2007 07:32:32 -0000 Received: (from fabio@localhost) by granpasso.retis (8.14.1/8.14.1/Submit) id l9C7WVZs034530; Fri, 12 Oct 2007 09:32:31 +0200 (CEST) (envelope-from fabio@freebsd.org) X-Authentication-Warning: granpasso.retis: fabio set sender to fabio@freebsd.org using -f Date: Fri, 12 Oct 2007 09:32:31 +0200 From: Fabio Checconi To: Alexander Leidinger Message-ID: <20071012073231.GA34322@gandalf.sssup.it> References: <20071011022001.GC13480@gandalf.sssup.it> <20071011080734.GA20897@stud.ntnu.no> <20071011114828.GE18725@gandalf.sssup.it> <20071012081835.dtrpaz2c0880oow4@webmail.leidinger.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071012081835.dtrpaz2c0880oow4@webmail.leidinger.net> User-Agent: Mutt/1.4.2.3i Cc: hackers@freebsd.org, Ulf Lilleengen Subject: Re: Pluggable Disk Scheduler Project X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 07:32:44 -0000 > From: Alexander Leidinger > Date: Fri, Oct 12, 2007 08:18:35AM +0200 > > Quoting Fabio Checconi (from Thu, 11 Oct 2007 > 13:48:28 +0200): > > >>From: Ulf Lilleengen > >>Date: Thu, Oct 11, 2007 10:07:34AM +0200 > >> > >>On tor, okt 11, 2007 at 04:20:01 +0200, Fabio Checconi wrote: > >>> o How to deal with devices that handle multiple request per time? > >>This is an example of the problems you get doing this in GEOM. You > >>don't have > >>very good knowledge of the hardware. > > One can't pass this info from the lower layers up into GEOM (maybe by > adding some attribute querying interface in GEOM if it doesn't exist)? > I think the g_getattr() call is there/can be used for things like that. The scheduler should need only to know how many outstanding requests it can allow, otherwise it should be rather independend from the lower layers. Anyway hardware queueing brings also a different kind of problems, that is it can't be mixed easily with anticipation, because if you have syncronous requests and you dispatch more than one of them you are serving more than one process by definition, thus you can break anticipation, unless this thing is done very carefully (e.g., when switching from a process to another, or mixing syncronous and asynchronous requests.)