メモリ PAGE_SIZE を変更するにはどうすればいいですか?

メモリ PAGE_SIZE を変更するにはどうすればいいですか?

以下の点を知りたいです:

Linux のデフォルトのメモリ PAGE_SIZE は 4096 バイトですが、実行中のシステムでこのサイズを変更するにはどうすればよいでしょうか?

Linux で hugepages はどのように機能し、hugepage のサイズはどのように設定するのでしょうか?

言及されているここそれ

Linuxカーネルは、物理メモリの一部をより大きなページサイズでアドレスできるように確保することができる。

物理メモリの一部をより大きなページ サイズで構成し、残りをデフォルトのページ サイズ (4096 バイト) のままにする方法

hugepage の最大サイズはどれくらいですか?

答え1

ここにいくつかの読み物があります: http://lwn.net/Articles/374424/

私の知る限り、PAGE_SIZEを変更するには再コンパイルする必要があります。変更内容によっては、ページテーブルのサイズなどを変更する必要があるため、面倒な作業になるかもしれません。

ページングに興味があるなら、xv6 (http://pdos.csail.mit.edu/6.828/2011/xv6.html) をダウンロードして、qemu インスタンスで試してみましょう。システム全体を壊すことなく、いろいろ試すことができます。xv6 の開発者も、仕組みに関する優れたドキュメントを用意しています。

関連情報