shmobj: Support large page

Mixing page sizes is allowed by shmobj.

Change-Id: Ic48b71da2db6ce3f68fa3dbc8ad5ae96347d6018
Refs: #1381
Refs: #1458
This commit is contained in:
Ken Sato
2020-01-15 15:45:17 +09:00
committed by Masamichi Takagi
parent 4b66373813
commit 9a60997ea0
32 changed files with 2212 additions and 75 deletions

65
test/issues/1458/README Normal file
View File

@@ -0,0 +1,65 @@
【Issue#1458 動作確認】
□ テスト内容
1. C1458T01
以下のケースでMAP_SHARED指定のmmapをした領域についてページインした後、
最後から2番めのラージページの最後の部分をより小さいページサイズ1ページ分でunmapし、
期待通りの動作となることを確認する
また、当該領域への読み書き操作が正常に行えることを確認する
- MAP_HUGETLB指定 munmapが成功する
- ラージページサイズの倍数のサイズ munmapが成功する
- ラージページサイズの倍数ではないサイズ munmapが成功する
2. C1458T02
以下のケースでMAP_SHARED指定のmmapをした領域についてページインする前に、
最後から2番めのラージページの最後の部分をより小さいページサイズ1ページ分でunmapし、
期待通りの動作となることを確認する
また、当該領域への読み書き操作が正常に行えることを確認する
- MAP_HUGETLB指定 munmapが成功する
- ラージページサイズの倍数のサイズ munmapが成功する
- ラージページサイズの倍数ではないサイズ munmapが成功する
3. C1458T03
以下のケースでshmget()で作成した共有メモリ領域の、
最後から2番めのラージページの最後の部分をより小さいページサイズ1ページ分でunmapし、
期待通りの動作となることを確認する
また、当該領域への読み書き操作が正常に行えることを確認する
- MAP_HUGETLB指定 munmapが成功する
- ラージページサイズの倍数のサイズ munmapが成功する
- ラージページサイズの倍数ではないサイズ munmapが成功する
4. 以下のLTPを用いて既存のshm機能に影響が無いことを確認する
- shmat01
- shmat02
- shmat03
- shmctl01
- shmctl02
- shmctl03
- shmctl04
- shmdt01
- shmdt02
- shmget01
- shmget02
- shmget03
- shmget04
- shmget05
□ 実行手順
1. McKernelをビルドした際に生成されるmck_test_config.sample ファイルを
$HOME/.mck_test_configとしてコピーし、パスを編集する。
2. 以下の手順でビルドと実行を行う
$ (build mckernel)
$ cd <mckernel>/test/issues/1458
$ mkdir build && cd build
$ cmake ../ -DWITH_MCK=<mck_install_dir> -DWITH_MCK_SRC=<mck_src_dir> -DWITH_MCK_BUILD=<mck_build_dir> -DCMAKE_INSTALL_PREFIX=./install -DCMAKE_INSTALL_PREFIX_SCRIPTS=./install/data/scripts
$ make install
$ ./install/scripts/issue-C1458T01
$ ./install/scripts/issue-C1458T02
$ ./install/scripts/issue-C1458T03
$ cd <mckernel>/test/issues/1458
$ ./regression_test.sh
□ 実行結果
x86_64_result.log aarch64_result.log 参照。
すべての項目をPASSしていることを確認。