Re: [問題] 關於vmalloc的問題

看板LinuxDev作者 (真.粽子無雙)時間9年前 (2015/04/01 12:25), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《popd (QQ)》之銘言: : 小弟對於linux kernel算初心者,關於vmalloc的解釋有些地方不懂,還請高手解釋 : void * vmalloc(unsigned long size) : The function returns a pointer to at least size bytes of virtually contiguous : memory. On error, the function returns NULL. The function might sleep, and : thus cannot be called from interrupt context or other situations where : blocking is not permissible. : 我的問題是 : 為什麼這個function會sleep? 什麼樣的情況會導致vmalloc進行sleep? : 謝謝! 替你翻了一下google ... 請看此網頁的最後面有關KMALLOC PK VMALLOC 的敘述 關鍵字在於GFP_KERNEL旗標,所以在kernel 中任何記憶體配置函數有用到 GFP_KERNEL 旗標的,全都有可能休眠 這可能是因為,目前記憶體的配置無法滿足呼叫者的空間需求,但kernel會使用一些手法 來盡量滿足呼叫者(例如把某些記憶體頁搬到硬碟去之類的),這些手法可能跑在另一個 執行緒,或可能是一些控制硬體的指令什麼的,所以得要將目前呼叫者的行程送去休眠 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.6.195 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1427862330.A.F8B.html

04/28 22:11, , 1F
所以就是為了要取得記憶體,作業系統去取得的這個過程中
04/28 22:11, 1F

04/28 22:11, , 2F
有可能會去睡覺
04/28 22:11, 2F
文章代碼(AID): #1L6tCw-B (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #1L6tCw-B (LinuxDev)