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

作者: leolarrel (真.粽子無雙)   2015-04-01 12:25:27
※ 引述《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會使用一些手法
來盡量滿足呼叫者(例如把某些記憶體頁搬到硬碟去之類的),這些手法可能跑在另一個
執行緒,或可能是一些控制硬體的指令什麼的,所以得要將目前呼叫者的行程送去休眠
作者: aweilin   2015-04-28 22:11:00
所以就是為了要取得記憶體,作業系統去取得的這個過程中有可能會去睡覺

Links booklink

Contact Us: admin [ a t ] ucptt.com