malloc
作業中のドライバーのカーネルスペースを使用してスペースを割り当てようとしています(使用malloc
はここでの制約です。他の方法でスペースを割り当てることはできません)が、「多すぎる」要素を割り当てようとすると(非常に小さな構造体の約500倍)、必要なスペースのごく一部だけが実際に割り当てられます。
割り当てられた要素の数を減らすことは、問題なく機能しました。カーネル空間での動的割り当てには、私が見ている動作を引き起こす可能性のある制限がありますか?
malloc
作業中のドライバーのカーネルスペースを使用してスペースを割り当てようとしています(使用malloc
はここでの制約です。他の方法でスペースを割り当てることはできません)が、「多すぎる」要素を割り当てようとすると(非常に小さな構造体の約500倍)、必要なスペースのごく一部だけが実際に割り当てられます。
割り当てられた要素の数を減らすことは、問題なく機能しました。カーネル空間での動的割り当てには、私が見ている動作を引き起こす可能性のある制限がありますか?
malloc
ユーザー空間ライブラリ関数です。カーネル空間では使用できません。カーネル空間にメモリを割り当てるために使用されるkmalloc()という関数があります。
vmalloc()も使用できます。このスレッドを読むことをお勧めしますvmalloc と kmalloc の違いは何ですか? vmalloc() と kmalloc() に関するいくつかの説明。
また、SO でクエリを検索してから、質問をすることをお勧めします。なぜなら、すでに誰かがここで尋ねたからです