<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.jackslab.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn">
		<id>http://wiki.jackslab.org/index.php?action=history&amp;feed=atom&amp;title=%E6%8D%89%E8%99%AB%E6%97%A5%E8%AE%B0_0014%3A_RMI_XLS_%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%81%8F%E9%95%BF</id>
		<title>捉虫日记 0014: RMI XLS 启动时间偏长 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.jackslab.org/index.php?action=history&amp;feed=atom&amp;title=%E6%8D%89%E8%99%AB%E6%97%A5%E8%AE%B0_0014%3A_RMI_XLS_%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%81%8F%E9%95%BF"/>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=%E6%8D%89%E8%99%AB%E6%97%A5%E8%AE%B0_0014:_RMI_XLS_%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%81%8F%E9%95%BF&amp;action=history"/>
		<updated>2026-09-11T05:20:57Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=%E6%8D%89%E8%99%AB%E6%97%A5%E8%AE%B0_0014:_RMI_XLS_%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%81%8F%E9%95%BF&amp;diff=18576&amp;oldid=prev</id>
		<title>Comcat：/* 解决 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=%E6%8D%89%E8%99%AB%E6%97%A5%E8%AE%B0_0014:_RMI_XLS_%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%81%8F%E9%95%BF&amp;diff=18576&amp;oldid=prev"/>
				<updated>2025-12-04T03:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;解决&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2025年12月4日 (四) 03:39的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第54行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第54行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Reference ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* [[GNU/Linux 内核移植捉虫笔记 (Linux Kernel Debug Notes)]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=%E6%8D%89%E8%99%AB%E6%97%A5%E8%AE%B0_0014:_RMI_XLS_%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%81%8F%E9%95%BF&amp;diff=2298&amp;oldid=prev</id>
		<title>Comcat：以“== 现象 ==  环境：  * RMI XLS 416 评估板  * 内核版本 2.6.34-rc5  * 基于 SDK 1.7.0 (内核版本 2.6.27) 升级   内核启动正常，mount 文件系...”为内容创建页面</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=%E6%8D%89%E8%99%AB%E6%97%A5%E8%AE%B0_0014:_RMI_XLS_%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4%E5%81%8F%E9%95%BF&amp;diff=2298&amp;oldid=prev"/>
				<updated>2014-05-19T09:02:02Z</updated>
		
		<summary type="html">&lt;p&gt;以“== 现象 ==  环境：  * RMI XLS 416 评估板  * 内核版本 2.6.34-rc5  * 基于 SDK 1.7.0 (内核版本 2.6.27) 升级   内核启动正常，mount 文件系...”为内容创建页面&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 现象 ==&lt;br /&gt;
&lt;br /&gt;
环境：&lt;br /&gt;
&lt;br /&gt;
* RMI XLS 416 评估板&lt;br /&gt;
&lt;br /&gt;
* 内核版本 2.6.34-rc5&lt;br /&gt;
&lt;br /&gt;
* 基于 SDK 1.7.0 (内核版本 2.6.27) 升级&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
内核启动正常，mount 文件系统后，用户态进程初始化太慢，Level 3 的所有进程全起来大概要 10 分钟左右，抓狂。。。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 分析 ==&lt;br /&gt;
&lt;br /&gt;
查了最近一次对代码所作的修改，发现主要集中在三处，一个是对 RMI XLS416 之 COP2 异常的处理（将原 do_cpu 之 CU2 异常处理修改为与 mainline 一致），一个是编译参数的改变（由 -march=r8000 改为 -march=xlr），还有一个就是对 TLB Refill Handler 生成函数逻辑的修改。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
原 TLB Refill Handler 生成逻辑为：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@ -335,6 +342,8 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,&lt;br /&gt;
case CPU_ALCHEMY:&lt;br /&gt;
tlbw(p);&lt;br /&gt;
break;&lt;br /&gt;
+   case CPU_PHOENIX:&lt;br /&gt;
+       tlbw(p);&lt;br /&gt;
&lt;br /&gt;
case CPU_NEVADA:&lt;br /&gt;
uasm_i_nop(p); /* QED specifies 2 nops hazard */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
咋一看在 tlbw(p); 后少了条 break，于是在 reviewer 指出后，顺手就加上了，编译通过，启动没问题，于是很轻率地就改了过来。哪知这一改，启动时间成倍加长&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 解决 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
case CPU_PHOENIX:&lt;br /&gt;
uasm_i_nop(p); /* QED specifies 2 nops hazard */&lt;br /&gt;
/*&lt;br /&gt;
* This branch uses up a mtc0 hazard nop slot and saves&lt;br /&gt;
* a nop after the tlbw instruction.&lt;br /&gt;
*/&lt;br /&gt;
uasm_il_bgezl(p, r, 0, label_tlbw_hazard);&lt;br /&gt;
tlbw(p);&lt;br /&gt;
uasm_l_tlbw_hazard(l, *p);&lt;br /&gt;
break;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	</feed>