From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 17 12:19:18 2007 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E040716A418 for ; Wed, 17 Oct 2007 12:19:18 +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 402DF13C465 for ; Wed, 17 Oct 2007 12:19:17 +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 ESMTP-TLS id 35081401; Wed, 17 Oct 2007 14:07:44 +0200 Received: from granpasso.retis (localhost.retis [127.0.0.1]) by granpasso.retis (8.14.1/8.14.1) with ESMTP id l9HCJ8h6000500; Wed, 17 Oct 2007 14:19:08 +0200 (CEST) (envelope-from fabio@freebsd.org) Received: (from fabio@localhost) by granpasso.retis (8.14.1/8.14.1/Submit) id l9HCJ7TM000499; Wed, 17 Oct 2007 14:19:07 +0200 (CEST) (envelope-from fabio@freebsd.org) X-Authentication-Warning: granpasso.retis: fabio set sender to fabio@freebsd.org using -f Date: Wed, 17 Oct 2007 14:19:07 +0200 From: Fabio Checconi To: Ulf Lilleengen Message-ID: <20071017121907.GL99087@gandalf.sssup.it> Mail-Followup-To: Ulf Lilleengen , Karsten Behrmann , freebsd-hackers@freebsd.org References: <20071011022001.GC13480@gandalf.sssup.it> <20071016161037.5ab1b74f@39-25.mops.rwth-aachen.de> <20071017110715.GA25075@stud.ntnu.no> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071017110715.GA25075@stud.ntnu.no> User-Agent: Mutt/1.4.2.3i Cc: Karsten Behrmann , freebsd-hackers@freebsd.org 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: Wed, 17 Oct 2007 12:19:19 -0000 > From: Ulf Lilleengen > Date: Wed, Oct 17, 2007 01:07:15PM +0200 > > On tir, okt 16, 2007 at 04:10:37 +0200, Karsten Behrmann wrote: > Over to a more general view of it's architecture: > > When I looked at this project for the first time, I was under the impression > that this would be best done in a GEOM class. > > However, I think the approach that was taken in the Hybrid project is better Ok. I think that such a solution requires a lot more effort on the design and coding sides, as it requires the modification of the drivers and can bring us problems with locking and with the queueing assumptions that may vary on a per-driver basis. Maybe I've not enough experience/knowledge of the driver subsystem, but I would not remove the queueing that is done now by the drivers (think of ata freezepoints,) but instead I'd like to try to grab the requests before they get to the driver (e.g., in/before their d_strategy call) and have some sort of pull mechanism when requests complete (still don't have any (serious) idea on that, I fear that the right place to do that, for locking issues and so on, can be driver dependent.) Any ideas on that? Which drivers can be good starting points to try to write down some code? > Also, I got my test-box up again today, and will be trying your patch as soon > as I've upgraded it to CURRENT Fabio. Thank you very much! Please consider that my primary concern with the patch was its interface, the algorithm is just an example (it should give an idea of the performance loss due to the mechanism overhead with async requests, and some improvement on greedy sync loads.)