8G の物理メモリ (Fedora20) があり、次のパラメーターをカーネルに渡すことで、起動時に 2 つの 1G hugepage を割り当てるようにカーネル パラメーターを構成しました。
default_hugepagesz=1G hugepagesz=1G hugepages=2
HugeTLBFS は自動マウントされます。
% mount | grep ^huge
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
%
再起動すると、すべて問題なく表示され、カーネルが必要なページを割り当てていることがわかります。
% dmesg | grep HugeTLB
HugeTLB registered 1 GB page size, pre-allocated 2 pages
% grep -E ^"(Mem|Huge)" /proc/meminfo
MemTotal: 8137732 kB
MemFree: 5359672 kB
MemAvailable: 5707656 kB
HugePages_Total: 2
HugePages_Free: 2
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 1048576 kB
%
ご覧のとおり、空きメモリの量により、ヒュージページの数を増やすことができるはずですが、そうすることができません:
% echo 3 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
-bash: echo: write error: Invalid argument
また
% echo 3 > /proc/sys/vm/nr_hugepages
-bash: echo: write error: Invalid argument
%
ページ数を減らすことも失敗します。私は何を間違っていますか?