<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.kerneltrap.org"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>KernelTrap - O(1)</title>
 <link>http://www.kerneltrap.org/taxonomy/term/350/0</link>
 <description></description>
 <language>en-local</language>
<item>
 <title>CFS and sched_yield</title>
 <link>http://www.kerneltrap.org/Linux/CFS_and_sched_yield</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;sched_yield() is not - and should not be - about &#039;recalculating the position in the scheduler queue&#039; like you do now in CFS&lt;/i&gt;,&quot; Linus Torvalds &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2007/9/19/263203&quot;&gt;stated in a discussion&lt;/a&gt; with Completely Fair Scheduler author Ingo Molnar, pointing to the man pages to back up his argument that sched_yield should instead move a thread to the end of its queue, adding, &quot;&lt;i&gt;quite frankly, the current CFS behaviour simply looks buggy. It should simply not move it to the &#039;right place&#039; in the rbtree. It should move it *last*.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;Ingo described how it worked with the pre-2.6.23 scheduler, &quot;&lt;i&gt;the O(1) implementation of yield() was pretty arbitrary: it did not move it last on the same priority level - it only did it within the active array. So expired tasks (such as CPU hogs) would come _after_ a yield()-ing task.&lt;/i&gt;&quot;  He went on to compare this to the new process scheduler , &quot;&lt;i&gt;so the yield() implementation was so much tied to the data structures of the O(1) scheduler that it was impossible to fully emulate it in CFS.  In CFS we dont have a per-nice-level rbtree, so we cannot move it dead last within the same priority group - but we can move it dead last in the whole tree. (then they&#039;d be put even after nice +19 tasks.) People might complain about _that_.&lt;/i&gt;&quot;  He also noted that this would change the behavior for some desktop applications that call &lt;a href=&quot;http://kerneltrap.org/man/linux/man2/sched_yield.2&quot;&gt;sched_yield()&lt;/a&gt;, &quot;&lt;i&gt;there will be lots of regression reports about lost interactivity during load.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/Linux/CFS_and_sched_yield&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/Linux/CFS_and_sched_yield#comments</comments>
 <category domain="http://www.kerneltrap.org/2.6.23">2.6.23</category>
 <category domain="http://www.kerneltrap.org/CFS">CFS</category>
 <category domain="http://www.kerneltrap.org/Ingo_Molnar">Ingo Molnar</category>
 <category domain="http://www.kerneltrap.org/Linus_Torvalds">Linus Torvalds</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/O1">O(1)</category>
 <category domain="http://www.kerneltrap.org/scheduler">scheduler</category>
 <category domain="http://www.kerneltrap.org/sched_yield">sched_yield</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Fri, 21 Sep 2007 20:23:23 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">14424 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>CFS, Focusing on Simplification and Performance</title>
 <link>http://www.kerneltrap.org/Linux/CFS_Focusing_on_Simplification_and_Performance</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Having recently returned from the Linux kernel summit, Ingo Molnar and Peter Zijlstra &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2007/9/11/230691&quot;&gt;sent out some performance updates&lt;/a&gt; to the Completely Fair Scheduler:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Our main focus has been on simplifications and performance - and as part of that we&#039;ve also picked up some ideas from Roman Zippel&#039;s &#039;Really Fair Scheduler&#039; patch as well and integrated them into CFS. We&#039;d like to ask people go give these patches a good workout, especially with an eye on any interactivity regressions.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;He noted that some of the changes included removing features that had proved unecessary. &quot;&lt;i&gt;while keeping the things that worked out fine, like sleeper fairness.&lt;/i&gt;&quot;  Ingo posted some results from the lmbench benchmark noting around a 16% speedup on both the 32-bit and 64-bit x86 architectures.  He added, &quot;&lt;i&gt;we are now a bit faster than the O(1) scheduler was under v2.6.22 - even on 32-bit. The main speedup comes from the avoidance of divisions (or shifts) in the wakeup and context-switch fastpaths.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/Linux/CFS_Focusing_on_Simplification_and_Performance&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/Linux/CFS_Focusing_on_Simplification_and_Performance#comments</comments>
 <category domain="http://www.kerneltrap.org/CFS">CFS</category>
 <category domain="http://www.kerneltrap.org/Ingo_Molnar">Ingo Molnar</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/lmbench">lmbench</category>
 <category domain="http://www.kerneltrap.org/O1">O(1)</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/Peter_Zijlstra">Peter Zijlstra</category>
 <category domain="http://www.kerneltrap.org/RFS">RFS</category>
 <category domain="http://www.kerneltrap.org/Roman_Zippel">Roman Zippel</category>
 <category domain="http://www.kerneltrap.org/scheduler">scheduler</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Wed, 12 Sep 2007 08:14:25 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">14348 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Linux:  LogFS, A New Flash Filesystem</title>
 <link>http://www.kerneltrap.org/node/8159</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Jörn Engel announced &lt;a href=&quot;http://logfs.org/logfs/&quot;&gt;LogFS&lt;/a&gt;, &quot;&lt;i&gt;a scalable flash filesystem.&lt;/i&gt;&quot;  The project&#039;s home page notes that LogFS aims to be the successor of JFFS2, &quot;&lt;i&gt;the two main problems of JFFS2 are memory consumption and mount time. Unlike most filesystems, there is no tree structure of any sorts on the medium, so the complete medium needs to be scanned at mount time and a tree structure kept in-memory while the filesystem is mounted. With bigger devices, both mount time and memory consumption increase linearly.  JFFS2 has recently gained summary support, which helps reduce mount time by a constant factor.  Linear scalability remains.  YAFFS also appears to be better by a constant factor, yet still scales linearly.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;In contrast, Jörn compared his new LogFS, &quot;&lt;i&gt;LogFS has an on-medium tree, fairly similar to Ext2 in structure, so mount times are O(1).  In absolute terms, the OLPC system has mount times of ~3.3s for JFFS2 and ~60ms for LogFS.&lt;/i&gt;&quot;  Regarding its stability, he noted, &quot;&lt;i&gt;LogFS works and survives my testcases.  It has fairly good chances of not eating your data during regular operation.  There are still two known bugs that will eat data if the filesystem is uncleanly unmounted.  Also still missing is wear leveling.&lt;/i&gt;&quot;  Thomas Gleixner reviewed the code and offered the following summary, suggesting the code has a ways to go before it replaces JFFS2, &quot;&lt;i&gt;the code is far from being useful on real world hardware. The error handling via BUG() is just making it useless.  Also please fix the coding style and other issues from the seperate review.  Some useful comments would make a functional review way easier.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/node/8159&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/node/8159#comments</comments>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/347">flash</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/348">JFFS2</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/345">Jörn Engel</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/346">LogFS</category>
 <category domain="http://www.kerneltrap.org/O1">O(1)</category>
 <category domain="http://www.kerneltrap.org/Thomas_Gleixner">Thomas Gleixner</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/349">YAFFS</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Tue, 08 May 2007 11:42:09 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">8159 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Feature:  HowTo Upgrade To The 2.6 Kernel</title>
 <link>http://www.kerneltrap.org/node/799</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/taxonomy/term/37&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://140.211.166.79/files/category_pictures/K-Linux_1.gif&quot; alt=&quot;Linux feature article&quot; title=&quot;Linux feature article&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Anyone who&#039;s been following Linux kernel development for the past several months has heard about one exciting feature after another being merged into the still un-released 2.6 kernel.  New features that noticeably affect user experience include Robert Love&#039;s [&lt;a href=&quot;/node/view/336&quot;&gt;interview&lt;/a&gt;] preemptible kernel work [&lt;a href=&quot;/node/view/344&quot;&gt;story&lt;/a&gt;], Ingo Molnar&#039;s [&lt;a href=&quot;/node/view/517&quot;&gt;interview&lt;/a&gt;] O(1) Scheduler [&lt;a href=&quot;/node/view/341&quot;&gt;story&lt;/a&gt;], Rik Van Riel&#039;s [&lt;a href=&quot;/node/view/46&quot;&gt;interview&lt;/a&gt;] reverse mapping VM [&lt;a href=&quot;/node/view/273&quot;&gt;story&lt;/a&gt;], Nick Piggins&#039; [&lt;a href=&quot;/node/view/657&quot;&gt;interview&lt;/a&gt;] Anticipatory I/O scheduler [&lt;a href=&quot;/node/view/567&quot;&gt;story&lt;/a&gt;], and much, much more...&lt;/p&gt;
