mmap: Check if size exceeds available memory when MAP_HUGETLB
If size exceeds, mmap fails and set -ENOMEM Change-Id: I4f0d6e18ee3a7c8e32e251b7ed07ee9f76305603 Refs: #1183
This commit is contained in:
committed by
Masamichi Takagi
parent
2dd8687974
commit
8efced7bf7
49
test/issues/1183/README
Normal file
49
test/issues/1183/README
Normal file
@ -0,0 +1,49 @@
|
||||
【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していることを確認。
|
||||
Reference in New Issue
Block a user