Test "fix: Bug for getrusage" on arm64

The following test set:
  fix: Bug for getrusage return incorrect ru_maxrss
  fix: Bug for getrusage(RUSAGE_CHILDREN) return parent info (POSTK_DEBUG_TEMP_FIX_72)
  fix: Bug for getrusage often return incorrect ru_stime

Change-Id: I6734b1e34565d5d2715f9901a04ba5b6f0278032
Refs: #1032
Refs: #1033
Refs: #1034
This commit is contained in:
Shiratori, Takehiro
2018-12-04 17:16:51 +09:00
committed by Masamichi Takagi
parent a11d4d7a9d
commit ec844bb6e3
37 changed files with 1746 additions and 0 deletions

View File

@ -0,0 +1,262 @@
①Issueで報告されたテストプログラムによる確認
$ mcexec ./test_mck -s getrusage -n 0
TEST_SUITE: getrusage
TEST_NUMBER: 0
ARGS:
------------------------------
show_rusage():
ru_utime=0s + 565us
ru_stime=0s + 14923us
ru_maxrss=6088
------------------------------
allocation memory 16777216 byte(16384 KiB)
alarm 2 seconds wait.
sleep 2 seconds wait.
------------------------------
show_rusage():
ru_utime=1s + 998545us
ru_stime=2s + 17802us
ru_maxrss=22492
------------------------------
free memory 16777216 byte(16384 KiB)
------------------------------
show_rusage():
ru_utime=1s + 998554us
ru_stime=2s + 17932us
ru_maxrss=22492
------------------------------
RESULT: you need check rusage value
$ mcexec ./test_mck -s getrusage -n 1
TEST_SUITE: getrusage
TEST_NUMBER: 1
ARGS:
------------------------------
show_rusage():
ru_utime=0s + 0us
ru_stime=0s + 0us
ru_maxrss=0
------------------------------
allocation memory 16777216 byte(16384 KiB)
alarm 2 seconds wait.
sleep 2 seconds wait.
free memory 16777216 byte(16384 KiB)
------------------------------
show_rusage():
ru_utime=1s + 998065us
ru_stime=2s + 2942us
ru_maxrss=21828
------------------------------
RESULT: you need check rusage value
$ mcexec ./test_mck -s getrusage -n 2
TEST_SUITE: getrusage
TEST_NUMBER: 2
ARGS:
[parent before]
------------------------------
show_rusage():
ru_utime=0s + 563us
ru_stime=0s + 10281us
ru_maxrss=6096
------------------------------
[child before]
------------------------------
show_rusage():
ru_utime=0s + 7us
ru_stime=0s + 30us
ru_maxrss=14304
------------------------------
allocation memory 16777216 byte(16384 KiB)
alarm 2 seconds wait.
sleep 2 seconds wait.
free memory 16777216 byte(16384 KiB)
[child after]
------------------------------
show_rusage():
ru_utime=1s + 997905us
ru_stime=2s + 3090us
ru_maxrss=30708
------------------------------
[parent after]
------------------------------
show_rusage():
ru_utime=0s + 580us
ru_stime=4s + 12829us
ru_maxrss=30712
------------------------------
RESULT: you need check rusage value
②McKernelでのgetrusage()の基本動作確認
/home/satoken/ppos/bin/mcexec ./CT_001
---- just started ----
[ RUSAGE_SELF ]
[OK] utime: 0.000529 s (+ 0.000529 s)
[OK] stime: 0.024795 s (+ 0.024795 s)
---- add utime 2sec ----
[ RUSAGE_SELF ]
[OK] utime: 1.997453 s (+ 1.996924 s)
[OK] stime: 0.024974 s (+ 0.000179 s)
---- add stime 1sec ----
[ RUSAGE_SELF ]
[OK] utime: 1.997461 s (+ 0.000008 s)
[OK] stime: 1.023560 s (+ 0.998586 s)
*** CT_001 PASS
/home/satoken/ppos/bin/mcexec ./CT_002
---- just started ----
[ RUSAGE_SELF ]
[OK] maxrss: 6012 KB (+ 6012 KB)
---- mmap and access 12MB (12288 KB) ----
[ RUSAGE_SELF ]
[OK] maxrss: 18352 KB (+ 12340 KB)
---- munmap 12MB (12288 KB) ----
[ RUSAGE_SELF ]
[OK] maxrss: 18352 KB (+ 0 KB)
---- mmap and access 16MB (16384 KB) ----
[ RUSAGE_SELF ]
[OK] maxrss: 22448 KB (+ 4096 KB)
*** CT_002 PASS
/home/satoken/ppos/bin/mcexec ./CT_003
---- just started ----
[ RUSAGE_SELF ]
[OK] utime: 0.000531 s (+ 0.000531 s)
[OK] stime: 0.009804 s (+ 0.009804 s)
---- create thread and join ----
---- add utime 2sec in sub thread ----
---- add stime 1sec in sub thread ----
---- sub thread exit ----
[ RUSAGE_SELF ]
[OK] utime: 1.997496 s (+ 1.996965 s) <- サブスレッド増分2秒
[OK] stime: 4.005407 s (+ 3.995603 s) <- サブスレッド増分1秒 + メインスレッドjoin待ち3秒
*** CT_003 PASS
/home/satoken/ppos/bin/mcexec ./CT_004
---- just started ----
[ RUSAGE_SELF ]
[OK] maxrss: 6008 KB (+ 6008 KB)
---- create thread and join ----
---- mmap and access 16MB (16384 KB) in sub thread ----
---- munmap 16MB (16384 KB) in sub thread ----
---- sub thread exit ----
[ RUSAGE_SELF ]
[OK] maxrss: 30652 KB (+ 24644 KB)
*** CT_004 PASS
/home/satoken/ppos/bin/mcexec ./CT_005
---- just started ----
[ RUSAGE_SELF ]
[OK] utime: 0.000523 s (+ 0.000523 s)
[OK] stime: 0.009879 s (+ 0.009879 s)
[OK] maxrss: 6012 KB (+ 6012 KB)
---- fork child process ----
---- add utime 3sec in parent ----
---- add utime 1sec in child ----
---- add stime 1sec in child ----
---- mmap and access 16MB (16384 KB) in child ----
---- munmap 16MB (16384 KB) in child ----
---- child process exit ----
---- wait child's exit ----
[ RUSAGE_SELF ]
[OK] utime: 2.995900 s (+ 2.995377 s)
[OK] stime: 0.015519 s (+ 0.005640 s)
[OK] maxrss: 6084 KB (+ 72 KB)
*** CT_005 PASS
/home/satoken/ppos/bin/mcexec ./CT_006
---- just started ----
[ RUSAGE_CHILDREN ]
[OK] utime: 0.000000 s (+ 0.000000 s)
[OK] stime: 0.000000 s (+ 0.000000 s)
---- fork child process ----
---- add utime 1sec in parent ----
---- add utime 2sec in child ----
[ RUSAGE_CHILDREN ]
[OK] utime: 0.000000 s (+ 0.000000 s) <- 子プロセスが未終了のため、0
[OK] stime: 0.000000 s (+ 0.000000 s) <- 子プロセスが未終了のため、0
---- wait child's exit ----
---- add stime 1sec in child ----
---- child process exit ----
[ RUSAGE_CHILDREN ]
[OK] utime: 1.996949 s (+ 1.996949 s)
[OK] stime: 0.998664 s (+ 0.998664 s)
*** CT_006 PASS
/home/satoken/ppos/bin/mcexec ./CT_007
---- just started ----
[ RUSAGE_CHILDREN ]
[OK] maxrss: 0 KB (+ 0 KB)
---- fork child process ----
---- mmap and access 32MB (32768 KB) in parent ----
---- add utime 1sec in child ----
---- munmap 32MB (32768 KB) in parent ----
---- wait child's exit ----
---- mmap and access 16MB (16384 KB) in child ----
---- munmap 16MB (16384 KB) in child ----
---- child process exit ----
[ RUSAGE_CHILDREN ]
[OK] maxrss: 21516 KB (+ 21516 KB) <- 子プロセス終了後に更新 (プロセス生成時の56M + mmapでの16M)
*** CT_007 PASS
/home/satoken/ppos/bin/mcexec ./CT_008
---- just started ----
[ RUSAGE_CHILDREN ]
[OK] utime: 0.000000 s (+ 0.000000 s)
[OK] stime: 0.000000 s (+ 0.000000 s)
[OK] maxrss: 0 KB (+ 0 KB)
---- fork child process ----
---- wait child's exit ----
---- fork grand_child process ----
---- add utime 2sec in child ----
---- add utime 1sec in grand_child ----
---- add stime 1sec in grand_child ----
---- add stime 1sec in child ----
---- mmap and access 32MB (32768 KB) in grand_child ----
---- munmap 32MB (32768 KB) in grand_child ----
---- grand_child process exit ----
---- mmap and access 8MB (8192 KB) in child ----
---- munmap 8MB (8192 KB) in child ----
---- wait grand_child's exit ----
---- child process exit ----
[ RUSAGE_CHILDREN ]
[OK] utime: 2.999773 s (+ 2.999773 s) <- 子プロセス2秒、孫プロセス1秒の和
[OK] stime: 2.009370 s (+ 2.009370 s) <- 子プロセス1秒、孫プロセス1秒の和
[OK] maxrss: 37896 KB (+ 37896 KB) <- 子、孫のmaxrssの最大値
*** CT_008 PASS
/home/satoken/ppos/bin/mcexec ./CT_009
---- just started ----
[OK] utime: 0.000533 s (+ 0.000533 s)
[OK] stime: 0.009959 s (+ 0.009959 s)
---- add utime 1sec in main thread ----
---- create thread and join ----
[ RUSAGE_THREAD ]
[OK] utime: 0.000005 s (+ 0.000005 s)
[OK] stime: 0.000013 s (+ 0.000013 s)
---- add utime 2sec in sub thread ----
---- add stime 1sec in sub thread ----
[ RUSAGE_THREAD ]
[OK] utime: 1.996928 s (+ 1.996928 s)
[OK] stime: 0.998632 s (+ 0.998632 s)
---- sub thread exit ----
[ RUSAGE_THREAD ]
[OK] utime: 0.999024 s (+ 0.998491 s)
[OK] stime: 3.006973 s (+ 2.997014 s) <- join待ち3秒
*** CT_009 PASS
/home/satoken/ppos/bin/mcexec ./CT_010
---- just started ----
[ RUSAGE_THREAD ]
[OK] maxrss: 6008 KB (+ 6008 KB)
---- mmap and access 8MB (8192 KB) in main thread ----
---- munmap 8MB (8192 KB) in main thread ----
---- create and join thread ----
[ RUSAGE_THREAD ]
[OK] maxrss: 14264 KB
---- mmap and access 16MB (16384 KB) in sub thread ----
---- munmap 16MB (16384 KB) in sub thread ----
---- sub thread exit ----
[ RUSAGE_THREAD ]
[OK] maxrss: 30652 KB (+ 24644 KB)
*** CT_010 PASS