0

開始ページ アドレスが 8 バイト アラインされている無料の連続ページ リストを提供できる Linux カーネル API があるかどうか教えてください。

仮想メモリではなく、連続した物理メモリを取得する必要があります。

4

1 に答える 1

3

Paul R が言うように、を使用しますkmalloc
1 ページ未満を割り当てる場合、割り当てはそのサイズに合わせて 2 のべき乗に切り上げられます (つまり、40 バイトを割り当てると、アドレスは 64 バイトに揃えられます)。ページ以上を割り当てると、アドレスは 4096 バイトのページに配置されます。
取得するメモリは仮想ですが、物理メモリに 1 対 1 でマップされるため、連続した物理ページが取得されます。
Linux 2.6.22 より前では、128KB に制限されていることに注意してください (アーキテクチャと構成によって異なります)。2.6.22 以降、制限は 4MB です (これもアーキテクチャと構成によって異なります)。

于 2012-07-06T07:55:42.293 に答える