test: Fix user_space, testing use of copy_from_user / copy_to_user

Change-Id: I2caef1ba6597f693dc4f773ef8fedbd837c45ce6
This commit is contained in:
Masamichi Takagi
2018-11-29 11:32:42 +09:00
parent 68c581f721
commit 56abe988f3
20 changed files with 91 additions and 124 deletions

View File

@ -12,17 +12,17 @@ User spaceテストについて
 mckernel/test/user_space/patch/  mckernel/test/user_space/patch/
以下にテストとパッチの対応を示します。 以下にテストとパッチの対応を示します。
 パッチファイル名 対象システムコール テストID  パッチファイル名 対象システムコール テストID
syscall.patch perf_event_open perf_001-perf_008 syscall.patch perf_event_open perf_001-perf_008
syscall.patch futex futes_001-futex_011 syscall.patch futex futes_001-futex_011
syscall.patch process_vm_readv pvr_001-pvr_033 syscall.patch process_vm_readv pvr_001-pvr_033
syscall.patch process_vm_writev pvw_001-pvw_031 syscall.patch process_vm_writev pvw_001-pvw_031
syscall.patch move_pages mpo_001-mp_012 syscall.patch move_pages mpo_001-mp_012
pager_copy_from.patch swapout so_001-so_006 pager_copy_from.patch swapout so_001-so_006
pager_copy_to_01.patch swapout so_007-so_013 pager_copy_to_01.patch swapout so_007-so_013
pager_copy_to_02.patch swapout so_014-so_022 pager_copy_to_02.patch swapout so_014-so_022
なし swapout so_023-so_025 なし swapout so_023-so_025
qlmpilib.patch swapout so_026 qlmpilib.patch swapout so_026
1.3 パッチの適用 1.3 パッチの適用
mckernelディレクトリで以下コマンドを実行してパッチを当ててください。 mckernelディレクトリで以下コマンドを実行してパッチを当ててください。
@ -68,20 +68,7 @@ User spaceテストについて
3. configファイル 3. configファイル
 configファイルは各テストディレクトリにあります。各ディレクトリのシェルから  configファイルは各テストディレクトリにあります。各ディレクトリのシェルから
 参照されます。  参照されます。
user_space/config
MCMOD_DIR mckernelのディレクトリ
SRC_PATH ソースディレクトリ
TEST_DIR テストプログラムがあるディレクトリ
user_space/perf_event_open/config
user_space/futex/config
user_space/process_vm/config
user_space/move_pages/config
MCPATH mckernelのディレクトリ
LTP_EXE_DIR LTPの実行ファイルがあるディレクトリ
user_space/swapout/config user_space/swapout/config
MCMOD_DIR mckernelのディレクトリ
START ql_mpiexec_startのパスqlmpiテスト用 START ql_mpiexec_startのパスqlmpiテスト用
FINALIZE ql_mpiexec_finalizeのパスqlmpiテスト用 FINALIZE ql_mpiexec_finalizeのパスqlmpiテスト用
USR_PRG_A qlmpiテスト用プログラム /test/qlmpi/qlmpi_testsuite参照 USR_PRG_A qlmpiテスト用プログラム /test/qlmpi/qlmpi_testsuite参照

View File

@ -1,4 +0,0 @@
MCMOD_DIR=/home/iizuka/mckernel
SRC_PATH=/home/iizuka/src/mckernel
TEST_DIR=/home/iizuka/src/mckernel/test/user_space

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel reboot ...." echo -n "mckernel reboot ...."
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." echo "done."
} }
@ -71,7 +71,7 @@ sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/futex_wait01.kmsg
#futex-001 アドレスが正しく引き継いでいることを確認 #futex-001 アドレスが正しく引き継いでいることを確認
#システムコールの引数のアドレスを取得 #システムコールの引数のアドレスを取得
sys_addr=`grep "sys_futex" ./result/futex_wait01.kmsg |head -n 1 |cut -d "," -f 2` sys_addr=`grep "do_futex" ./result/futex_wait01.kmsg |head -n 1 |cut -d "," -f 2`
grep "get_futex_value_locked" ./result/futex_wait01.kmsg | head -n 1 | grep ${sys_addr} >/dev/null grep "get_futex_value_locked" ./result/futex_wait01.kmsg | head -n 1 | grep ${sys_addr} >/dev/null
rc=$? rc=$?
if [ ${rc} -eq 0 ]; then if [ ${rc} -eq 0 ]; then

