在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > linux內(nèi)核中的__read_mostly變量

            linux內(nèi)核中的__read_mostly變量

            作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò) 收藏
            內(nèi)核版本:2.6.14

            在閱讀socket源碼的時(shí)候,有如下一句(net/socket.c):

            本文引用地址:http://www.biyoush.com/article/201611/319987.htm

            [plain]view plaincopy
            print?
            1. staticstructvfsmount*sock_mnt__read_mostly;

            感覺(jué)__read_mostly很奇怪,就深入分析了一下。

            __read_mostly原語(yǔ)將定義為存放在.data.read_mostly段中。

            [plain]view plaincopy
            print?
            1. #ifdefined(CONFIG_X86)||defined(CONFIG_SPARC64)
            2. #define__read_mostly__attribute__((__section__(".data.read_mostly")))
            3. #else
            4. #define__read_mostly
            5. #endif

            由此可見(jiàn),我們可以將經(jīng)常需要被讀取的數(shù)據(jù)定義為 __read_mostly類型,這樣Linux內(nèi)核被加載時(shí),該數(shù)據(jù)將自動(dòng)被存放到Cache中,以提高整個(gè)系統(tǒng)的執(zhí)行效率。另一方面,如果所在的平臺(tái)沒(méi)有Cache,或者雖然有Cache,但并不提供存放數(shù)據(jù)的接口(也就是并不允許人工放置數(shù)據(jù)在Cache中),這樣定義為 __read_mostly類型的數(shù)據(jù)將不能存放在Linux內(nèi)核中,甚至也不能夠被加載到系統(tǒng)內(nèi)存去執(zhí)行,將造成Linux 內(nèi)核啟動(dòng)失敗。
            解決的方法有兩種:
            1. 修改include/asm/cache.h中的__ready_mostly定義為:#define __read_mostly
            2. 修改arch/xxx/kernel/vmlinux.S,將.data.read_mostly段的位置到實(shí)際內(nèi)存空間中去,例如放置在 .data段之后等等。
            此外,內(nèi)核源碼通過(guò)CONFIG_X86)和(CONFIG_SPARC64)來(lái)判斷該怎樣定義__read_mostly,因此在arm中這個(gè)宏沒(méi)有意義。


            關(guān)鍵詞: linux內(nèi)核read_mostly變

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