毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精

以文本方式查看主題

-  曙海教育集團論壇  (http://www.scb-ycwb.com/bbs/index.asp)
--  Linux驅動開發  (http://www.scb-ycwb.com/bbs/list.asp?boardid=33)
----  Linux驅動開發必看:詳解神秘內核(1)  (http://www.scb-ycwb.com/bbs/dispbbs.asp?boardid=33&id=1731)

--  作者:wangxinxin
--  發布時間:2010-11-24 11:27:27
--  Linux驅動開發必看:詳解神秘內核(1)
命令行參數將影響啟動過程中的代碼執行路徑。舉一個例子,假設某命令行參數為bootmode,如果該參數被設置為1,意味著你希望在啟動過程中打印一些調試信息并在啟動結束時切換到runlevel的第3級(初始化進程的啟動信息打印后就會了解runlevel的含義);如果bootmode參數被設置為0,意味著你希望啟動過程相對簡潔,并且設置runlevel為2。既然已經熟悉了init/main.c文件,下面就在該文件中增加如下修改:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->static unsigned int bootmode = 1;
static int __init
is_bootmode_setup(
char *str)
{
  get_option(
&str, &bootmode);
  
return 1;
}

/* Handle parameter "bootmode=" */
__setup(
"bootmode=", is_bootmode_setup);

if (bootmode) {
  
/* Print verbose output */
  
/* ... */
}

/* ... */

/* If bootmode is 1, choose an init runlevel of 3, else
   switch to a run level of 2
*/
if (bootmode) {
  argv_init[
++args] = "3";
}
else {
  argv_init[
++args] = "2";
}

/* ... */

  請重新編譯內核并嘗試運行新的修改。


  2.1.4 Calibrating delay...1197.46 BogoMIPS (lpj=2394935)

  在啟動過程中,內核會計算處理器在一個jiffy時間內運行一個內部的延遲循環的次數。jiffy的含義是系統定時器2個連續的節拍之間的間隔。正如所料,該計算必須被校準到所用CPU的處理速度。校準的結果被存儲 target=_blank>存儲在稱為loops_per_jiffy的內核變量中。使用loops_per_jiffy的一種情況是某設備驅動程序希望進行小的微秒級別的延遲的時候。

  為了理解延遲—循環校準代碼,讓我們看一下定義于init/calibrate.c文件中的calibrate_ delay()函數。該函數靈活地使用整型運算得到了浮點的精度。如下的代碼片段(有一些注釋)顯示了該函數的開始部分,這部分用于得到一個loops_per_jiffy的粗略值:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->loops_per_jiffy = (1 << 12); /* Initial approximation = 4096 */
printk(KERN_DEBUG “Calibrating delay loop...“);
while ((loops_per_jiffy <<= 1) != 0) {
ticks
= jiffies;  /* As you will find out in the section, “Kernel
                     Timers," the jiffies variable contains the
                     number of timer ticks since the kernel
                     started, and is incremented in the timer
                     interrupt handler
*/

  
while (ticks == jiffies); /* Wait until the start of the next jiffy */
  ticks
= jiffies;
  
/* Delay */
  __delay(loops_per_jiffy);
  
/* Did the wait outlast the current jiffy? Continue if it didn\'t */
  ticks
= jiffies - ticks;
  
if (ticks) break;
}

loops_per_jiffy
>>= 1; /* This fixes the most significant bit and is
                          the lower-bound of loops_per_jiffy
*/

  上述代碼首先假定loops_per_jiffy大于4096,這可以轉化為處理器速度大約為每秒100萬條指令,即1 MIPS。接下來,它等待jiffy被刷新(1個新的節拍的開始),并開始運行延遲循環__delay(loops_per_jiffy)。如果這個延遲循環持續了1個jiffy以上,將使用以前的loops_per_jiffy值(將當前值右移1位)修復當前loops_per_jiffy的最高位;否則,該函數繼續通過左移loops_per_jiffy值來探測出其最高位。在內核計算出最高位后,它開始計算低位并微調其精度:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->loopbit = loops_per_jiffy;

/* Gradually work on the lower-order bits */
while (lps_precision-- && (loopbit >>= 1)) {
  loops_per_jiffy
|= loopbit;
  ticks
= jiffies;
  
while (ticks == jiffies); /* Wait until the start of the next jiffy */
ticks
= jiffies;

  
/* Delay */
  __delay(loops_per_jiffy);

  
if (jiffies != ticks)        /* longer than 1 tick */
    loops_per_jiffy
&= ~loopbit;
}

  上述代碼計算出了延遲循環跨越jiffy邊界時loops_per_jiffy的低位值。這個被校準的值可被用于獲取BogoMIPS(其實它是一個并非科學的處理器速度指標)?梢允褂肂ogoMIPS作為衡量處理器運行速度的相對尺度。在1.6G Hz 基于Pentium M的筆記本電腦上,根據前述啟動過程的打印信息,循環校準的結果是:loops_per_jiffy的值為2394935。獲得BogoMIPS的方式如下:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->BogoMIPS = loops_per_jiffy * 1秒內的jiffy數*延遲循環消耗的指令數(以百萬為單位)
= (2394935 * HZ * 2) / (1000000)
= (2394935 * 250 * 2) / (1000000)
= 1197.46(與啟動過程打印信息中的值一致)

  在2.4節將更深入闡述jiffy、HZ和loops_per_jiffy。


  2.1.5 Checking HLT instruction

  由于Linux內核支持多種硬件平臺,啟動代碼會檢查體系架構相關的bug。其中一項工作就是驗證停機(HLT)指令。

  x86處理器的HLT指令會將CPU置入一種低功耗睡眠模式,直到下一次硬件中斷發生之前維持不變。當內核想讓CPU進入空閑狀態時(查看arch/x86/kernel/process_32.c文件中定義的cpu_idle()函數),它會使用HLT指令。對于有問題的CPU而言,命令行參數no-hlt可以禁止HLT指令。如果no-hlt被設置,在空閑的時候,內核會進行忙等待而不是通過HLT給CPU降溫。

  當init/main.c中的啟動代碼調用include/asm-your-arch/bugs.h中定義的check_bugs()時,會打印上述信息。


毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精
免费高清视频精品| 久久天天做天天爱综合色| 午夜精品影院在线观看| 久久精品夜夜夜夜久久| 91麻豆精品国产无毒不卡在线观看| 波多野结衣的一区二区三区| 极品美女销魂一区二区三区 | 蜜桃视频在线一区| 偷偷要91色婷婷| 看片的网站亚洲| 精油按摩中文字幕久久| 视频一区在线视频| 精品一区二区在线播放| 久久成人免费日本黄色| 欧美96一区二区免费视频| 老司机午夜精品| 国产成人日日夜夜| 色综合激情五月| 欧美日韩亚洲综合一区二区三区| 在线亚洲精品福利网址导航| 在线免费一区三区| 91精品国产手机| 国产亚洲欧美激情| 一区二区在线免费| 国产在线国偷精品产拍免费yy| 99国产精品99久久久久久| 在线精品观看国产| 色综合中文字幕国产| 久久久久久免费| 日韩av高清在线观看| 国产在线精品视频| 国产成人鲁色资源国产91色综| 欧洲精品视频在线观看| 欧美大片在线观看| 香蕉成人啪国产精品视频综合网| 国产一区二区在线影院| 欧美午夜片在线观看| 中文av字幕一区| 久久成人av少妇免费| 在线视频欧美区| 亚洲欧美偷拍另类a∨色屁股| 蜜桃久久久久久久| 欧美性做爰猛烈叫床潮| 国产日产欧美一区| 免费av网站大全久久| 日本乱人伦aⅴ精品| 国产偷国产偷亚洲高清人白洁| 亚洲午夜av在线| 91免费看`日韩一区二区| 国产欧美日本一区视频| 精品在线你懂的| 欧美高清www午色夜在线视频| 中文字幕中文乱码欧美一区二区| 国产在线精品一区二区三区不卡| 91精品啪在线观看国产60岁| 亚洲精品成人在线| 色婷婷综合在线| 亚洲精品国久久99热| 色综合天天在线| 亚洲视频一区二区免费在线观看| 国产成人精品三级麻豆| 精品av综合导航| 国产一区二区三区免费| 欧美激情在线一区二区三区| 成人免费看的视频| 综合精品久久久| 91高清视频免费看| 日日夜夜精品视频免费| 日韩一区二区免费电影| 久久精品国产精品青草| 亚洲国产成人午夜在线一区| 不卡的av中国片| 亚洲一区二区四区蜜桃| 欧美一区二区在线不卡| 国产乱码精品一区二区三区av | 亚洲女爱视频在线| 7777精品伊人久久久大香线蕉的| 日韩国产成人精品| 久久久久久久电影| 欧美亚洲一区二区三区四区| 免费看欧美女人艹b| 国产日韩欧美综合一区| 色吧成人激情小说| 国产成人鲁色资源国产91色综| 亚洲男人的天堂在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 久久久99精品久久| 欧美性猛交一区二区三区精品| 国模冰冰炮一区二区| 亚洲精品欧美激情| 久久婷婷久久一区二区三区| 欧美性受xxxx黑人xyx| 高清久久久久久| 激情综合色丁香一区二区| 亚洲午夜精品在线| 亚洲精品欧美二区三区中文字幕| 精品国产一二三| 欧美美女视频在线观看| 97久久精品人人澡人人爽| 国产高清精品网站| 青青草97国产精品免费观看 | 欧美影院一区二区| 欧美午夜电影在线播放| 91久久精品网| 91农村精品一区二区在线| 成人午夜av在线| 成人亚洲精品久久久久软件| 精品在线你懂的| 久99久精品视频免费观看| 喷白浆一区二区| 国产一二精品视频| 国产黄色91视频| av中文字幕在线不卡| 91丨九色丨尤物| 欧美色视频在线观看| 欧美午夜精品一区二区蜜桃| 欧美偷拍一区二区| 日韩一区二区三区视频在线| 日韩欧美国产电影| 国产欧美日韩三区| 一区二区三区色| 日韩精品一区第一页| 国产精品一区二区男女羞羞无遮挡| 男女男精品视频| 国产成人精品影视| 日本福利一区二区| 精品久久国产字幕高潮| 国产精品家庭影院| 日本成人在线看| 成人精品鲁一区一区二区| 欧美综合视频在线观看| 久久精品一二三| 人人精品人人爱| 欧美系列在线观看| 国产精品久线观看视频| 午夜精品久久久| 在线观看精品一区| 国产精品狼人久久影院观看方式| 日韩中文字幕亚洲一区二区va在线| 国产一区二区精品久久99| 欧美三级电影一区| 国产精品灌醉下药二区| 老司机免费视频一区二区| 欧美三级日韩在线| 亚洲午夜私人影院| 色天天综合色天天久久| 国产精品电影院| 成人夜色视频网站在线观看| 精品国产免费人成在线观看| 五月婷婷另类国产| 久久国内精品自在自线400部| 欧美日韩视频一区二区| 亚洲一区二区三区影院| 91视频精品在这里| 亚洲免费大片在线观看| 色综合欧美在线视频区| 国产欧美精品一区二区三区四区| 韩国欧美国产1区| 久久免费电影网| www.日本不卡| 亚洲国产欧美在线人成| 在线播放国产精品二区一二区四区| 一区二区三区加勒比av| 欧美疯狂性受xxxxx喷水图片| 婷婷开心激情综合| 久久女同性恋中文字幕| 成人亚洲一区二区一| 一区二区三区在线免费视频| 欧美日韩aaa| 懂色av一区二区在线播放| 亚洲精品福利视频网站| 日韩欧美你懂的| 91猫先生在线| 国产又粗又猛又爽又黄91精品| 最新中文字幕一区二区三区| 欧美一区二区三区爱爱| 国产精品白丝av| 亚洲一区二区三区不卡国产欧美| 日韩午夜电影在线观看| 色欧美乱欧美15图片| 国产成人av自拍| 精品亚洲成a人| 亚洲亚洲人成综合网络| 中文字幕 久热精品 视频在线 | 久久婷婷综合激情| 色狠狠综合天天综合综合| 免费成人美女在线观看| 欧美国产一区在线| 欧美人妇做爰xxxⅹ性高电影| 国产美女一区二区三区| 亚洲一区成人在线| 久久精品免视看| 4438x亚洲最大成人网| 蜜臀精品久久久久久蜜臀| 2024国产精品| 欧美私人免费视频| 成人综合婷婷国产精品久久| 日日夜夜精品视频免费| 欧美高清在线一区| 欧美va亚洲va香蕉在线|