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

Luigi Rizzo rizzo at iet.unipi.it
Thu Apr 15 15:05:30 UTC 2010


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.

cheers
luigi


More information about the svn-src-head mailing list