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