Files

【Issue#452 動作確認】
□ テスト内容
1. Issue 指摘事項の再現確認
   以下のパッチ (C452.patch) を McKernel に適用し、意図的に memory_range_lock の
   競合を起こすことでテストを容易にする。
   - mmap処理のmemory_range_lock取得中にsleep可能とする
   - mmap処理のmemory_range_lock取得中にsleepするかどうかを制御する
     システムコールを追加する
   このパッチ適用カーネルを使ってテストする。

C452T01 memory_range_lock 取得中に /proc/*/maps を参照し、PASS すること

2. LTP を用いて既存処理に影響しないことを確認
   メモリ関連処理を変更したため、関連するシステムコールのテストを選定した。
C452T02 mmap01: mmap の基本機能の確認
C452T03 mmap02: mmap の基本機能の確認
C452T04 mmap03: mmap の基本機能の確認
C452T05 mmap04: mmap の基本機能の確認
C452T06 mmap12: mmap の基本機能の確認
C452T07 brk01: brk の基本機能の確認
C452T08 fork01: fork の基本機能の確認 (fork時メモリがコピーされる)
C452T09 fork02: fork の基本機能の確認
C452T10 fork03: fork の基本機能の確認
C452T11 mremap04: mremap の基本機能の確認
C452T12 mremap05: mremap の基本機能の確認
C452T13 munmap01: munmap の基本機能の確認
C452T14 shmat01: shmat の基本機能の確認
C452T15 shmdt01: shmdt の基本機能の確認
C452T16 mlock01: mlock の基本機能の確認
C452T17 mlock04: mlock の基本機能の確認
C452T18 execve01: execve の基本機能の確認 (exec時、メモリ解放がある)
C452T19 exit01: exit の基本機能の確認 (exit時、メモリ解放がある)
C452T20 exit02: exit の基本機能の確認 (exit時、メモリ解放がある)
C452T21 exit_group01: exit_group の基本機能の確認 (exit時、メモリ解放がある)
C452T22 mprotect02: mprotect の基本機能の確認
C452T23 mprotect03: mprotect の基本機能の確認
C452T24 msync01: msync の基本機能の確認
C452T25 msync02: msync の基本機能の確認
C452T26 munlock01: munlock の基本機能の確認
C452T27 remap_file_pages01: remap_file_pages の基本機能の確認
C452T28 remap_file_pages02: remap_file_pages の基本機能の確認

□ 実行手順
$ make test

McKernelのインストール先や LTP の配置場所は、$HOME/.mck_test_config を
参照する。.mck_test_config は、McKernel をビルドした際に生成される
mck_test_config.sample ファイルを $HOME にコピーし、適宜編集すること。

尚、テスト実行には C452.patch を適用した McKernel を使用すること。

□ 実行結果
C452_x86_64.txt(x86_64実行結果)、C452_arm64.txt(arm64実行結果)参照。
全ての項目が PASS していることを確認。