init_process_stack: Support "ulimit -s unlimited"
Refs: #1109 Change-Id: I395f012fd747cb6a2f93be71e34c7f6f3666ed67
This commit is contained in:
committed by
Masamichi Takagi
parent
0c7384f980
commit
eae5c40f60
76
test/issues/1109/C1109.sh
Normal file
76
test/issues/1109/C1109.sh
Normal file
@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
BIN=
|
||||
SBIN=
|
||||
OSTEST=
|
||||
BOOTPARAM="-c 1-7 -m 10G@0"
|
||||
|
||||
if [ -f ../../../config.h ]; then
|
||||
str=`grep "^#define BINDIR " ../../../config.h | head -1 | sed 's/^#define BINDIR /BINDIR=/'`
|
||||
eval $str
|
||||
fi
|
||||
if [ "x$BINDIR" = x ];then
|
||||
BINDIR="$BIN"
|
||||
fi
|
||||
|
||||
if [ -f ../../../Makefile ]; then
|
||||
str=`grep ^SBINDIR ../../../Makefile | head -1 | sed 's/ //g'`
|
||||
eval $str
|
||||
fi
|
||||
if [ "x$SBINDIR" = x ];then
|
||||
SBINDIR="$SBIN"
|
||||
fi
|
||||
|
||||
if [ -f $HOME/ostest/bin/test_mck ]; then
|
||||
OSTESTDIR="$HOME/ostest"
|
||||
fi
|
||||
if [ "x$OSTESTDIR" = x ]; then
|
||||
OSTESTDIR="$OSTEST"
|
||||
fi
|
||||
|
||||
if ! lsmod | grep mcctrl > /dev/null 2>&1; then
|
||||
if [ ! -x $SBINDIR/mcreboot.sh ]; then
|
||||
echo no mcreboot found >&2
|
||||
exit 1
|
||||
fi
|
||||
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
|
||||
fi
|
||||
|
||||
if [ ! -x $SBINDIR/ihkosctl ]; then
|
||||
echo no ihkosctl found >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
maxmem=`$SBINDIR/ihkosctl 0 query mem | cut -d '@' -f 1`
|
||||
mem95p=`expr $maxmem \* 95 / 100`
|
||||
mem110p=`expr $maxmem \* 110 / 100`
|
||||
|
||||
if [ ! -x $BINDIR/mcexec ]; then
|
||||
echo no mcexec found >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in 10240:9961472:01 2097152:2040109466:02 unlimited:$mem95p:03; do
|
||||
ul=`echo $i|sed 's/:.*//'`
|
||||
st=`echo $i|sed -e 's/^[^:]*://' -e 's/:[^:]*$//'`
|
||||
id=`echo $i|sed 's/.*://'`
|
||||
|
||||
sudo sh -c "ulimit -s $ul; $BINDIR/mcexec $OSTESTDIR/bin/test_mck -s mem_stack_limits -n 0 -- -s $st" 2>&1 | tee C1109T$id.txt
|
||||
if grep "RESULT: ok" C1109T$id.txt > /dev/null 2>&1; then
|
||||
echo "*** C1109T$id: OK"
|
||||
else
|
||||
echo "*** C1109T$id: NG"
|
||||
fi
|
||||
done
|
||||
|
||||
for i in 10M:9961472:04 2G:2040109466:05 100000G:$mem95p:06; do
|
||||
ul=`echo $i|sed 's/:.*//'`
|
||||
st=`echo $i|sed -e 's/^[^:]*://' -e 's/:[^:]*$//'`
|
||||
id=`echo $i|sed 's/.*://'`
|
||||
|
||||
$BINDIR/mcexec -s 2M,$ul $OSTESTDIR/bin/test_mck -s mem_stack_limits -n 0 -- -s $st 2>&1 | tee C1109T$id.txt
|
||||
if grep "RESULT: ok" C1109T$id.txt > /dev/null 2>&1; then
|
||||
echo "*** C1109T$id: OK"
|
||||
else
|
||||
echo "*** C1109T$id: NG"
|
||||
fi
|
||||
done
|
||||
49
test/issues/1109/C1109.txt
Normal file
49
test/issues/1109/C1109.txt
Normal file
@ -0,0 +1,49 @@
|
||||
Script started on Thu Jun 28 09:14:18 2018
|
||||
bash-4.2$ make test
|
||||
sh ./C1109.sh
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 9961472
|
||||
call: 0 GiB + 9 MiB + 512 KiB
|
||||
used_stack size: 9986480 (0 GiB + 9 MiB + 536 KiB)
|
||||
RESULT: ok
|
||||
*** C1109T01: OK
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 2040109466
|
||||
call: 1 GiB + 921 MiB + 614 KiB
|
||||
used_stack size: 2040182784 (1 GiB + 921 MiB + 686 KiB)
|
||||
RESULT: ok
|
||||
*** C1109T02: OK
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 10200547328
|
||||
call: 9 GiB + 512 MiB + 0 KiB
|
||||
used_stack size: 10200572336 (9 GiB + 512 MiB + 24 KiB)
|
||||
RESULT: ok
|
||||
*** C1109T03: OK
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 9961472
|
||||
call: 0 GiB + 9 MiB + 512 KiB
|
||||
used_stack size: 9986480 (0 GiB + 9 MiB + 536 KiB)
|
||||
RESULT: ok
|
||||
*** C1109T04: OK
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 2040109466
|
||||
call: 1 GiB + 921 MiB + 614 KiB
|
||||
used_stack size: 2040182784 (1 GiB + 921 MiB + 686 KiB)
|
||||
RESULT: ok
|
||||
*** C1109T05: OK
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 10200547328
|
||||
call: 9 GiB + 512 MiB + 0 KiB
|
||||
used_stack size: 10200572336 (9 GiB + 512 MiB + 24 KiB)
|
||||
RESULT: ok
|
||||
*** C1109T06: OK
|
||||
bash-4.2$ exit
|
||||
exit
|
||||
|
||||
Script done on Thu Jun 28 09:14:32 2018
|
||||
6
test/issues/1109/C1109T01.txt
Normal file
6
test/issues/1109/C1109T01.txt
Normal file
@ -0,0 +1,6 @@
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 9961472
|
||||
call: 0 GiB + 9 MiB + 512 KiB
|
||||
used_stack size: 9986480 (0 GiB + 9 MiB + 536 KiB)
|
||||
RESULT: ok
|
||||
6
test/issues/1109/C1109T02.txt
Normal file
6
test/issues/1109/C1109T02.txt
Normal file
@ -0,0 +1,6 @@
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 2040109466
|
||||
call: 1 GiB + 921 MiB + 614 KiB
|
||||
used_stack size: 2040182784 (1 GiB + 921 MiB + 686 KiB)
|
||||
RESULT: ok
|
||||
6
test/issues/1109/C1109T03.txt
Normal file
6
test/issues/1109/C1109T03.txt
Normal file
@ -0,0 +1,6 @@
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 10200547328
|
||||
call: 9 GiB + 512 MiB + 0 KiB
|
||||
used_stack size: 10200572336 (9 GiB + 512 MiB + 24 KiB)
|
||||
RESULT: ok
|
||||
6
test/issues/1109/C1109T04.txt
Normal file
6
test/issues/1109/C1109T04.txt
Normal file
@ -0,0 +1,6 @@
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 9961472
|
||||
call: 0 GiB + 9 MiB + 512 KiB
|
||||
used_stack size: 9986480 (0 GiB + 9 MiB + 536 KiB)
|
||||
RESULT: ok
|
||||
6
test/issues/1109/C1109T05.txt
Normal file
6
test/issues/1109/C1109T05.txt
Normal file
@ -0,0 +1,6 @@
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 2040109466
|
||||
call: 1 GiB + 921 MiB + 614 KiB
|
||||
used_stack size: 2040182784 (1 GiB + 921 MiB + 686 KiB)
|
||||
RESULT: ok
|
||||
6
test/issues/1109/C1109T06.txt
Normal file
6
test/issues/1109/C1109T06.txt
Normal file
@ -0,0 +1,6 @@
|
||||
TEST_SUITE: mem_stack_limits
|
||||
TEST_NUMBER: 0
|
||||
ARGS: -s 10200547328
|
||||
call: 9 GiB + 512 MiB + 0 KiB
|
||||
used_stack size: 10200572336 (9 GiB + 512 MiB + 24 KiB)
|
||||
RESULT: ok
|
||||
6
test/issues/1109/Makefile
Normal file
6
test/issues/1109/Makefile
Normal file
@ -0,0 +1,6 @@
|
||||
all::
|
||||
|
||||
test::
|
||||
sh ./C1109.sh
|
||||
|
||||
clean::
|
||||
25
test/issues/1109/README
Normal file
25
test/issues/1109/README
Normal file
@ -0,0 +1,25 @@
|
||||
【Issue#1109 動作確認】
|
||||
□ テスト内容
|
||||
1. スタックサイズ制限を ulimit -s によって指定した場合の実行確認
|
||||
C1109T01 ulimit -s 10MB 指定し、9.5MBスタックを使用できることを確認
|
||||
C1109T02 ulimit -s 2GB 指定し、1.9GBスタックを使用できることを確認
|
||||
C1109T03 ulimit -s unlimited 指定し、全メモリの95%をスタックで使用できる
|
||||
ことを確認
|
||||
|
||||
2. スタックサイズをmcexec -s オプションで指定した場合の実行確認
|
||||
C1109T04 mcexec -s 2M,10M 指定し、9.5MBスタックを使用できることを確認
|
||||
C1109T05 mcexec -s 2M,2G 指定し、1.9GBスタックを使用できることを確認
|
||||
C1109T06 mcexec -s 2M,100000G 指定し、全メモリの95%をスタックで使用できる
|
||||
ことを確認
|
||||
|
||||
□ 実行手順
|
||||
$ make test
|
||||
|
||||
実行できない場合は、C1109.shの以下の行を適切に書き換えた後に実行。
|
||||
BIN= mcexec が存在するパス
|
||||
SBIN= mcreboot.sh が存在するパス
|
||||
OSTEST= OSTEST が存在するパス
|
||||
|
||||
□ 実行結果
|
||||
C1109.txt 参照。
|
||||
全ての項目が OK となっていることを確認。
|
||||
Reference in New Issue
Block a user