Re: [問題] 關於vmalloc的問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章