&lt;p&gt;Having some spare time a few nights ago, I decided to give the latest kernel, 2.6.0-test4, a trial run on my aging 550Mhz PIII desktop computer, and the result was nothing short of spectacular.  As the final 2.6.0 release approaches, it is important that an increasing number of users (aka testers) give this kernel a try, especially as currently it&#039;s still a sexy task for developers to track down kernel bugs and stabalize their work.  Once work starts on the 2.7 development tree, inevitably much talent will again be focusing on new features.&lt;/p&gt;
&lt;p&gt;The purpose of this document is to provide some helpful tips to readers that currently compile their own 2.4 kernels, but haven&#039;t yet made the leap to 2.6.  This is still a development kernel, so you may run into problems, but overall stability and performance is quite impressive and I can&#039;t recommend enough that you try it today.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/node/799&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/node/799#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/436">2.6</category>
 <category domain="http://www.kerneltrap.org/anticipatory_scheduler">anticipatory scheduler</category>
 <category domain="http://www.kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://www.kerneltrap.org/Ingo_Molnar">Ingo Molnar</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/O1">O(1)</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/458">preemption</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/506">Robert Love</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/37">Linux feature article</category>
 <pubDate>Sat, 30 Aug 2003 03:59:00 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">799 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Interview:  Ingo Molnar</title>
 <link>http://www.kerneltrap.org/node/517</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/taxonomy/term/13&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Interviews.gif&quot; alt=&quot;Interviews&quot; title=&quot;Interviews&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Ingo Molnar has been contributing to Linux kernel development since 1995 with an impressive list of accomplishments.  Most recently his O(1) scheduler was merged into the 2.5 development kernel, as well as much work to enhance the handling of threads.  Other highly visible contributions include software-RAID support and the in-kernel Tux web and FTP servers.&lt;/p&gt;
&lt;p&gt;In this interview, Ingo explores how he started working on the Linux kernel noting, &quot;&lt;i&gt;it might sound a bit strange but i installed my first Linux box for the sole purpose of looking at the kernel source.&lt;/i&gt;&quot;  He goes on to explain the concepts behind his new O(1) scheduler, and to describe many of his other kernel efforts.  This interview was conducted over several months, and covers a lot of interesting ground...&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/node/517&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/node/517#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/491">2.5</category>
 <category domain="http://www.kerneltrap.org/Ingo_Molnar">Ingo Molnar</category>
 <category domain="http://www.kerneltrap.org/KernelTrap_interview">KernelTrap interview</category>
 <category domain="http://www.kerneltrap.org/O1">O(1)</category>
 <category domain="http://www.kerneltrap.org/scheduler">scheduler</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/492">tux</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/13">Linux feature interview</category>
 <pubDate>Tue, 03 Dec 2002 11:27:00 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">517 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Interview:  Con Kolivas</title>
 <link>http://www.kerneltrap.org/node/465</link>
 <description>&lt;div class=&quot;taxon