<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://kerneltrap.org"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>KernelTrap - HOWTO</title>
 <link>http://kerneltrap.org/taxonomy/term/243/0</link>
 <description></description>
 <language>en-local</language>
<item>
 <title>Linux: Properly Creating And Testing Patches</title>
 <link>http://kerneltrap.org/Linux/Properly_Creating_And_Testing_Patches</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;If you&#039;re wondering why I&#039;m taking a long time to respond to your patches,&lt;/i&gt;&quot;, began &lt;a href=&quot;http://kerneltrap.org/Theodore_Tso&quot;&gt;Theodore Ts&#039;o&lt;/a&gt; on the linux-ext4 mailing list, &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-ext4/2010/4/6/6884054/thread&quot;&gt;in a thread&lt;/a&gt; that offered much insight into how and why to properly submit and test patches. &quot;&lt;i&gt;Patches that are accepted into mainline should do one and only one thing,&lt;/i&gt;&quot; Ted continued, &quot;&lt;i&gt;so if someone suggests that you make changes to your submitted patch, ideally what you should do is to resubmit the patch with the fixes --- and not submit a patch which is a delta to the previous one.&lt;/i&gt;&quot;  He also noted that patch submitters often greatly outnumber maintainers dictating a higher standard of quality, &quot;&lt;i&gt;consider that for some maintainers, there may be 10 or 20 or 30 or more patch submitters in their subsystem.  With that kind of submitter-to-maintainer ratio, the patch submitter simply has to do much more of the work, since otherwise the subsystem maintainer simply can&#039;t keep up.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;Ted went on to acknowledge, &quot;&lt;i&gt;I happen to believe that we need to encourage newcomers to the kernel developer community, and so I spend more time mentoring people who are new to the process.&lt;/i&gt;&quot;  He noted that his time was finite however, and that patches are accepted more quickly when they are easy to review and integrate.  Regarding the filesystem for which the patches had been submitted, he added, &quot;&lt;i&gt;&lt;a href=&quot;http://kerneltrap.org/ext4&quot;&gt;Ext4&lt;/a&gt; is actually quite stable at this point.  Very large numbers of people are using it, and most users are quite happy.&lt;/i&gt;&quot;  For this reason, he pointed out that it is even more critical that the patches merged be of high quality.  That said, he continued, &quot;&lt;i&gt;there is no such thing as code which is not buggy.  For any non-trivial program, it&#039;s almost certain there are bugs. [...] Ext4 is not exempt from these fundamental laws of software engineering.  &#039;Code is always buggy until the last user of the program dies&#039;.&lt;/i&gt;&quot;  He tied this back to the importance of testing patches before submitting, &quot;&lt;i&gt;keep in mind that the maxim that code which is not buggy also applies to your patches.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/Linux/Properly_Creating_And_Testing_Patches&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/Linux/Properly_Creating_And_Testing_Patches#comments</comments>
 <category domain="http://kerneltrap.org/bugs">bugs</category>
 <category domain="http://kerneltrap.org/development_process">development process</category>
 <category domain="http://kerneltrap.org/ext4">ext4</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/taxonomy/term/583">patch</category>
 <category domain="http://kerneltrap.org/Theodore_Tso">Theodore Ts&#039;o</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Fri, 09 Apr 2010 20:18:27 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">56223 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Further Oops Insights</title>
 <link>http://kerneltrap.org/Linux/Further_Oops_Insights</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;[The] text below is mostly for the benefit of newbies - it&#039;s more along the lines of &#039;how to get from [a] bug report to the source of [the] bug&#039;, with more details than normal,&lt;/i&gt;&quot; began &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2008/1/14/567425&quot;&gt;Al Viro&lt;/a&gt;, offering a full review of another Linux kernel oops in an effort to educate more people on how this is done.   Al&#039;s walk through included a patch to fix the bug that caused the oops. He noted:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;This might be worth doing on [a] more or less regular basis, especially if more people join the fun; everyone [has] their own set of tricks in [this] area and making it easier to gather might help a lot of people.  It&#039;s not just about oops-tracing per se, of course - Arjan&#039;s site gives a nice collection of those, so that makes an obvious starting point.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/Linux/Further_Oops_Insights&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/Linux/Further_Oops_Insights#comments</comments>
 <category domain="http://kerneltrap.org/Al_Viro">Al Viro</category>
 <category domain="http://kerneltrap.org/debug">debug</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/Linux">Linux</category>
 <category domain="http://kerneltrap.org/oops">Oops</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Mon, 14 Jan 2008 21:44:20 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">15227 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Formatting Bug Fix Emails</title>
 <link>http://kerneltrap.org/Linux/Formatting_Bug_Fix_Emails</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;I&#039;ll just take this opportunity to ask people that when they send bug-fixes, please try to make the subject line and message make sense for a *reader*, not for yourself (or even to me, although if it&#039;s readable to some generic person, it&#039;s hopefully readable to me too!),&lt;/i&gt;&quot; &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2007/10/23/351518&quot;&gt;Linus Torvalds explained&lt;/a&gt; in response to a recent bugfix.  He went on to provide some general rules:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;1)if it&#039;s not fairly generic, specify the area (architecture, subsystem, driver) that the fix is for in the subject line. [...] 2) don&#039;t use commit names in the subject line - and while it&#039;s great to use them in the body of the explanation, even there you don&#039;t want to assume that people read it from within git. [...] 3)  write the commit message for an outsider, and use whitespace. The third-most common fixup I end up doing (after the above two) is to split things up into shorter paragraphs, after somebody wrote a good changelog entry, but made it one large unreadable blob of text.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Linus added, &quot;&lt;i&gt;I end up editing just about half of all the commit messages of stuff I get in email (except for Andrew&#039;s stuff, since Andrew largely does the same kinds of cleanups anyway, so I only need to edit up a small percentage of the patches he forwards). I&#039;d like it to be *much* less than that, so I thought I should speak up since I had an example of this.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/Linux/Formatting_Bug_Fix_Emails&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/Linux/Formatting_Bug_Fix_Emails#comments</comments>
 <category domain="http://kerneltrap.org/best_practices">best practices</category>
 <category domain="http://kerneltrap.org/documentation">documentation</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/Linus_Torvalds">Linus Torvalds</category>
 <category domain="http://kerneltrap.org/Linux">Linux</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Wed, 24 Oct 2007 07:31:50 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">14661 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Exact Kernel Names</title>
 <link>http://kerneltrap.org/Linux/Exact_Kernel_Names</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;When asked how to best refer to kernels between official releases and release candidates, Linus Torvalds pointed to his &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2007/10/20/349407&quot;&gt;automated git snapshots&lt;/a&gt;. &quot;&lt;i&gt;I still call them &#039;nightly snapshots&#039;, but they do in fact happen twice a day if there have been changes, so that&#039;s not technically correct,&lt;/i&gt;&quot; he noted.  The latest snapshot is 2.6.23-git15, &quot;&lt;i&gt;this is an exact name, because you can go to kernel.org and look up the exact commit ID that was used to generate it (there&#039;s an &#039;ID&#039; file associated with each snapshot there).&lt;/i&gt;&quot;  For git users, he suggested using the &quot;&lt;code&gt;git describe&lt;/code&gt;&quot; command to get the git name, with the current head being named v2.6.23-6562-g8add244.  He went on to explain that the name &quot;&lt;i&gt;tells you three things: (a) it&#039;s based on 2.6.23 (b) there&#039;s been 6562 commits since 2.6.23 and (c) the top-of-tree abbreviated commit is &#039;8add244&#039;.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;When asked about the previously discussed usage of &quot;-rc0&quot; and other similar proposed naming conventions, Linus replied:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Please don&#039;t use those names. They don&#039;t actually tell anything about where in the cycle it is, and as you can see above, there&#039;s been 6500+ commits since 2.6.23, so saying &#039;2.6.23-rc0&#039; or similar really isn&#039;t very helpful if anybody actually cares about just where in the release cycle you are.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/Linux/Exact_Kernel_Names&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/Linux/Exact_Kernel_Names#comments</comments>
 <category domain="http://kerneltrap.org/rc0">-rc0</category>
 <category domain="http://kerneltrap.org/best_practices">best practices</category>
 <category domain="http://kerneltrap.org/documentation">documentation</category>
 <category domain="http://kerneltrap.org/git">git</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/Linus_Torvalds">Linus Torvalds</category>
 <category domain="http://kerneltrap.org/Linux">Linux</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Sun, 21 Oct 2007 10:33:08 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">14625 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Linux: Formatting Merge Requests</title>
 <link>http://kerneltrap.org/node/11779</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;In response to a recent merge request, Linus Torvalds explained how he preferred the request to be formatted, &quot;&lt;i&gt;please don&#039;t hide the branch name in the free-flowing text&lt;/i&gt;&quot;.  He noted that he wanted the git URL indented and on it&#039;s own line, &quot;&lt;i&gt;so that I don&#039;t miss the right branch-name even by mistake.&lt;/i&gt;&quot;  He went on to explain:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I try to be careful, and I think I missed the branch-name just once (and noticed it when the diffstat didn&#039;t match), but this is something I want to teach every git user to know very intimately: make it impossible to make mistakes, by always keeping the whole git information together, and never mixed up with any free-flowing explanation.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/node/11779&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/node/11779#comments</comments>
 <category domain="http://kerneltrap.org/best_practices">best practices</category>
 <category domain="http://kerneltrap.org/git">git</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/Linus_Torvalds">Linus Torvalds</category>
 <category domain="http://kerneltrap.org/Linux">Linux</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Fri, 20 Jul 2007 09:46:47 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">11779 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Linux: Documentation Translations Merged</title>
 <link>http://kerneltrap.org/node/11781</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;Two new documentation directories were &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7209a1dc2557b127ee75a49e200812366532510d&quot;&gt;merged&lt;/a&gt; into the upcoming &lt;a href=&quot;http://kerneltrap.org/taxonomy/term/371&quot;&gt;2.6.23&lt;/a&gt; mainline kernel, containing translations of the &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/HOWTO;h=f8cc3f8ed152742542e06cd14df7c99aae40f9cd;hb=7209a1dc2557b127ee75a49e200812366532510d&quot;&gt;HOWTO&lt;/a&gt; and &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/stable_api_nonsense.txt;h=a2afca3b2bab6fb923fb9eda102073606d15c278;hb=7209a1dc2557b127ee75a49e200812366532510d&quot;&gt;stable_api_nonsense.txt&lt;/a&gt; documents in &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/ja_JP;h=d2c4cd79bfcc53e4bd480fee73d071a5b4900d1e;hb=7209a1dc2557b127ee75a49e200812366532510d&quot;&gt;Japanese&lt;/a&gt; and &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/zh_CN;h=f48f6622c3f81f86b34b85dd90020f4773e00106;hb=7209a1dc2557b127ee75a49e200812366532510d&quot;&gt;Chinese&lt;/a&gt;.  Greg KH explained, &quot;&lt;i&gt;here are some patches that add some translations of some procedural documentation files to the Documentation/ tree.&lt;/i&gt;&quot;  Regarding some of the concerns that were expressed with merging translated documentation into the mainline kernel tarball, Greg noted, &quot;&lt;i&gt;these files change _very_ slowly over time, and are quite easy to keep up to date by the translators.&lt;/i&gt;&quot;  He added:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I know that kernel development is in English, but translations of a small subset of documentation files that go over procedures and how to get involved in the community is something that I feel is important and will bring in more developers in the end.  Having these files in the kernel tree is a good way to keep a central location that all can see and easily find, instead of hiding them away on different web sites that might be harder to update by anyone who needs to do so.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/node/11781&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/node/11781#comments</comments>
 <category domain="http://kerneltrap.org/2.6.23">2.6.23</category>
 <category domain="http://kerneltrap.org/documentation">documentation</category>
 <category domain="http://kerneltrap.org/Greg_KH">Greg KH</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/merge_window">merge window</category>
 <category domain="http://kerneltrap.org/taxonomy/term/217">translation</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Thu, 19 Jul 2007 15:12:10 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">11781 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Linux: Moving and Changing Code</title>
 <link>http://kerneltrap.org/node/11765</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;In response to a recent merge request, Linus Torvalds explained a best practice when moving and changing code, &quot;&lt;i&gt;when doing renames it is generally *much* nicer to do a 100% rename (perhaps with just _trivial_ changes to make it compile - the include statements etc change, and maybe you want to change the name in the comment header too).&lt;/i&gt;&quot;  He went on to explain, &quot;&lt;i&gt;doing &#039;move the code and change it at the same time&#039; is considered bad form. Movement diffs are much harder to read anyway (a traditional diff will show it as a new-file + delete, of course), so the general rule is: move code around _without_ modifying it, so that code movement (whether it&#039;s a whole file, or just a set of functions between files) doesn&#039;t really introduce any real changes, and is easier to look through the changes; do the actual changes to the code as a separate thing.&lt;/i&gt;&quot;  He went on to note why this is especially important during Linux development, &quot;&lt;i&gt;where patches are the main way people communicate.&lt;/i&gt;&quot;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;And when using git, the whole &#039;keep code movement separate from changes&#039; has an even more fundamental reason: git can track code movement (again, whether moving a whole file or just a function between files), and doing a &#039;git blame -C&#039; will actually follow code movement between files. It does that by similarity analysis, but it does mean that if you both move the code *and* change it at the same time, git cannot see that &#039;oh, that function came originally from that other file&#039;, and now you get worse annotations about where code actually originated.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/node/11765&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/node/11765#comments</comments>
 <category domain="http://kerneltrap.org/best_practices">best practices</category>
 <category domain="http://kerneltrap.org/git">git</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/Linus_Torvalds">Linus Torvalds</category>
 <category domain="http://kerneltrap.org/Linux">Linux</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Mon, 16 Jul 2007 17:59:02 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">11765 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Linux:  Debugging With &quot;git bisect&quot;</title>
 <link>http://kerneltrap.org/node/11753</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;Following up to a bug report against the 2.6.22 kernel, Andrew Morton and Linus Torvalds offered some tips on how to debug kernel problems.  Andrew first pointed to &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/networking/netconsole.txt;h=1caa6c734691bc8bc2d14493065ae6f08613f5e6;hb=7dcca30a32aadb0520417521b0c44f42d09fe05c&quot;&gt;netconsole.txt&lt;/a&gt; for instructions on setting up a netconsole, &quot;&lt;i&gt;when the machine has stalled, see if you can get a task trace with ALT-SYSRQ-t.  This will require CONFIG_MAGIC_SYSRQ=y and possibly setting ignore_loglevel on the kernel boot command line.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;Linus Torvalds suggested &quot;git bisect&quot; as an alternative, &quot;&lt;i&gt;[it] will take some time, but is really a lot easier&lt;/i&gt;&quot;  He explains, &quot;&lt;i&gt;there&#039;s almost 7000 commits in between 2.6.21 and 22, but that still means that in about fourteen recompiles/reboots, &quot;git bisect&quot; should tell us where your problem starts, which will hopefully make it obvious what the problem is (or at least pinpoint it a *lot*).&lt;/i&gt;&quot;  He goes on to detail how to install git, obtain the latest kernel, and run &quot;git bisect&quot;, &quot;&lt;i&gt;doing a git bisect isn&#039;t really that hard, but fourteen compiles/reboots  will take some time (well, the compiles will, the reboots aren&#039;t that bad). But even if you&#039;re not a git user, it really is very simple&lt;/i&gt;&quot;. Specifically, he notes, &quot;&lt;i&gt;start the &#039;git bisect&#039; with &#039;&lt;code&gt;git bisect good v2.6.21&lt;/code&gt;&#039;, &#039;&lt;code&gt;git bisect bad v2.6.22&lt;/code&gt;&#039;, and it will pick a kernel version about half-way between the two points, and you can now start testing. For each kernel you try, if it boots fine, do &#039;&lt;code&gt;git bisect good&lt;/code&gt;&#039;, otherwise boot into a working kernel, and then do &#039;&lt;code&gt;git bisect bad&lt;/code&gt;&#039;. Git will then pick the next &#039;halfway&#039; kernel for that case.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/node/11753&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/node/11753#comments</comments>
 <category domain="http://kerneltrap.org/2.6.21">2.6.21</category>
 <category domain="http://kerneltrap.org/2.6.22">2.6.22</category>
 <category domain="http://kerneltrap.org/Andrew_Morton">Andrew Morton</category>
 <category domain="http://kerneltrap.org/bisect">bisect</category>
 <category domain="http://kerneltrap.org/debug">debug</category>
 <category domain="http://kerneltrap.org/git">git</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/Linus_Torvalds">Linus Torvalds</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Fri, 13 Jul 2007 15:10:53 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">11753 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Linux:  Translating Kernel Documentation</title>
 <link>http://kerneltrap.org/node/8365</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;The translation of a some kernel documentation into Japanese led to a discussion as to whether or not it was appropriate to include translated documentation with the kernel source code.  One concern that was expressed was that as the number of included translations grows, so would the size of the kernel.  Another concern was the liklihood that as time passes the various translations might become out of date.  Jesper Juhl suggested one workaround, &quot;&lt;i&gt;since the common language of most kernel contributors is english I personally feel that we should stick to just that one language in the tree and then perhaps keep translations on a website somewhere. So the authoritative docs stay in the tree, in english, so that as many contributors as possible can read and update them.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;Greg KH noted that there were a number of files in the kernel that change infrequently and that he would like to see included, &quot;&lt;i&gt;I really do want to see a translated copy of the HOWTO, stable-api-nonsense.txt, and possibly a few other files in the main kernel tree (SubmittingPatches, CodingStyle, and SubmittingDrivers might all be good canidates for this.)  These files change relatively infrequently (the HOWTO file has had only 7 changes in 1 and 1/2 years, and they were very minor ones) and should be easy for the translators to keep up with.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://kerneltrap.org/node/8365&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://kerneltrap.org/node/8365#comments</comments>
 <category domain="http://kerneltrap.org/documentation">documentation</category>
 <category domain="http://kerneltrap.org/Greg_KH">Greg KH</category>
 <category domain="http://kerneltrap.org/HOWTO">HOWTO</category>
 <category domain="http://kerneltrap.org/taxonomy/term/241">Japanese</category>
 <category domain="http://kerneltrap.org/taxonomy/term/242">Jesper Juhl</category>
 <category domain="http://kerneltrap.org/Linux">Linux</category>
 <category domain="http://kerneltrap.org/taxonomy/term/217">translation</category>
 <category domain="http://kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Mon, 11 Jun 2007 10:36:38 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">8365 at http://kerneltrap.org</guid>
