do_syscall: Delegate system calls to the mcexec with the same pid
This includes the following fix: send_syscall, do_syscall: remove argument pid Fujitsu: POSTK_TEMP_FIX_26 Refs: #1165 Change-Id: I702362c07a28f507a5e43dd751949aefa24bc8c0
This commit is contained in:
committed by
Masamichi Takagi
parent
c23bc8d401
commit
7e342751a2
53
test/issues/1165/README
Normal file
53
test/issues/1165/README
Normal file
@ -0,0 +1,53 @@
|
||||
【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 となっていることを確認。
|
||||
Reference in New Issue
Block a user