55 lines
2.2 KiB
Plaintext
55 lines
2.2 KiB
Plaintext
【Issue#988 動作確認】
|
|
□ 前提
|
|
・本Issueで修正したmcctrl_clear_pte_range() は、WRITE権限を持つmmap領域を
|
|
unmapした場合に呼び出される
|
|
なお、WRITE権限を持たない領域のunmapの際には、set_host_vma()によって
|
|
パーミッションの初期化が行われる
|
|
・McKernelでは、PROT_WRITEを変更しないmprotectを行った場合、
|
|
ホスト側のVMAの権限は変更されない
|
|
|
|
□ テスト内容
|
|
1. unmapしたホスト側のVMAの権限がRWX(デフォルト)になっていることを確認
|
|
C988T01:
|
|
以下の流れでmmap, mprotect, munmapを行い、munmap後のホスト側のVMAの
|
|
パーミッションを確認する
|
|
1. mmapでメモリ領域を確保
|
|
2. 確保した領域のVMAの権限がRWXであることを確認
|
|
3. 確保した領域にmprotect(PROT_NONE) -> mprotect(PROT_WRITE | PROT_EXEC)を行う
|
|
(McKernelではWRITE属性を変更しないmprotectはvmaを変更しないため、一度NONEを設定する)
|
|
4. 確保した領域のVMAの権限が-WXであることを確認
|
|
5. 確保した領域をmunmapで解放する
|
|
6. 解放後の領域のVMAの権限がRWXであることを確認
|
|
7. mmapで再びメモリ領域を確保
|
|
8. 確保した領域にmprotect(PROT_NONE)を行う
|
|
9. 確保した領域のVMAの権限がRWXでないことを確認
|
|
10. 確保した領域をmunmapで解放する
|
|
11. 解放後の領域のVMAの権限がRWXであることを確認
|
|
|
|
2. 以下のLTPを用いて既存のmmap機能に影響が無いことを確認
|
|
- mmap01
|
|
- mmap02
|
|
- mmap03
|
|
- mmap04
|
|
- mmap05
|
|
- mmap06
|
|
- mmap07
|
|
- mmap08
|
|
- mmap09
|
|
- mmap12
|
|
- mmap14
|
|
- mmap15
|
|
|
|
□ 実行手順
|
|
(1) cd <mckernel> && patch -p0 < <mckernel>/test/issues/988/get_vma_prot.patch
|
|
(2) McKernelをビルドする
|
|
(3) cd <mckernel>/test/issues/988/<arch> && make test
|
|
|
|
McKernelのインストール先や、OSTEST, LTPの配置場所は、
|
|
$HOME/.mck_test_config を参照している
|
|
.mck_test_config は、McKernelをビルドした際に生成されるmck_test_config.sample ファイルを
|
|
$HOMEにコピーし、適宜編集する
|
|
|
|
□ 実行結果
|
|
result_x86_64.log および result_aarch64.log 参照。
|
|
すべての項目をPASSしていることを確認。
|