</item>
<item>
 <title>Linux:  Git Kernel Hacker&#039;s Guide</title>
 <link>http://kerneltrap.org/node/5718</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;The &lt;a href=&quot;http://git.or.cz/&quot; target=&quot;new&quot;&gt;git&lt;/a&gt; directory content manager used to manage the Linux kernel source tree [&lt;a href=&quot;http://kerneltrap.org/node/5686&quot;&gt;story&lt;/a&gt;] continues to develop at a rapid pace [&lt;a href=&quot;http://kerneltrap.org/node/5678&quot;&gt;story&lt;/a&gt;].  Keeping up with the latest changes, Jeff Garzik released an updated version of his &lt;a href=&quot;http://linux.yyz.us/git-howto.html&quot; target=&quot;new&quot;&gt;Kernel Hacker&#039;s Guide To Git&lt;/a&gt;.  He explains, &quot;&lt;i&gt;several changes in git-core have made working with git a lot easier, so be sure to re-familiarize yourself with the development process.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;Jeff&#039;s short guide is broken into four major sections, &#039;&lt;a href=&quot;http://linux.yyz.us/git-howto.html#getting_started&quot; target=&quot;new&quot;&gt;getting started&lt;/a&gt;&#039; which talks about installing the software and getting a copy of the linux kernel source tree, &#039;&lt;a href=&quot;http://linux.yyz.us/git-howto.html#basic_tasks&quot; target=&quot;new&quot;&gt;basic tasks&lt;/a&gt;&#039; which offers examples of keeping up to date with the latest code and merging in your own changes, &#039;&lt;a href=&quot;http://linux.yyz.us/git-howto.html#branches&quot; target=&quot;new&quot;&gt;branches&lt;/a&gt;&#039; offering examples of creating, using and merging branches, and &#039;&lt;a href=&quot;&quot; target=&quot;ne