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...

Ulrich Spörlein uqs at spoerlein.net
Thu Apr 15 16:49:25 UTC 2010


On Thu, 15.04.2010 at 17:15:57 +0200, Luigi Rizzo wrote:
> 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, <pid/struct
> thread *>.  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.

What would already be helpful, is an I/O time measurement of the overall
system and have that displayed in, eg., vmstat like Linux and Solaris
do. It gives a better measure of if a system is CPU bound or I/O bound
or neither.

Can the scheduler help here?

Uli


More information about the svn-src-head mailing list