diff --git a/test/user_space/arm64/README b/test/user_space/arm64/README index 81c029de..ac887dca 100644 --- a/test/user_space/arm64/README +++ b/test/user_space/arm64/README @@ -1,6 +1,7 @@ -/* README COPYRIGHT FUJITSU LIMITED 2018 */ +/* README COPYRIGHT FUJITSU LIMITED 2018-2019 */ ユーザ空間アクセスコードのアーキテクチャ依存非依存分離 +プロセススワップ機能 arm64版テスト結果README (1) NG項目の補足情報 @@ -16,14 +17,20 @@ arm64版テスト結果README 1. move_pagesは一部しか実装されていないため、Arm移植の対象ではない。 そのため、テストを実施しない。 - 2. ./go_swapout_test.shを利用したテストケースについては、 - プロセススワップ機能のテストセットであると考えているため、 - arm64版では移植を行っていない機能となる。 - そのため、テストを実施しない。 +(3) テスト実行方法 + test/user_space/READMEを参照のこと -(3) IA版における対応版数 - 実行に利用したIHK/McKernelは、IA版における下記の版数相当の - arm64版移植IHK/McKernelである。 + swaptest実施の際にはpatch/swaptest_bufsize_malloccount.patchのパッチを + 適用したものを利用する + +(4) テスト項目詳細 + test/user_space/READMEを参照のこと + +(5) 実行結果ログ + result.logファイル内に + ユーザ空間アクセスコードのアーキテクチャ依存非依存分離 + のテスト実行時のログを記載する。 + 実行に利用したIHK/McKernelは、IA版における下記の版数相当のものである。 IHK commit d6fcbee8cb91f9ec4b49f97c918e696ac0335aaf @@ -36,4 +43,29 @@ arm64版テスト結果README Date: Tue Sep 25 10:05:41 2018 +0900 + ql_normal.log, swapout_copy_from.log, swapout_copy_to_01.log + swapout_copy_to_02.log, swapout_normal.logのログファイル内には + プロセススワップ機能のテスト実行時のログを記載する。 + 実行に利用したIHK/McKernelは、下記の版数のものである。 + + IHK + https://github.com/RIKEN-SysSoft/ihk.git + tag: fj_test_201902 + + commit f4c2dbbb0f1ba87b2b6b33a1e683c313bd2006fa + Author: Dominique Martinet + Date: Thu Feb 7 14:02:00 2019 +0900 + + McKernel + https://github.com/RIKEN-SysSoft/mckernel.git + tag: fj_test_201902 + + commit 21cf953a03d54e6ca01a39f52637d79134ad4e0e + Author: Dominique Martinet + Date: Wed Feb 6 16:55:14 2019 +0900 + + 上記に加えて、以下の修正を取り込む + patch/qlmpilib_bufsize.patch + + 以上。 diff --git a/test/user_space/arm64/patch/qlmpilib_bufsize.patch b/test/user_space/arm64/patch/qlmpilib_bufsize.patch new file mode 100644 index 00000000..12925f97 --- /dev/null +++ b/test/user_space/arm64/patch/qlmpilib_bufsize.patch @@ -0,0 +1,14 @@ +## qlmpilib_bufsize.patch COPYRIGHT FUJITSU LIMITED 2019 ## +diff --git a/executer/user/qlmpilib.c b/executer/user/qlmpilib.c +index 7fcbcb56..78c1f846 100644 +--- a/executer/user/qlmpilib.c ++++ b/executer/user/qlmpilib.c +@@ -15,7 +15,7 @@ + #include "../include/pmi.h" + + +-#define BUF_SIZE (32*1024) ++#define BUF_SIZE (128*1024) + #define NALLOC 10 + #define QL_SUCCESS 0 + #define QL_NORMAL 2 diff --git a/test/user_space/arm64/patch/swaptest_bufsize_malloccount.patch b/test/user_space/arm64/patch/swaptest_bufsize_malloccount.patch new file mode 100644 index 00000000..67f45a66 --- /dev/null +++ b/test/user_space/arm64/patch/swaptest_bufsize_malloccount.patch @@ -0,0 +1,33 @@ +## swaptest_bufsize_malloccount.patch COPYRIGHT FUJITSU LIMITED 2019 ## +diff --git a/test/user_space/swapout/swaptest.c b/test/user_space/swapout/swaptest.c +index 3c48446f..5638b6da 100644 +--- a/test/user_space/swapout/swaptest.c ++++ b/test/user_space/swapout/swaptest.c +@@ -4,14 +4,14 @@ + #include + #include + #include +-#define BUF_SIZE (32*1024) ++#define BUF_SIZE (128*1024) + + int data[1024*1024]; + char sym2[1024*1024] = { 10, 20, 30, 0 }; + char sym3[1024*1024] = { 10, 20, 30, 0 }; + char *sym1 = "aaaaaa"; + char buffer[BUF_SIZE]; +-char *ptr1, *ptr2; ++char *ptr1, *ptr2, *ptr3, *ptr4, *ptr5, *ptr6; + char fnamebuf[1024]; + + int +@@ -54,6 +55,10 @@ main(int argc, char **argv) + printf("&cc = %p\n", &cc); + ptr1 = malloc(1024); + ptr2 = malloc(1024*1024); ++ ptr3 = malloc(1024*1024); ++ ptr4 = malloc(1024*1024); ++ ptr5 = malloc(1024*1024); ++ ptr6 = malloc(1024*1024); + printf("ptr1 = %p\n", ptr1); + printf("ptr2 = %p\n", ptr2); + sprintf((char*) data, "hello\n"); diff --git a/test/user_space/arm64/ql_normal.log b/test/user_space/arm64/ql_normal.log new file mode 100644 index 00000000..415993c7 --- /dev/null +++ b/test/user_space/arm64/ql_normal.log @@ -0,0 +1,42 @@ +mckernel booting... done. +[OK] CT01001 ql_server and usr_prgs are not running on each node +make: Entering directory '/root/mckernel/test/qlmpi/qlmpi_testsuite' +make: 'usr_prg_A' is up to date. +make: Leaving directory '/root/mckernel/test/qlmpi/qlmpi_testsuite' +[OK] CT01002 ql_mpiexec_start usr_prg_A (first exec) returns 0 +[OK] CT01003 ql_server is running on master node +[OK] CT01004 usr_prg_A's args are correct on each node +[OK] CT01005 usr_prg_A's env (QL_TEST) is correct on each node +[OK] CT01006 usr_prg_A's calculation is done on each node + 1 programs is waiting on cnode005 +[OK] CT01007 usr_prg_A is waiting for resume-req on each node +make: Entering directory '/root/mckernel/test/qlmpi/qlmpi_testsuite' +make: 'usr_prg_B' is up to date. +make: Leaving directory '/root/mckernel/test/qlmpi/qlmpi_testsuite' +[OK] CT01008 ql_mpiexec_start usr_prg_B (first exec) returns 0 +[OK] CT01009 usr_prg_B's calculation is done on each node + 1 programs is waiting on cnode005 +[OK] CT01010 usr_prg_B is waiting for resume-req on each node +make: Entering directory '/root/mckernel/test/qlmpi/qlmpi_testsuite' +make: 'usr_prg_C' is up to date. +make: Leaving directory '/root/mckernel/test/qlmpi/qlmpi_testsuite' +[OK] CT01011 ql_mpiexec_start usr_prg_C (first exec) returns 0 +[OK] CT01012 usr_prg_C's calculation is done on each node + 1 programs is waiting on cnode005 +[OK] CT01013 usr_prg_C is waiting for resume-req on each node +[OK] CT01014 (again) ql_mpiexec_start usr_prg_A returns 0 +[OK] CT01015 (again) usr_prg_A's args are correct on each node +[OK] CT01016 (again) usr_prg_A's env (QL_TEST) is correct on each node +[OK] CT01017 (again) usr_prg_A's calculation is done on each node + 1 programs is waiting on cnode005 +[OK] CT01018 (again) usr_prg_A is waiting for resume-req on each node +[OK] CT01019 (again) ql_mpiexec_start usr_prg_B returns 0 +[OK] CT01020 (again) usr_prg_B's calculation is done on each node + 1 programs is waiting on cnode005 +[OK] CT01021 (again) usr_prg_B is waiting for resume-req on each node +[OK] CT01022 ql_mpiexec_finalize usr_prg_A return 0 +[OK] CT01023 ql_mpiexec_finalize usr_prg_B return 0 +[OK] CT01024 ql_server is still running on master node +[OK] CT01025 ql_mpiexec_finalize usr_prg_C return 0 +[OK] CT01026 ql_server is not running on master node +[OK] so_026 qlmpi test diff --git a/test/user_space/arm64/swapout_copy_from.log b/test/user_space/arm64/swapout_copy_from.log new file mode 100644 index 00000000..16ba99b4 --- /dev/null +++ b/test/user_space/arm64/swapout_copy_from.log @@ -0,0 +1,8 @@ +mckernel booting... done. +make: Nothing to be done for 'all'. +[OK] so_001 arealist_update:variable i matched rea->tail->count :(0) +[OK] so_002 mlocklist_morereq:variable ent.count matched ent->count :(0) +[OK] so_003 arealist_preprarewrite:variable ent.count matched ent->count :(7) +[OK] so_004 do_pageout loop1:variable swap_info[].start matched sw_info.start :(420000) +[OK] so_005 do_pageout loop2:variable swap_info[].start matched sw_info.start :(420000) +[OK] so_006 do_pageout loop3:variable swap_info[].start matched sw_info.start :(420000) diff --git a/test/user_space/arm64/swapout_copy_to_01.log b/test/user_space/arm64/swapout_copy_to_01.log new file mode 100644 index 00000000..6f7b1acc --- /dev/null +++ b/test/user_space/arm64/swapout_copy_to_01.log @@ -0,0 +1,10 @@ +mckernel booting... done. +make: Nothing to be done for 'all'. +[OK] so_007 arealist_update:variable i matched rea->tail->count :(0) +[OK] so_008 arealist_add:addr->start matched waddr.start :(420000) +[OK] so_009 do_pageout:variable si->udata_buf matched si->swapfname :(/tmp/pages) +[OK] so_010 do_pageout:si->swphdr->magic is McKernel swap :(McKernel swap) +[OK] so_011 do_pageout:si->swphdr->version is 1.6.0 :(1.6.0) +9 +[OK] so_012 do_pageout:variable count_sarea matched swap_area.count :(9) +[OK] so_013 do_pageout:variable count_marea matched mlock_area.count :(2) diff --git a/test/user_space/arm64/swapout_copy_to_02.log b/test/user_space/arm64/swapout_copy_to_02.log new file mode 100644 index 00000000..a8161537 --- /dev/null +++ b/test/user_space/arm64/swapout_copy_to_02.log @@ -0,0 +1,12 @@ +mckernel booting... done. +make: Nothing to be done for 'all'. +[OK] so_014 arealist_preparewrite:info[].start matched went.pair[].start :(420000) +[OK] so_015 arealist_preparewrite:info[].end matched went.pair[].end :(620000) +[OK] so_016 arealist_preparewrite:info[].flag matched went.pair[].flag :(331004) +[OK] so_017 arealist_preparewrite:info[].pos matched went.pair[].pos :(188) +[OK] so_018 pager_open:swapfname matched si-udate_buf :(/tmp/pages) +[OK] so_019 pager_unlink:swapfname matched si-udate_buf :(/tmp/pages) +0 +[OK] so_020 arealist_get:arealist is inistialized. :(0) +[OK] so_021 arealist_get: area->tail->next is matched :(630620) +[OK] so_022 arealist_alloc:arealist is inistialized. :(0) diff --git a/test/user_space/arm64/swapout_normal.log b/test/user_space/arm64/swapout_normal.log new file mode 100644 index 00000000..82e6fd60 --- /dev/null +++ b/test/user_space/arm64/swapout_normal.log @@ -0,0 +1,16 @@ +mckernel booting... done. +make: Nothing to be done for 'all'. +swapout returns: 0 +[OK] so_023 swaptest program is nomrmal exit. +data = hello +[OK] so_024 confirmed restoration of data. +0000000000420000:0000000000620000 is matched. +0000000000650000:0000000000a50000 is matched. +0000080000030000:0000080000040000 is matched. +0000100000450000:0000100000480000 is matched. +0000100000530000:0000100000640000 is matched. +0000100000640000:0000100000750000 is matched. +0000100000750000:0000100000860000 is matched. +0000100000860000:0000100000970000 is matched. +0000100000970000:0000100000a80000 is matched. +[OK] so_025 pageout areas and pagein areas are matched.