From owner-freebsd-geom@FreeBSD.ORG Fri Jan 5 09:53:23 2007 Return-Path: X-Original-To: freebsd-geom@freebsd.org Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AEDA516A494 for ; Fri, 5 Jan 2007 09:53:23 +0000 (UTC) (envelope-from arne_woerner@yahoo.com) Received: from web30301.mail.mud.yahoo.com (web30301.mail.mud.yahoo.com [209.191.69.63]) by mx1.freebsd.org (Postfix) with SMTP id 740F313C441 for ; Fri, 5 Jan 2007 09:53:23 +0000 (UTC) (envelope-from arne_woerner@yahoo.com) Received: (qmail 99250 invoked by uid 60001); 5 Jan 2007 09:53:22 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=hkSxbywgGMTVF+/GLvSWTSRCVUpCGqr/5pGoXvWmJK/AbUawkm8r5vMJf03rPoWCvGMKuwobaXbU+r72J3eNug8DBIKEKBX08SmUzksNVrmJLywFbwYHmqFkm6narCpPZ1OLIWmeGwNbXclVJjH+PGlfd4ZEjPdEtM3L0EUCRWg=; X-YMail-OSG: 8xhOjN0VM1luv79LkFTJ212crp4Q06yQC1ZYuJaJ.njYrlU3GzM0pNd49KqA4CHT.mncKHrbnbKFX9cx5HlYUaL7eG5WraWDnSo5xAuE8ZiczI7yvmxpbAxflzvLio4haCxnBT1CiVQ.j9kGoy11ySoFF57kQI.ln2KiflOQVGdXZilNEGaNI7Tcu7k6 Received: from [85.212.3.5] by web30301.mail.mud.yahoo.com via HTTP; Fri, 05 Jan 2007 01:53:22 PST Date: Fri, 5 Jan 2007 01:53:22 -0800 (PST) From: "R. B. Riddick" To: lulf@stud.ntnu.no, freebsd-geom@freebsd.org, freebsd-current@freebsd.org In-Reply-To: <20070105015800.s3rqdzgm8k8owk4s@webmail.ntnu.no> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Message-ID: <703692.97797.qm@web30301.mail.mud.yahoo.com> Cc: Subject: Re: Pluggable Disk Schedulers in GEOM X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jan 2007 09:53:23 -0000 --- lulf@stud.ntnu.no wrote: > for I/O. Then I would extract out the default I/O scheduler and try out some > other ways to schedule I/O. Also, I'm not sure how I would handle each > schedulers way to organize the queue. One should allow for different types > of bioq's for the schedulers since they may have different needs of > organizing queues (like a heap maybe). > I would _guess_ for features like in TCQ (Tagged Command Queuing) or NCQ (Native Command Queuing) the g_down thread is the wrong place, because: It would need knowledge about the underlying GEOM device, so that it can determine the correct moment to start a certain read request (currently g_down (g_io_schedule_down in src/sys/geom/geom_io.c) sees most likely just one request in its queue before it goes to sleep again, so that reordering this single one request would make no sense; if one delays read request this might lead to worse performance than before, because the disk handles simultaneous read requests better). For write requests this (TCQ/NCQ related scheduling) might be easier, because they can be delayed and delivered back up (g_up) early (I did that in graid5). A further enhancement might be the combination of requests (e.g. if they overlap or if they (nearly) adjoin to each other), which could be done in g_down, too (I do that in graid5, which leaded to a lot of bcopy-activity). -Arne __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com