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