【Issue#765 動作確認】
□ テスト内容
1. 共有可能なページがラージページに割り当てられないことの確認
Issue#765の問題は、共有可能なラージページをスモールページに分割したとき、
共有情報が不正になることであった。
しかし、McKernel は共有対象の領域をラージページに割り当てないため、共有
可能なページが分割されることはあり得ず、Issueが顕在化することは無い。
このことをテストプログラムを用いて確認する。
C765T01 スタック領域がラージページに割り当てられ、共有不能なことを確認する。
C765T02 ヒープ領域がスモールページに割り当てられ、共有不能なことを確認する。
C765T03 mmapで8kBのMAP_PRIVATE領域がスモールページに割り当てられ、共有不能な
ことを確認する。
C765T04 mmapで2MBのMAP_PRIVATE領域がラージページに割り当てられ、共有不能な
ことを確認する。
C765T05 mmapで8kBのMAP_SHARED領域がスモールページに割り当てられ、共有可能な
ことを確認する。
C765T06 mmapで2MBのMAP_SHARED領域がスモールページに割り当てられ、共有可能な
ことを確認する。
C765T07 shmatで8kBの領域がスモールページに割り当てられ、共有可能なことを
確認する。
C765T08 shmatで2MBの領域がスモールページに割り当てられ、共有可能なことを
確認する。
2. 指摘プログラムで現象が発生しないことの確認
ostestのmem_limitsを実行し、現象が発生しないことを確認する。
C765T09 struct pageの参照カウンタが負にならないことを確認する。
□ パッチ適用
動作確認のため、McKernelにパッチを適用する。
$ cd /path/to/mckernel
$ patch -p0 < test/issue/765/C765.patch
$ <configure, build, install>
C765.patch 指定されたメモリのページサイズと共有状況を調べるシステムコールを
追加するパッチ。
□ 実行手順
$ make test
実行できない場合は、C765.shの以下の行を適切に書き換えた後に実行。
BIN= mcexec が存在するパス
SBIN= mcreboot.sh が存在するパス
OSTEST= ostest が存在するパス
□ 実行結果
C765.txt 参照。
全ての項目が OK となっていることを確認。