kmalloc
グーグルで検索したところ、メモリの連続した物理ブロックを取得することが保証されているため、ほとんどの人が の使用を主張していることがわかりました。ただし、kmalloc
必要な連続した物理ブロックが見つからない場合は失敗する可能性もあるようです。
メモリの連続したブロックを持つことの利点は何ですか? 具体的には、システム コールでメモリの連続した物理ブロックが必要になるのはなぜですか? 使えなかった理由はありますか?
最後に、システム コールの処理中にメモリを割り当てる場合、指定する必要がありますか? システムコールはアトミックコンテキストで実行されますか?vmalloc
GFP_ATOMIC
GFP_ATOMIC
割り当ては優先度が高く、スリープしません。これは、割り込みハンドラー、下半分、およびスリープできないその他の状況で使用するフラグです。
GFP_KERNEL
これは通常の割り当てであり、ブロックされる可能性があります。これは、スリープしても安全な場合にプロセス コンテキスト コードで使用するフラグです。