From owner-svn-src-head@FreeBSD.ORG Thu Apr 15 15:05:30 2010 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 157BD1065675; Thu, 15 Apr 2010 15:05:30 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id C936C8FC1A; Thu, 15 Apr 2010 15:05:29 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id 9413173098; Thu, 15 Apr 2010 17:15:57 +0200 (CEST) Date: Thu, 15 Apr 2010 17:15:57 +0200 From: Luigi Rizzo To: Attila Nagy , fabio@gandalf.sssup.it Message-ID: <20100415151557.GA98341@onelab2.iet.unipi.it> References: <201004121637.o3CGbjSK080066@svn.freebsd.org> <4BC724DF.7010907@fsn.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4BC724DF.7010907@fsn.hu> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@FreeBSD.org, Luigi Rizzo , src-committers@FreeBSD.org Subject: Re: svn commit: r206497 - in head: sbin/geom/class sbin/geom/class/sched sys/geom/sched sys/modules/geom sys/modules/geom/geom_sched sys/modules/geom/geom_sched/gs_sched sys/modules/geom/geom_sched/gsc... X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 15:05:30 -0000 On Thu, Apr 15, 2010 at 04:38:23PM +0200, Attila Nagy wrote: > On 04/12/2010 06:37 PM, Luigi Rizzo wrote: > > Bring in geom_sched, support for scheduling disk I/O requests > > in a device independent manner. Also include an example anticipatory > > scheduler, gsched_rr, which gives very nice performance improvements > > in presence of competing random access patterns. > > > > This is joint work with Fabio Checconi, developed last year > > and presented at BSDCan 2009. You can find details in the > > README file or at > > > Are there any plans to bring in something like Linux's ionice (or even > better solutions)? Is it possible to do it easily at all (the user and > GEOM are seemingly very far from each other)? I can easily[*] modify the I/O priority/weight of process or threads, but you have to keep in mind that once a request is intercepted by the filesystem code (e.g. for delayed writes, or avoid duplication of pending reads), by the time it hits the disk it is not trivial to tell who should be charged for it. This is an area where we still need to experiment a bit (especially to find on which process issues which request, say for metadata, delayed writes, shared reads). [*] the 'easy' way is put the information in an external hash table and look it up using as a search key either of uid, gid, . I think we did something like this in the GSOC2005 project on disk scheduling. A more intrusive way involves extending the struct thread with an extra field to store the io priority. cheers luigi