【Issue#1183 動作確認】
□ テスト内容
テストで扱うメモリサイズについて、以下のように定義する
メモリ総容量:McKernelに割り当てられたメモリ量。本テストでは10GB とする
利用可能サイズ:メモリ総容量から、マップ済ページの合計サイズを引いたもの
利用可能サイズを超えるサイズ:本テストではメモリ総容量 + 1GB とする
利用可能サイズを超えないサイズ: 本テストではメモリ総容量 / 2 とする
1. MAP_HUGETLB指定時のmmapの動作確認
C1183T01:
一回のmmapでの要求サイズが、利用可能サイズを超える場合、
利用可能なそれぞれのHugePageSizeでmmapが失敗することを確認する
C1183T02:
一回のmmapでの要求サイズが、利用可能サイズを超えない場合、
利用可能なそれぞれのHugePageSize でmmapが成功することを確認する
C1183T03:
複数回のmmapにおいて、各回のmmapでの要求サイズが利用可能サイズを超えない場合に成功し、
超えた場合に失敗することを確認する
なお、anonymous mmapは連続した物理メモリが確保出来た場合はプリマップをするため、
アーキテクチャごとに下記のような動作となる
- x86_64 : 2MBページ要求時は利用可能サイズが減少していくが、1GBページ要求時は減少しない
- aarch64 : 64KB, 2MBページ要求時は利用可能サイズが減少していくが、32MB, 1GBページ要求時は減少しない
1. MAP_HUGETLB未指定時のmmapの動作確認
C1183T04:
一回のmmapでの要求サイズが、利用可能サイズを超える場合、mmapが成功することを確認する
C1183T05
一回のmmapでの要求サイズが、利用可能サイズを超えない場合、mmapが成功することを確認する
C1183T06:
複数回のmmapにおいて、各回のmmapでの要求サイズが利用可能サイズを超えない場合に成功し、
超えた場合に失敗することを確認する
なお、MAP_HUGETLB未指定時にはプリマップは行われないため、複数回のmmapによっても
利用可能サイズは減少せず、累積のmmap要求サイズがメモリ総容量を超過してもmmapは成功する
□ 実行手順
$ make test
McKernelのインストール先や、OSTEST, LTPの配置場所は、
$HOME/.mck_test_config を参照している
.mck_test_config は、McKernelをビルドした際に生成されるmck_test_config.sample ファイルを
$HOMEにコピーし、適宜編集する
□ 実行結果
x86_64_result.log, aarch64_result.log 参照。
すべての項目をPASSしていることを確認。