update the geom_sched entry
This commit is contained in:
parent
6b92f5efb9
commit
4e23ae9366
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=33945
1 changed files with 41 additions and 16 deletions
|
@ -15,7 +15,7 @@ Ideas//EN"
|
|||
<ideas>
|
||||
<cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS" version="1.0">
|
||||
<cvs:keyword name="freebsd">
|
||||
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.110 2009/03/13 20:02:23 gabor Exp $
|
||||
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.111 2009/03/14 10:18:18 rwatson Exp $
|
||||
</cvs:keyword>
|
||||
</cvs:keywords>
|
||||
|
||||
|
@ -723,28 +723,53 @@ href="http://info.iet.unipi.it/~luigi/FreeBSD/linux_bsd_kld.html">here</a>.</p>
|
|||
</idea>
|
||||
|
||||
<idea id="psched">
|
||||
<title>Pluggable Disk Scheduler</title>
|
||||
<title>Geom-based Disk Schedulers</title>
|
||||
|
||||
<desc>
|
||||
<p><strong>Technical contact</strong>: <a
|
||||
href="mailto:s223560@studenti.ing.unipi.it">Emiliano Mennucci</a></p>
|
||||
href="mailto:luigi@freebsd.org">Luigi Rizzo</a></p>
|
||||
<p><strong>References</strong>: <a
|
||||
href="http://wiki.freebsd.org/moin.cgi/Hybrid">The Pluggable Disk
|
||||
Schedulers SoC project</a>, <a
|
||||
href="http://www.happyemi.org/hybrid/">Patches</a></p>
|
||||
<p>Our "Pluggable Disk Schedulers" SoC 2005 project resulted in code which
|
||||
solved the problem where large sequential I/O requests, or certain
|
||||
access patterns from one or a few processes, might almost completely
|
||||
starve other processes. It is available as a patch for RELENG_4 and
|
||||
RELENG_5. Unfortunately the code in FreeBSD-current (and RELENG_6)
|
||||
changed too much, so that the patches can not be committed. The goal
|
||||
of this project is to port the pluggable disk schedulers to the GEOM
|
||||
framework.</p>
|
||||
<p>Interested people should also have a look at <a
|
||||
href="http://lists.freebsd.org/pipermail/freebsd-geom/2007-January/001854.html">
|
||||
a mail thread about this</a> (Ulf is not working on this) and <a
|
||||
href="http://www.freebsd.org/cgi/mid.cgi?db=irt&id=20071011022001.GC13480@gandalf.sssup.it">
|
||||
further discussion</a> of the corresponding GEOM aspects.</p>
|
||||
<p>In a 2005 GSoC project, "Pluggable Disk Schedulers", Emiliano
|
||||
Mennucci explored the feasibility of pluggable disk schedulers
|
||||
for FreeBSD. The project was successful, but we could not explore
|
||||
certain approaches (e.g. "anticipation", where requests are delayed
|
||||
hoping that some future ones can served without a seek) due to
|
||||
architectural limitations the kernel had at the time.
|
||||
<p>
|
||||
Since then, the GEOM infrastructure has become available on FreeBSD
|
||||
for interacting with disk I/O requests. GEOM has enabled us to
|
||||
work on disk schedulers in a much more flexible way, allowing a
|
||||
much faster development of disk scheduling algorithms. With
|
||||
Fabio Checconi, we have developed a prototype
|
||||
implementation of some anticipatory schedulers, see
|
||||
<a href="http://info.iet.unipi.it/~luigi/FreeBSD/#geom_sched">GEOM_SCHED</a>.
|
||||
<p>
|
||||
GEOM_SCHED works within the geom layer, i.e. above the device driver
|
||||
where queueing of requests may actually occur. The way GEOM_SCHED
|
||||
does scheduling is by limiting the number of outstanding requests
|
||||
to the device, and the performance implications of this approach
|
||||
need to be measured. An alternative approach is to push the
|
||||
scheduler (using the same algorithms developed in GEOM_SCHED,
|
||||
and most likely the same code) within the device drivers. This less general
|
||||
(as it needs to be replicated in all drivers) but it may be
|
||||
an interesting thing to do e.g. for some popular device drivers
|
||||
such as ATA.
|
||||
<p>
|
||||
The proposed SoC work can address one or more of the following
|
||||
aspects:
|
||||
i) implement suitable classifiers for
|
||||
disk requests; ii) implement techniques for the auto-tuning of
|
||||
the scheduler parameters; iii) measure the performance implications
|
||||
of doing scheduling above the device driver, and possibly design
|
||||
and implement a suitable mechanism to push the GEOM_SCHED
|
||||
module within the device driver itself.
|
||||
<p>
|
||||
Ultimately, we expect to end up with a production quality subsystem
|
||||
for use in FreeBSD.
|
||||
|
||||
<p><strong>Requirements</strong>:</p>
|
||||
<ul>
|
||||
<li>Ability to read and understand foreign C code.</li>
|
||||
|
|
Loading…
Reference in a new issue