GEOM disk IO scheduler framework

A GEOM IO scheduler framework has been committed! The framework allows for multiple IO schedulers to be installed on top of GEOM providers (usually disk drives). As a consequence, potentially different schedulers can be installed on different drives. The work was done by Luigi Rizzo and Fabio Checconi.

The traditional BSD IO scheduler is the "elevator" scheduler which basically attempts to sort the queue of IO requests in the order of increasing IO offset, attempting to maximize the number of IOs done in a single sweep of a disk head. The new GEOM-based scheduler framework allow for smarter scheduling of IOs.

There are actually limited cases when an OS-based IO scheduler can help - they are basically the at the intersection of devices which have large-ish seek latencies (like mechanical drives) but without a smart IO controller (e.g. a RAID controller) that would manage IO for them. In short, the most benefits from IO scheduling will be observed on desktop machines using UFS and similar file systems.

As ZFS does its own IO scheduling (and it's pretty smart overall), it doesn't need additional IO scheduling.

#1 Re: GEOM disk IO scheduler framework

Added on 2010-04-13T16:48 by Dominic Fandrey <>

This actually sounds pretty cool. Does this sit above or under the FS layer? I.e. can it be used to optimize the way a filesystem driver (e.g. UFS) accesses different media like a traditional HD or Flash?

#2 Re: GEOM disk IO scheduler framework

Added on 2010-04-13T17:30 by Ivan Voras

GEOM is below the file system level. Anyway, making a file system aware of scheduling is more work then devising a scheduling algorithm - it touches on how the structures are spread across the drive. ZFS has this in mind - it will also schedule IO on different drives in a RAID set so the results are faster.

#3 Re: GEOM disk IO scheduler framework

Added on 2010-04-16T21:46 by Mr*Gibson

I saw the posts re this on the mailing lists a year ago (?), and found it really interesting. But I was rather surprised of the little attention it got so I assumed there wasn't really a big need for different disk scheduling algorithms in the FreeBSD community. Anyway, really interesting.

#4 Re: GEOM disk IO scheduler framework

Added on 2010-04-16T21:54 by Ivan Voras

As most things in BSD-land, there is almost no funding, so work like this usually waits until someone needs an university CS degree, Google Summer of Code or something else comes along. You are right that this commited code is the continuation of the work done 1 year+ ago.

#5 Re: GEOM disk IO scheduler framework

Added on 2011-04-25T09:06 by Chris

Hopefully this means we'll be able to get an ionice equivelant soon, or simply have the regular nice value also influence IO priority.

Today's CPUs are so fast that most loads are becoming disk bound. SSD are nice, but it'll still be a while yet before they are big and affordible enough to be useful for general use.

Comments !