2012-10-18 60 views
1

我一直在嘗試在我正在使用的驅動程序的內核空間中使用malloc來分配空間(使用malloc是一個約束;我不允許以任何其他方式分配空間),但是如果我嘗試分配「太多」元素(〜500倍的一個非常小的結構),只有我需要的一小部分空間實際分配。在內核空間的動態分配

減少分配元素的數量對我來說沒有任何問題。內核空間中的動態分配是否有限制,這可能會導致我看到的行爲?

回答

2

malloc是一個用戶空間庫函數。你不能在內核空間中使用它。有一個叫做kmalloc()的函數用來在內核空間分配內存。您也可以使用vmalloc()。我建議你閱讀這個線程What is the difference between vmalloc and kmalloc?,以便對vmalloc()和kmalloc()進行一些說明。

而且我建議你在SO中搜索你的查詢,然後詢問問題。因爲,有人問過here