Files
mckernel/test/issues/988/README
Ken Sato 18412616e1 munmap: Change permission of VMA back to RWX on unmap
Change-Id: Ic02098e7458dd8fa2961fb03dc32e37fb18c5dc5
Refs: #988
2019-09-26 03:49:50 +00:00

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していることを確認。