View File

@ -1 +1 @@
futex_wait_bitset02 1 TPASS : futex_wait_bitset02 1 TFAIL :

View File

@ -1,9 +1,6 @@
#!/bin/sh #!/bin/sh
source ./config TEST_DIR=`pwd -P`
echo $TEST_DIR
echo $MCPATH
echo $LTP_PATH
auto_flg=0 auto_flg=0
if [ $# = 1 ]; then if [ $# = 1 ]; then

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
source ./config TEST_DIR=`pwd -P`
auto_flg=0 auto_flg=0
if [ $# = 1 ]; then if [ $# = 1 ]; then

View File

@ -1,2 +0,0 @@
MCPATH=/home/iizuka/mckernel
LTP_EXE_DIR=/home/iizuka/LTP/move_pages

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel reboot ...." echo -n "mckernel reboot ...."
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." echo "done."
} }
@ -32,7 +32,8 @@ function ng_out() {
function ltp_test() { function ltp_test() {
TEST_NAME=$1 TEST_NAME=$1
#LTP programを実行 logを保存 #LTP programを実行 logを保存
sudo ${MCPATH}/bin/mcexec ${LTP_EXE_DIR}/${TEST_NAME} >./result/${TEST_NAME}.log sudo ${MCK_DIR}/bin/mcexec ${LTP}/testcases/bin/${TEST_NAME} > \
./result/${TEST_NAME}.log
#LTP log 確認 #LTP log 確認
NUM=`cat ./test_cases/${TEST_NAME}.txt |wc -l` NUM=`cat ./test_cases/${TEST_NAME}.txt |wc -l`
@ -56,12 +57,7 @@ TEST_CODE=001
TEST_PREFIX=mp_ TEST_PREFIX=mp_
ME=`whoami` ME=`whoami`
if [ $# -ne 2 ]; then source ${HOME}/.mck_test_config
source ./config
else
MCPATH=$1
LTP_EXE_DIR=$2/move_pages
fi
mkdir -p ./result mkdir -p ./result
@ -70,10 +66,11 @@ ltp_test "move_pages01"
reboot "-m256m@0,256m@1" reboot "-m256m@0,256m@1"
#LTP programを実行 logを保存 #LTP programを実行 logを保存
sudo ${MCPATH}/bin/mcexec ${LTP_EXE_DIR}/move_pages02 >./result/move_pages02.log sudo ${MCK_DIR}/bin/mcexec ${LTP}/testcases/bin/move_pages02 > \
./result/move_pages02.log
#kmsgを保存 #kmsgを保存
sudo ${MCPATH}/sbin/ihkosctl 0 kmsg >./result/move_pages02.kmsg sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/move_pages02.kmsg
#move_pages-002 第3引数のアドレスが正しく引き継いでいることを確認 #move_pages-002 第3引数のアドレスが正しく引き継いでいることを確認
#システムコールの引数のアドレスを取得 #システムコールの引数のアドレスを取得

View File

@ -6,7 +6,7 @@ index 29dbd04..66f77b5 100644
struct vm_range *range; struct vm_range *range;
struct mcs_rwlock_node_irqsave lock; struct mcs_rwlock_node_irqsave lock;
struct mcs_rwlock_node update_lock; struct mcs_rwlock_node update_lock;
+ kprintf("%s: arg2_addr:%x,arg4_addr:%x\n", + kprintf("%s: arg2_addr:%lx,arg4_addr:%lx\n",
+ __FUNCTION__, local_iov, remote_iov); //PATCH + __FUNCTION__, local_iov, remote_iov); //PATCH
/* Sanity checks */ /* Sanity checks */
@ -15,7 +15,7 @@ index 29dbd04..66f77b5 100644
int count = mpsr->count; int count = mpsr->count;
struct page_table *save_pt; struct page_table *save_pt;
extern struct page_table *get_init_page_table(void); extern struct page_table *get_init_page_table(void);
+ kprintf("%s: mpsr->user_virt_addr:%x,mpsr->user_nodes:%x,mpsr->user_status:%x\n", + kprintf("%s: mpsr->user_virt_addr:%lx,mpsr->user_nodes:%lx,mpsr->user_status:%lx\n",
+ __FUNCTION__, mpsr->user_virt_addr, mpsr->user_nodes, mpsr->user_status); //PATCH + __FUNCTION__, mpsr->user_virt_addr, mpsr->user_nodes, mpsr->user_status); //PATCH
i_s = (count / nr_cpus) * cpu_index; i_s = (count / nr_cpus) * cpu_index;
@ -24,12 +24,16 @@ diff --git a/kernel/futex.c b/kernel/futex.c
index 495ee50..a7d08e2 100644 index 495ee50..a7d08e2 100644
--- a/kernel/futex.c --- a/kernel/futex.c
+++ b/kernel/futex.c +++ b/kernel/futex.c
@@ -749,6 +749,8 @@ static int futex_wait_setup(uint32_t __user *uaddr, uint32_t val, int fshared, @@ -749,6 +749,12 @@ static int futex_wait_setup(uint32_t __user *uaddr, uint32_t val, int fshared,
*hb = queue_lock(q); *hb = queue_lock(q);
ret = get_futex_value_locked(&uval, uaddr); ret = get_futex_value_locked(&uval, uaddr);
+ kprintf("get_futex_value_locked: uval:%d,*uaddr:%d,uaddr:%x\n", + {
+ uval, *uaddr, uaddr); //PATCH + uint32_t uval_from_uaddr;
+ copy_from_user(&uval_from_uaddr, uaddr, sizeof(uint32_t));
+ kprintf("get_futex_value_locked: uval:%d,*uaddr:%d,uaddr:%lx\n",
+ uval, uval_from_uaddr, uaddr); //PATCH
+ }
if (ret) { if (ret) {
queue_unlock(q, *hb); queue_unlock(q, *hb);
put_futex_key(fshared, &q->key); put_futex_key(fshared, &q->key);
@ -46,21 +50,25 @@ index e7fed5d..9c174c9 100644
event = kmalloc(sizeof(struct mc_perf_event), IHK_MC_AP_NOWAIT); event = kmalloc(sizeof(struct mc_perf_event), IHK_MC_AP_NOWAIT);
if (!event) { if (!event) {
@@ -5340,6 +5342,9 @@ SYSCALL_DECLARE(futex) @@ -5689,6 +5689,13 @@ long do_futex(int n, unsigned long arg0, unsigned long arg1,
struct ihk_os_cpu_monitor *monitor = cpu_local_var(monitor); monitor->status = IHK_OS_MONITOR_KERNEL_HEAVY;
}
monitor->status = IHK_OS_MONITOR_KERNEL_HEAVY; + {
+ uint32_t uval_from_uaddr;
+ copy_from_user(&uval_from_uaddr, uaddr, sizeof(uint32_t));
+ kprintf("%s:*uaddr:%d,uaddr:%lx\n",
+ __FUNCTION__, uval_from_uaddr, uaddr); //PATCH
+ }
+ +
+ kprintf("%s:*uaddr:%d,uaddr:%x\n",
+ __FUNCTION__, *uaddr, uaddr); //PATCH
/* Cross-address space futex? */ /* Cross-address space futex? */
if (op & FUTEX_PRIVATE_FLAG) { if (op & FUTEX_PRIVATE_FLAG) {
fshared = 0;
@@ -8720,6 +8725,8 @@ SYSCALL_DECLARE(move_pages) @@ -8720,6 +8725,8 @@ SYSCALL_DECLARE(move_pages)
int ret = 0; int ret = 0;
unsigned long t_s, t_e; unsigned long t_s, t_e;
+ kprintf("%s: user_virt_addr:%x,user_nodes:%x,user_status:%x\n", + kprintf("%s: user_virt_addr:%lx,user_nodes:%lx,user_status:%lx\n",
+ __FUNCTION__, user_virt_addr, user_nodes, user_status); //PATCH + __FUNCTION__, user_virt_addr, user_nodes, user_status); //PATCH
t_s = rdtsc(); t_s = rdtsc();
@ -69,7 +77,7 @@ index e7fed5d..9c174c9 100644
(const struct iovec *)ihk_mc_syscall_arg3(ctx); (const struct iovec *)ihk_mc_syscall_arg3(ctx);
unsigned long riovcnt = ihk_mc_syscall_arg4(ctx); unsigned long riovcnt = ihk_mc_syscall_arg4(ctx);
unsigned long flags = ihk_mc_syscall_arg5(ctx); unsigned long flags = ihk_mc_syscall_arg5(ctx);
+ kprintf("%s: arg2_addr:%x,arg4_addr:%x\n", + kprintf("%s: arg2_addr:%lx,arg4_addr:%lx\n",
+ __FUNCTION__, local_iov, remote_iov); //PATCH + __FUNCTION__, local_iov, remote_iov); //PATCH
return do_process_vm_read_writev(pid, local_iov, liovcnt, return do_process_vm_read_writev(pid, local_iov, liovcnt,
@ -78,7 +86,7 @@ index e7fed5d..9c174c9 100644
(const struct iovec *)ihk_mc_syscall_arg3(ctx); (const struct iovec *)ihk_mc_syscall_arg3(ctx);
unsigned long riovcnt = ihk_mc_syscall_arg4(ctx); unsigned long riovcnt = ihk_mc_syscall_arg4(ctx);
unsigned long flags = ihk_mc_syscall_arg5(ctx); unsigned long flags = ihk_mc_syscall_arg5(ctx);
+ kprintf("%s: arg2_addr:%x,arg4_addr:%x\n", + kprintf("%s: arg2_addr:%lx,arg4_addr:%lx\n",
+ __FUNCTION__, local_iov, remote_iov); //PATCH + __FUNCTION__, local_iov, remote_iov); //PATCH
return do_process_vm_read_writev(pid, local_iov, liovcnt, return do_process_vm_read_writev(pid, local_iov, liovcnt,

View File

@ -12,10 +12,12 @@ else
fi fi
cd $MC_HOME cd $MC_HOME
make clean make clean
./configure --prefix=${MCMOD_DIR} --with-target=smp-x86 --with-mpi=/usr/lib64/mpich-3.2 --enable-qlmpi $* >/tmp/install.log ./configure --prefix=${MCK_DIR} --with-target=smp-x86 \
--with-mpi=/usr/lib64/mpich-3.2 --enable-qlmpi $* > \
/tmp/install.log
make >> /tmp/install.log make >> /tmp/install.log
make install >> /tmp/install.log make install >> /tmp/install.log
# for wallaby # for wallaby
chmod 777 ${MCMOD_DIR}/etc chmod 777 ${MCK_DIR}/etc

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel reboot ...." echo -n "mckernel reboot ...."
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." echo "done."
} }

View File

@ -1,2 +0,0 @@
MCPATH=/home/iizuka/mckernel
LTP_EXE_DIR=/home/iizuka/LTP/process_vm

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel reboot ...." echo -n "mckernel reboot ...."
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." echo "done."
} }
@ -37,7 +37,8 @@ function ltp_test() {
TP_NAME=$2 TP_NAME=$2
fi fi
#LTP programを実行 logを保存 #LTP programを実行 logを保存
sudo ${MCPATH}/bin/mcexec ${LTP_EXE_DIR}/${TP_NAME} >./result/${TEST_NAME}.log sudo ${MCK_DIR}/bin/mcexec ${LTP}/testcases/bin/${TP_NAME} > \
./result/${TEST_NAME}.log
#LTP log 確認 #LTP log 確認
NUM=`cat ./test_cases/${TEST_NAME}.txt |wc -l` NUM=`cat ./test_cases/${TEST_NAME}.txt |wc -l`
@ -61,20 +62,16 @@ TEST_CODE=001
TEST_PREFIX=pvr_ TEST_PREFIX=pvr_
ME=`whoami` ME=`whoami`
if [ $# -ne 2 ]; then source ${HOME}/.mck_test_config
source ./config
else
MCPATH=$1
LTP_EXE_DIR=$2/process_vm
fi
mkdir -p ./result mkdir -p ./result
#LTP programを実行 logを保存 #LTP programを実行 logを保存
sudo ${MCPATH}/bin/mcexec ${LTP_EXE_DIR}/process_vm01 -r >./result/process_vm_readv01.log sudo ${MCK_DIR}/bin/mcexec ${LTP}/testcases/bin/process_vm01 -r > \
./result/process_vm_readv01.log
#kmsgを保存 #kmsgを保存
sudo ${MCPATH}/sbin/ihkosctl 0 kmsg >./result/process_vm_readv01.kmsg sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/process_vm_readv01.kmsg
#process_vm_readv-001 第2引数のアドレスが正しく引き継いでいることを確認 #process_vm_readv-001 第2引数のアドレスが正しく引き継いでいることを確認
#システムコールの引数のアドレスを取得 #システムコールの引数のアドレスを取得

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel reboot ...." echo -n "mckernel reboot ...."
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." echo "done."
} }
@ -37,7 +37,8 @@ function ltp_test() {
TP_NAME=$2 TP_NAME=$2
fi fi
#LTP programを実行 logを保存 #LTP programを実行 logを保存
sudo ${MCPATH}/bin/mcexec ${LTP_EXE_DIR}/${TP_NAME} >./result/${TEST_NAME}.log sudo ${MCK_DIR}/bin/mcexec ${LTP}/testcases/bin/${TP_NAME} > \
./result/${TEST_NAME}.log
#LTP log 確認 #LTP log 確認
NUM=`cat ./test_cases/${TEST_NAME}.txt |wc -l` NUM=`cat ./test_cases/${TEST_NAME}.txt |wc -l`
@ -61,21 +62,17 @@ TEST_CODE=001
TEST_PREFIX=pvw_ TEST_PREFIX=pvw_
ME=`whoami` ME=`whoami`
if [ $# -ne 2 ]; then source ${HOME}/.mck_test_config
source ./config
else
MCPATH=$1
LTP_EXE_DIR=$2/process_vm
fi
mkdir -p ./result mkdir -p ./result
reboot reboot
#LTP programを実行 logを保存 #LTP programを実行 logを保存
sudo ${MCPATH}/bin/mcexec ${LTP_EXE_DIR}/process_vm01 -w >./result/process_vm_writev01.log sudo ${MCK_DIR}/bin/mcexec ${LTP}/testcases/bin/process_vm01 -w > \
./result/process_vm_writev01.log
#kmsgを保存 #kmsgを保存
sudo ${MCPATH}/sbin/ihkosctl 0 kmsg >./result/process_vm_writev01.kmsg sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/process_vm_writev01.kmsg
#process_vm_writev-001 第2引数のアドレスが正しく引き継いでいることを確認 #process_vm_writev-001 第2引数のアドレスが正しく引き継いでいることを確認
#システムコールの引数のアドレスを取得 #システムコールの引数のアドレスを取得

View File

@ -1,7 +1,7 @@
MCMOD_DIR=/home/iizuka/mckernel source ${HOME}/.mck_test_config
START=${MCMOD_DIR}/bin/ql_mpiexec_start START=${MCK_DIR}/bin/ql_mpiexec_start
FINALIZE=${MCMOD_DIR}/bin/ql_mpiexec_finalize FINALIZE=${MCK_DIR}/bin/ql_mpiexec_finalize
USR_PRG_A=../../qlmpi/qlmpi_testsuite/usr_prg_A USR_PRG_A=../../qlmpi/qlmpi_testsuite/usr_prg_A
USR_PRG_B=../../qlmpi/qlmpi_testsuite/usr_prg_B USR_PRG_B=../../qlmpi/qlmpi_testsuite/usr_prg_B

View File

@ -27,11 +27,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel booting... " 1>&2 echo -n "mckernel booting... " 1>&2
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." 1>&2 echo "done." 1>&2
} }
TEST_PARAM_FILE=$1 TEST_PARAM_FILE=$1

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel booting... " 1>&2 echo -n "mckernel booting... " 1>&2
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." 1>&2 echo "done." 1>&2
} }
@ -39,16 +39,14 @@ ME=`whoami`
# read config # read config
source ./config source ./config
MCPATH=${MCMOD_DIR}
mkdir -p ./result mkdir -p ./result
reboot reboot
#programを実行 logを保存 #programを実行 logを保存
${MCPATH}/bin/mcexec ./swaptest 2 >./result/swapout_copy_from.log ${MCK_DIR}/bin/mcexec ./swaptest 2 >./result/swapout_copy_from.log
#kmsgを保存 #kmsgを保存
sudo ${MCPATH}/sbin/ihkosctl 0 kmsg >./result/swapout_copy_from.kmsg sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/swapout_copy_from.kmsg
#swapout001 arealist_update i and count check. #swapout001 arealist_update i and count check.
#arealist_update i #arealist_update i

View File

@ -1,7 +1,5 @@
#!/bin/sh #!/bin/sh
. ${HOME}/.mck_test_config
# Functions # Functions
function reboot() { function reboot() {
count=`pgrep -c -f 'mcexec '` count=`pgrep -c -f 'mcexec '`
@ -12,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel booting... " 1>&2 echo -n "mckernel booting... " 1>&2
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." 1>&2 echo "done." 1>&2
} }
@ -41,16 +39,14 @@ ME=`whoami`
# read config # read config
source ./config source ./config
MCPATH=${MCMOD_DIR}
mkdir -p result mkdir -p result
reboot reboot
#programを実行 logを保存 #programを実行 logを保存
${MCPATH}/bin/mcexec ./swaptest 2 >./result/swapout_copy_to_01.log ${MCK_DIR}/bin/mcexec ./swaptest 2 >./result/swapout_copy_to_01.log
#kmsgを保存 #kmsgを保存
sudo ${MCPATH}/sbin/ihkosctl 0 kmsg >./result/swapout_copy_to_01.kmsg sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/swapout_copy_to_01.kmsg
#swapout007 arealist_update i and count check. #swapout007 arealist_update i and count check.
arealist_i=`grep "arealist_update" ./result/swapout_copy_to_01.kmsg | head -n 1 | sed s/"^.*copy_to_user i:\([0-9a-f]*\),.*$"/"\1"/ ` arealist_i=`grep "arealist_update" ./result/swapout_copy_to_01.kmsg | head -n 1 | sed s/"^.*copy_to_user i:\([0-9a-f]*\),.*$"/"\1"/ `

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel booting... " 1>&2 echo -n "mckernel booting... " 1>&2
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." 1>&2 echo "done." 1>&2
} }
@ -39,16 +39,14 @@ ME=`whoami`
# read config # read config
source ./config source ./config
MCPATH=${MCMOD_DIR}
mkdir -p ./result mkdir -p ./result
reboot reboot
#programを実行 logを保存 #programを実行 logを保存
${MCPATH}/bin/mcexec ./swaptest 2 >./result/swapout_copy_to_02.log ${MCK_DIR}/bin/mcexec ./swaptest 2 >./result/swapout_copy_to_02.log
#kmsgを保存 #kmsgを保存
sudo ${MCPATH}/sbin/ihkosctl 0 kmsg >./result/swapout_copy_to_02.kmsg sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/swapout_copy_to_02.kmsg
#swapout014 arealist_preparewrite info[].start #swapout014 arealist_preparewrite info[].start
start=`grep "arealist_preparewrite:.* info\[[0-9]\].start:" ./result/swapout_copy_to_02.kmsg | head -n 1 | sed s/"^.*copy_to_user info\[[0-9]\].start:\([0-9|a-f]*\),end:.*$"/"\1"/ ` start=`grep "arealist_preparewrite:.* info\[[0-9]\].start:" ./result/swapout_copy_to_02.kmsg | head -n 1 | sed s/"^.*copy_to_user info\[[0-9]\].start:\([0-9|a-f]*\),end:.*$"/"\1"/ `

View File

@ -10,11 +10,11 @@ function reboot() {
pgrep -f 'mcexec ' | xargs sudo kill -9 pgrep -f 'mcexec ' | xargs sudo kill -9
fi fi
# echo -n "mckernel stopping... " # echo -n "mckernel stopping... "
sudo ${MCMOD_DIR}/sbin/mcstop+release.sh sudo ${MCK_DIR}/sbin/mcstop+release.sh
# echo "done." # echo "done."
#sleep 1 #sleep 1
echo -n "mckernel booting... " 1>&2 echo -n "mckernel booting... " 1>&2
sudo ${MCMOD_DIR}/sbin/mcreboot.sh $* sudo ${MCK_DIR}/sbin/mcreboot.sh $*
echo "done." 1>&2 echo "done." 1>&2
} }
@ -39,16 +39,14 @@ ME=`whoami`
# read config # read config
source ./config source ./config
MCPATH=${MCMOD_DIR}
mkdir -p result mkdir -p result
reboot reboot
#programを実行 logを保存 #programを実行 logを保存
${MCPATH}/bin/mcexec ./swaptest 2 >./result/swapout_normal.log ${MCK_DIR}/bin/mcexec ./swaptest 2 >./result/swapout_normal.log
#kmsgを保存 #kmsgを保存
sudo ${MCPATH}/sbin/ihkosctl 0 kmsg >./result/swapout_normal.kmsg sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >./result/swapout_normal.kmsg
#swapout023 execute swaptest(return code) #swapout023 execute swaptest(return code)
grep "^swapout returns: 0$" ./result/swapout_normal.log grep "^swapout returns: 0$" ./result/swapout_normal.log