This includes the following fix: send_syscall, do_syscall: remove argument pid Fujitsu: POSTK_TEMP_FIX_26 Refs: #1165 Change-Id: I702362c07a28f507a5e43dd751949aefa24bc8c0
54 lines
2.4 KiB
Plaintext
54 lines
2.4 KiB
Plaintext
【Issue#1165 動作確認】
|
|
□ テスト内容
|
|
Issue#1165 で指摘されている現象は、以下の理由により既に解消されている。
|
|
・ kill および gettid のシステムコールデリゲートは、McKernel と同一PIDを持つ
|
|
mcexec に対して発行するようになっているため、他プロセスの情報を参照する
|
|
ことは無い。
|
|
・ 対応する mcexec が終了している状態でシステムコールデリゲートしたとしても、
|
|
mcctrl が適切にエラーを返すため、指摘の現象が発生することは無い。
|
|
|
|
以上を踏まえ、Issue#1165 では、以下の改修を行った。
|
|
・ 他 PID の mcexec にシステムコールデリゲートは発生しない (または解消可能)
|
|
ので、do_syscall と send_syscall のインタフェースから PID 指定を削除する。
|
|
・ 他 PID の mcexec にシステムコールデリゲートする以下の処理は、同一 PID の
|
|
mcexec にシステムコールデリゲートするように変更する。
|
|
- fork 後、親プロセスから子プロセスの mcexec に PTE の初期化を依頼する処理
|
|
|
|
このため、Issue#1165に対して以下のテストを行った。
|
|
1. fork 後、子プロセスのシステムコールデリゲートで親プロセスの領域が破壊
|
|
されないことを確認する。
|
|
C1165T01 親プロセスが read 後 fork し、子プロセスが同じアドレスの領域に read
|
|
して子プロセスの領域が書き換えられ、親プロセスの領域が書き換えられ
|
|
ないことを確認する。
|
|
|
|
2. 指摘されたプログラムを実行し、残留プロセスが存在しないことを確認する。
|
|
C1165T02 ostest force_exit
|
|
|
|
3. LTP を用いて、変更が既存処理に影響しないことを確認する (以下の LTP が PASS
|
|
すること)。
|
|
C1165T03 clone01
|
|
C1165T04 clone03
|
|
C1165T05 clone04
|
|
C1165T06 clone06
|
|
C1165T07 clone07
|
|
C1165T08 fork01
|
|
C1165T09 fork02
|
|
C1165T10 fork03
|
|
C1165T11 fork04
|
|
C1165T12 fork07
|
|
C1165T13 fork08
|
|
C1165T14 fork09
|
|
C1165T15 fork10
|
|
|
|
□ 実行手順
|
|
$ make test
|
|
|
|
実行できない場合は、C1165.shの以下の行を適切に書き換えた後に実行。
|
|
BIN= mcexec が存在するパス
|
|
SBIN= mcreboot.sh が存在するパス
|
|
LTP= LTP が存在するパス
|
|
|
|
□ 実行結果
|
|
C1165.txt 参照。
|
|
全ての項目が OK となっていることを確認。
|