sched_setaffinity: Check migration after decrementing in_interrupt

refs: #1180
Change-Id: I2b3fb03066812ecc802406297084977e757092fe
This commit is contained in:
Ken Sato
2018-09-11 11:13:09 +09:00
committed by Masamichi Takagi
parent dd58d366c3
commit c862b29d65
5 changed files with 145 additions and 0 deletions

56
test/issues/1180/C1180.sh Normal file
View File

@ -0,0 +1,56 @@
#!/bin/sh
USELTP=0
USEOSTEST=1
. ../../common.sh
tid=001
echo "*** RT_$tid start *******************************"
sudo ${MCEXEC} ${TESTMCK} -s sched_setaffinity -n 8 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep -v "RESULT: TP failed" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=002
echo "*** RT_$tid start *******************************"
sudo ${MCEXEC} ${TESTMCK} -s sched_setaffinity -n 1 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep -v "RESULT: TP failed" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=003
echo "*** RT_$tid start *******************************"
sudo ${MCEXEC} ${TESTMCK} -s sched_setaffinity -n 2 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep -v "RESULT: TP failed" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=004
echo "*** RT_$tid start *******************************"
sudo ${MCEXEC} ${TESTMCK} -s sched_setaffinity -n 9 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep -v "RESULT: TP failed" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""
tid=005
echo "*** RT_$tid start *******************************"
sudo ${MCEXEC} ${TESTMCK} -s sched_setaffinity -n 10 -- -p 20 2>&1 | tee ./RT_${tid}.txt
if grep -v "RESULT: TP failed" ./RT_${tid}.txt > /dev/null 2>&1 ; then
echo "*** RT_$tid: PASSED"
else
echo "*** RT_$tid: FAILED"
fi
echo ""

14
test/issues/1180/Makefile Normal file
View File

@ -0,0 +1,14 @@
CC = gcc
TARGET=
CPPFLAGS =
LDFLAGS =
all: $(TARGET)
test: all
@sh ./C1180.sh
clean:
rm -f $(TARGET) *.o

29
test/issues/1180/README Normal file
View File

@ -0,0 +1,29 @@
【Issue#1180 動作確認】
□ テスト内容
1. Issueで報告された再現プログラムでの確認
RT_001: ostest_sched_setaffinity.008
親プロセスが子プロセスに対して、子プロセスが実行中のCPUを除いたcpusetを
指定したsched_setaffinity()を実行し、即座にマイグレートすることを確認
2. 既存のマイグレーション機能に影響がないことをOSTESTを用いて確認
RT_002: ostest_sched_setaffinity.001
自プロセスをマイグレートできることを確認
RT_003: ostest_sched_setaffinity.002
マイグレートした自プロセスのレジスタの値が保持されていることを確認
RT_004: ostest_sched_setaffinity.009
マイグレートした子プロセスのレジスタの値が保持されていることを確認
RT_005: ostest_sched_setaffinity.010
複数の子プロセスを同一のCPU上にマイグレートしても、
それぞれのレジスタの値が保持されていることを確認
□ 実行手順
$ make test
McKernelのインストール先や、OSTEST, LTPの配置場所は、
$HOME/.mck_test_config を参照している
.mck_test_config は、McKernelをビルドした際に生成されるmck_test_config.sample ファイルを
$HOMEにコピーし、適宜編集する
□ 実行結果
result.log 参照
すべての項目をPASSしていることを確認

View File

@ -0,0 +1,40 @@
*** RT_001 start *******************************
TEST_SUITE: sched_setaffinity
TEST_NUMBER: 8
ARGS: -p 20
RESULT: ok
*** RT_001: PASSED
*** RT_002 start *******************************
TEST_SUITE: sched_setaffinity
TEST_NUMBER: 1
ARGS: -p 20
RESULT: ok
*** RT_002: PASSED
*** RT_003 start *******************************
TEST_SUITE: sched_setaffinity
TEST_NUMBER: 2
ARGS: -p 20
==before migrate process==
f0 = 3.140000, f1 = 42.195000, f2 = 53.849998, f3 = 909.908997
==after migrate process==
f0 = 3.140000, f1 = 42.195000, f2 = 53.849998, f3 = 909.908997
RESULT: ok
*** RT_003: PASSED
*** RT_004 start *******************************
TEST_SUITE: sched_setaffinity
TEST_NUMBER: 9
ARGS: -p 20
==Please check migrated child process keep datas==
RESULT: ok
*** RT_004: PASSED
*** RT_005 start *******************************
TEST_SUITE: sched_setaffinity
TEST_NUMBER: 10
ARGS: -p 20
==Please check migrated child process keep datas==
RESULT: ok
*** RT_005: PASSED