genetic-zaphod-cpu-scheduler/Jake Moilanen's Linux Kernel Homepage.html
2024-04-29 09:35:35 -04:00

393 lines
No EOL
26 KiB
HTML

<!-- saved from url=(0067)https://web.archive.org/web/20060528133239/http://kernel.jakem.net/ -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><script src="./Jake Moilanen&#39;s Linux Kernel Homepage_files/analytics.js" type="text/javascript"></script>
<script type="text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app220.us.archive.org';v.server_ms=485;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./Jake Moilanen&#39;s Linux Kernel Homepage_files/bundle-playback.js" charset="utf-8"></script>
<script type="text/javascript" src="./Jake Moilanen&#39;s Linux Kernel Homepage_files/wombat.js" charset="utf-8"></script>
<script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script>
<script type="text/javascript" src="./Jake Moilanen&#39;s Linux Kernel Homepage_files/ruffle.js"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://kernel.jakem.net:80/","20060528133239","https://web.archive.org/","web","https://web-static.archive.org/_static/",
"1148823159");
</script>
<link rel="stylesheet" type="text/css" href="./Jake Moilanen&#39;s Linux Kernel Homepage_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./Jake Moilanen&#39;s Linux Kernel Homepage_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>Jake Moilanen's Linux Kernel Homepage</title>
<style>
<!--
A:link {text-decoration: none; color:#00000}
A:visited {text-decoration: none; color: #00000}
A:active {text-decoration: none; color:#00000}
A:hover {text-decoration: underline; color: white}
-->
</style>
<link rel="stylesheet" type="text/css" href="./Jake Moilanen&#39;s Linux Kernel Homepage_files/default.css">
</head> <!--bgcolor="#6c6a88"-->
<body text="#333333" link="#5D7790" vlink="#5D7790" alink="#5D7790" data-new-gr-c-s-check-loaded="14.1169.0" data-gr-ext-installed=""><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<script>__wm.rw(0);</script>
<div id="wm-ipp-base" lang="en" style="display: block; direction: ltr; height: 1px;"><template shadowrootmode="closed"><div id="wm-ipp" style="position:fixed;left:0;top:0;right:0;" class="">
<div id="donato" style="position:relative;width:100%;">
<div id="donato-base">
<iframe id="donato-if" src="https://archive.org/includes/donate.php?as_page=1&amp;platform=wb&amp;referer=https%3A//web.archive.org/web/20060528133239/http%3A//kernel.jakem.net/" scrolling="no" frameborder="0" style="width:100%; height:100%">
</iframe>
</div>
</div><div id="wm-ipp-inside" style="display: none;">
<div id="wm-toolbar" style="position:relative;display:flex;flex-flow:row nowrap;justify-content:space-between;">
<div id="wm-logo" style="/*width:110px;*/padding-top:12px;">
<a href="https://web.archive.org/web/" title="Wayback Machine home page"><img src="https://web-static.archive.org/_static/images/toolbar/wayback-toolbar-logo-200.png" srcset="https://web-static.archive.org/_static/images/toolbar/wayback-toolbar-logo-100.png, https://web-static.archive.org/_static/images/toolbar/wayback-toolbar-logo-150.png 1.5x, https://web-static.archive.org/_static/images/toolbar/wayback-toolbar-logo-200.png 2x" alt="Wayback Machine" style="width:100px" border="0"></a>
</div>
<div class="c" style="display:flex;flex-flow:column nowrap;justify-content:space-between;flex:1;">
<form class="u" style="display:flex;flex-direction:row;flex-wrap:nowrap;" target="_top" method="get" action="https://web.archive.org/web/submit" name="wmtb" id="wmtb"><input type="text" name="url" id="wmtbURL" value="http://kernel.jakem.net/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20060528133239"><input type="submit" value="Go">
</form>
<div style="display:flex;flex-flow:row nowrap;align-items:flex-end;">
<div class="s" id="wm-nav-captures" style="flex:1;"><a class="t" href="https://web.archive.org/web/*/http://kernel.jakem.net/" title="See a list of every capture for this URL">25 captures</a><div class="r" title="Timespan for captures of this URL">9 Dec 2004 - 20 Dec 2011</div></div>
<div class="k">
<a href="https://web.archive.org/web/20241101000000/http://kernel.jakem.net/" id="wm-graph-anchor">
<div id="wm-ipp-sparkline" title="Explore captures for this URL" style="position: relative">
<canvas id="wm-sparkline-canvas" width="725" height="27" border="0"></canvas>
<div class="yt" style="display: none; width: 25px; height: 27px; left: 700px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 721px;"></div></div>
</a>
</div>
</div>
</div>
<div class="n">
<table>
<tbody>
<!-- NEXT/PREV MONTH NAV AND MONTH INDICATOR -->
<tr class="m">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20051023115820/http://kernel.jakem.net:80/" title="23 Oct 2005"><strong>Oct</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 13:32:39 May 28, 2006">May</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20060826214450/http://kernel.jakem.net:80/" title="26 Aug 2006"><strong>Aug</strong></a></td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20051023115820/http://kernel.jakem.net:80/" title="11:58:20 Oct 23, 2005"><img src="https://web-static.archive.org/_static/images/toolbar/wm_tb_prv_on.png" alt="Previous capture" width="14" height="16" border="0"></a></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 13:32:39 May 28, 2006">28</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20060618092128/http://kernel.jakem.net:80/" title="09:21:28 Jun 18, 2006"><img src="https://web-static.archive.org/_static/images/toolbar/wm_tb_nxt_on.png" alt="Next capture" width="14" height="16" border="0"></a></td>
</tr>
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR -->
<tr class="y">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20050403080757/http://kernel.jakem.net:80/" title="03 Apr 2005"><strong>2005</strong></a></td>
<td class="c" id="displayYearEl" title="You are here: 13:32:39 May 28, 2006">2006</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20071102052834/http://kernel.jakem.net:80/" title="02 Nov 2007"><strong>2007</strong></a></td>
</tr>
</tbody>
</table>
</div>
<div class="r" style="display:flex;flex-flow:column nowrap;align-items:flex-end;justify-content:space-between;">
<div id="wm-btns" style="text-align:right;height:23px;">
<span class="xxs">
<div id="wm-save-snapshot-success">success</div>
<div id="wm-save-snapshot-fail">fail</div>
<a id="wm-save-snapshot-open" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#" title="Share via My Web Archive" style="display: none;">
<span class="iconochive-web"></span>
</a>
<a href="https://archive.org/account/login.php" title="Sign In" id="wm-sign-in" style="display: inline-block;">
<span class="iconochive-person"></span>
</a>
<span id="wm-save-snapshot-in-progress" class="iconochive-web" style="display: none;"></span>
</span>
<a class="xxs" href="http://faq.web.archive.org/" title="Get some help using the Wayback Machine" style="top:-6px;"><span class="iconochive-question" style="color:rgb(87,186,244);font-size:160%;"></span></a>
<a id="wm-tb-close" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#close" style="top:-2px;" title="Close the toolbar"><span class="iconochive-remove-circle" style="color:#888888;font-size:240%;"></span></a>
</div>
<div id="wm-share" class="xxs">
<a href="https://web.archive.org/web/20060528133239/http://web.archive.org/screenshot/http://kernel.jakem.net/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#" data-url="https://web.archive.org/web/20060528133239/http://kernel.jakem.net:80/" title="Share on Facebook" style="margin-right:5px;" target="_blank"><span class="iconochive-facebook" style="color:#3b5998;font-size:160%;"></span></a>
<a id="wm-share-twitter" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#" data-url="https://web.archive.org/web/20060528133239/http://kernel.jakem.net:80/" title="Share on Twitter" style="margin-right:5px;" target="_blank"><span class="iconochive-twitter" style="color:#1dcaff;font-size:160%;"></span></a>
</div>
<div style="padding-right:2px;text-align:right;white-space:nowrap;">
<a id="wm-expand" class="wm-btn wm-closed" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#expand" onclick="__wm.ex(event);return false;"><span id="wm-expand-icon" class="iconochive-down-solid"></span> <span class="xxs" style="font-size:80%;">About this capture</span></a>
</div>
</div>
</div>
<div id="wm-capinfo" style="border-top:1px solid #777;display:none; overflow: hidden">
<div id="wm-capinfo-notice" source="api"></div>
<div id="wm-capinfo-collected-by">
<div style="background-color:#666;color:#fff;font-weight:bold;text-align:center">COLLECTED BY</div>
<div style="padding:3px;position:relative" id="wm-collected-by-content">
<div style="display:inline-block;vertical-align:top;width:50%;">
<span class="c-logo" style="background-image:url(https://archive.org/services/img/alexacrawls);"></span>
Organization: <a style="color:#33f;" href="https://archive.org/details/alexacrawls" target="_new"><span class="wm-title">Alexa Crawls</span></a>
<div style="max-height:75px;overflow:hidden;position:relative;">
<div style="position:absolute;top:0;left:0;width:100%;height:75px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 90%,rgba(255,255,255,255) 100%);"></div>
Starting in 1996, <a href="http://www.alexa.com/">Alexa Internet</a> has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to the <a href="http://web.archive.org/">Wayback Machine</a> after an embargo period.
</div>
</div>
<div style="display:inline-block;vertical-align:top;width:49%;">
<span class="c-logo" style="background-image:url(https://archive.org/services/img/alexa_ei)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_ei" target="_new"><span class="wm-title">Alexa Crawl EI</span></a></div>
<div style="max-height:75px;overflow:hidden;position:relative;">
<div style="position:absolute;top:0;left:0;width:100%;height:75px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 90%,rgba(255,255,255,255) 100%);"></div>
Crawl EI from Alexa Internet. This data is currently not publicly accessible.
</div>
</div>
</div>
</div>
<div id="wm-capinfo-timestamps">
<div style="background-color:#666;color:#fff;font-weight:bold;text-align:center" title="Timestamps for the elements of this page">TIMESTAMPS</div>
<div>
<div id="wm-capresources" style="margin:0 5px 5px 5px;max-height:250px;overflow-y:scroll !important"></div>
<div id="wm-capresources-loading" style="text-align:left;margin:0 20px 5px 5px;display:none"><img src="https://web-static.archive.org/_static/images/loading.gif" alt="loading"></div>
</div>
</div>
</div></div></div><link rel="stylesheet" type="text/css" href="./Jake Moilanen&#39;s Linux Kernel Homepage_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./Jake Moilanen&#39;s Linux Kernel Homepage_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20060528133239/http://kernel.jakem.net:80/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(725,27,25,2,"web","http://kernel.jakem.net/","20060528133239",1996,"https://web-static.archive.org/_static/",["https://web-static.archive.org/_static/css/banner-styles.css?v=S1zqJCYt","https://web-static.archive.org/_static/css/iconochive.css?v=qtvMKcIJ"], false);
__wm.rw(1);
//]]></script>
<!-- END WAYBACK TOOLBAR INSERT -->
<center>
<table width="80%" height="100%" cellspacing="0" cellpadding="0">
<tbody><tr>
<td style="border-left: 1px solid #b1b1b1; border-top: 1px solid
#b1b1b1; border-bottom: 1px solid #b1b1b1; border-right: 1px
solid #b1b1b1" width="100%" colspan="2">
<h5 style="margin-left: 7; margin-top: 3; margin-bottom:
3; margin-right: 7"><font face="Arial" color="#ece9d8">Jake Moilanen's Linux Kernel Homepage
</font></h5>
</td>
</tr>
<tr>
<td height="30">
</td>
</tr>
<tr>
<td width="20%" height="100%" valign="top" align="center" style="border-left: 1px solid #b1b1b1; border-top: 1px solid
#b1b1b1; border-bottom: 1px solid #b1b1b1; border-right: 1px solid #b1b1b1">
<table width="100%" border="0" height="100%" cellspacing="0" cellpadding="0">
<tbody><tr height="30">
<td class="menu_header" valign="center" align="center">
<a class="nouline" href="https://web.archive.org/web/20060528133239/http://jakem.net/blog">Life story</a>
</td>
</tr>
<tr height="70">
<td class="menu_section" valign="center">
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://jakem.net/blog">Blog</a><br>
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://community.webshots.com/user/moilanencj">Pictures</a><br>
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://jakem.net/websightings.shtml">Web Sightings</a><br>
</td>
</tr>
<tr height="30">
<td class="menu_header" valign="center" align="center">
<a class="nouline" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/">Computer</a>
</td>
</tr>
<tr height="70">
<td class="menu_section" valign="center">
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches">Patches</a><br>
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/">Projects</a><br>
</td>
</tr>
<tr height="30">
<td class="menu_header" valign="center" align="center">
<a class="nouline" href="https://web.archive.org/web/20060528133239/http://jakem.net/archive/college-homepage">Archive</a>
</td>
</tr>
<tr height="70">
<td class="menu_section" valign="center">
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://terminallife.jakem.net/">TerminalLife</a><br>
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://jakem.net/archive/college-homepage">College homepage</a><br>
</td>
</tr>
<tr height="30">
<td class="menu_header" valign="center" align="center">
<a class="nouline" href="https://web.archive.org/web/20060528133239/mailto:moilanen@REMOVECAPLETTERSjakem.net">Contact</a>
</td>
</tr>
<tr height="70">
<td class="menu_section" valign="center">
&nbsp;<a href="https://web.archive.org/web/20060528133239/http://jakem.net/download/Moilanen.pdf">Resume</a><br>
</td>
</tr>
<tr>
<td></td>
</tr>
</tbody></table>
</td>
<td width="80%" valign="top" align="center">
<table width="100%" border="0" height="100%" cellspacing="0" cellpadding="0">
<tbody><tr><td bgcolor="#777777" style="border-top: 1px solid #b1b1b1; border-bottom: 1px solid #b1b1b1">&nbsp;&nbsp;</td>
<td colspan="1" valign="top" align="left" width="100%" height="70%" bgcolor="#777777" style="border-top: 1px solid #b1b1b1; border-bottom: 1px solid #b1b1b1; border-right: 1px
solid #b1b1b1">
<!--
------------------------------------------------------------------------------------------------------------------------------
-->
<br>
<b>Genetic Library</b>
<blockquote>
The genetic library patch uses a genetic algorithm to tweak the tunables of various schedulers.<br>
As workloads change, the algorithm adjusts the tunables to optimize for performance.
The patch is very useful for specific workloads that are difficult to tune.
<br><br>
<li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#goal">Goal</a>
</li><li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#current-plugins">Current Plugins</a>
</li><li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#future-work">Future Work</a>
</li><li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#performance">Performance</a>
</li><li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#issues">Issues</a>
</li><li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#why-kernel">Why in kernel</a>
</li><li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#config-locations">Config Locations</a>
</li><li><a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/#patches">Patches</a>
<br><br>
<a name="goal"></a>
<b>Goal</b>
<blockquote>
Tuning for workloads is tough, espcially when there are varying workloads. The goal of this patch
is that sys-admins and users never have to explicitly tune their system, but have it done autonomically.
</blockquote>
<a name="current-plugins"></a>
<b>Currently I have plugins for:</b>
<blockquote>
<li> Zaphod CPU scheduler
</li><li> Anticipatory IO scheduler
</li><li> Deadline IO scheduler (currently broken)
</li></blockquote>
<a name="future-work"></a><b>Possible Future work:</b>
<blockquote>
<li> Incorporate pre-defined "sets of tunables". The child's genes would be a set known good of tunable
configurations, and the algorithm would just use which ever set performed the best.
</li><li> Save optimal tunings for workloads. Recognize changing workloads and switch to optimal settings.
</li><li> Make sure genes can be negative.
</li><li> Investigate using on packet scheduling.
</li><li> Investigate using on SMT scheduler.
</li><li> Investigate using Lamarckian Evolution on discrete parameters.
</li></blockquote>
<a name="performance"></a><b>Performance</b>
<br>
<blockquote>
On FFSB there was an average
improvement of 9%. On some
workloads, I saw a 23%
improvement. The only
degradation was in sequential
read, I saw a less than a 1%.
Which was expected since AS is
tuned for sequential read.
I'll put my formal paper up
soon w/ pretty graphics.
<br><br>
On SpecJBB I've seen about a 1-5% gain on the Zaphod Scheduler plugin.
<br><br>
On UnixBench I saw about a 2% gain for the file read/write/copy on the Anticipatory Scheduler.
<br><br>
I've had no luck getting a performance improvement w/ the Deadline scheduler plugin.
</blockquote>
<a name="issues"></a><b>Issues</b>
<br>
<blockquote>
Many times there is no IO while a child is running. The child that does not get IO is inadvertenly penalized.<br>
</blockquote>
<br>
<a name="why-kernel"></a><b>Why have it in the kernel?</b>
<br>
<blockquote>
<li>Easier to hook
</li><li>Low latency and not have to go inbetween user/kernel (very important for short life cycle)
</li><li>Flexibility for the components to use the library
</li><li>Might have inconsistent results if was application, because it would be dependent on being scheduled, but itself was
in charge of modifying the scheduler. It may set the sched very wrong and never be scheduled.
</li></blockquote>
<br>
<a name="config-locations"></a><b>Config locations</b>
<blockquote>
<li>genetic-library - &nbsp;"Library Routines" -&gt; "Genetic Library"
</li><li>genetic-as-sched - "Device Drivers" -&gt; "Block IO" -&gt; "Genetic Anticipatory IO Scheduler"
</li><li>genetic-zaphod-cpu-sched - "Library Routines" -&gt; "Genetic Library - Zaphod CPU Scheduler"
</li></blockquote>
<a name="patches" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.12/2.6.12-gl2">Patches in development</a>
<br><br>
<a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.12">2.6.12 Patches</a><br><br>
<br><br>
<a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.11">2.6.11 Patches</a><br><br>
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.11/2.6.11-gl1/genetic-lib-2.6.11-gl1.patch">genetic-lib</a>
- Base genetic library patch
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.11/2.6.11-gl1/genetic-zaphod-cpu-sched-2.6.11-gl1.patch">genetic-zaphod-cpu-sched</a>
- Zaphod CPU scheduler plugin.
Depends on <a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.11/2.6.11-gl1/zaphod-v6.2.patch">zaphod
6.2 patch</a>
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.11/2.6.11-gl1/genetic-io-sched-2.6.11-gl1.patch">genetic-io-sched</a>
- Base plugin for IO schedulers
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.11/2.6.11-gl1/genetic-as-sched-2.6.11-gl1.patch">genetic-as-sched</a>
- Anticipatory scheduler plugin. Depends on genetic-io-sched.
<br><br>
<a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.10">2.6.10 Patches</a><br><br>
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.10/2.6.10-gl3/genetic-lib-2.6.10-gl3.patch">genetic-lib</a>
- Base genetic library patch
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.10/2.6.10-gl3/genetic-zaphod-cpu-sched-2.6.10-gl3.patch">genetic-zaphod-cpu-sched</a>
- Zaphod CPU scheduler plugin.
Depends on <a class="blue" href="https://web.archive.org/web/20060528133239/http://sourceforge.net/project/showfiles.php?group_id=112404&amp;package_id=125286&amp;release_id=273135">zaphod
6.2 patch</a>
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.10/2.6.10-gl3/genetic-io-sched-2.6.10-gl3.patch">genetic-io-sched</a>
- Base plugin for IO schedulers
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.10/2.6.10-gl3/genetic-as-sched-2.6.10-gl3.patch">genetic-as-sched</a>
- Anticipatory scheduler plugin. Depends on genetic-io-sched.
<br><br>
<a href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.9">2.6.9 Patches</a><br><br>
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.9/genetic-lib-2.6.9.patch">genetic-lib</a>
- Base genetic library patch
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.9/genetic-zaphod-cpu-sched-2.6.9.patch">genetic-zaphod-cpu-sched</a>
- Zaphod CPU scheduler plugin. Depends on <a class="blue" href="https://web.archive.org/web/20060528133239/http://sourceforge.net/project/showfiles.php?group_id=112404&amp;package_id=125286&amp;release_id=273135">zaphod patch</a>
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.9/genetic-io-sched-2.6.9.patch">genetic-io-sched</a>
- Base plugin for IO schedulers
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.9/genetic-as-sched-2.6.9.patch">genetic-as-sched</a>
- Anticipatory scheduler plugin. Depends on genetic-io-sched.
</li><li><a class="blue" href="https://web.archive.org/web/20060528133239/http://kernel.jakem.net/patches/genetic/2.6.9/genetic-deadline-sched-2.6.9.patch">genetic-deadline-sched</a>
- Deadline scheduler plugin. Depends on genetic-io-sched. (currently broken)
</li></blockquote>
<br>
<!--
------------------------------------------------------------------------------------------------------------------------------
-->
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</center>
</body><grammarly-desktop-integration data-grammarly-shadow-root="true"><template shadowrootmode="open"><style>
div.grammarly-desktop-integration {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select:none;
user-select:none;
}
div.grammarly-desktop-integration:before {
content: attr(data-content);
}
</style><div aria-label="grammarly-integration" role="group" tabindex="-1" class="grammarly-desktop-integration" data-content="{&quot;mode&quot;:&quot;full&quot;,&quot;isActive&quot;:true,&quot;isUserDisabled&quot;:false}"></div></template></grammarly-desktop-integration></html>