①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.000528 s (+ 0.000528 s) [OK] stime: 0.010448 s (+ 0.010448 s) ---- add utime 2sec ---- [ RUSAGE_SELF ] [OK] utime: 1.997452 s (+ 1.996924 s) [OK] stime: 0.010633 s (+ 0.000185 s) ---- add stime 1sec ---- [ RUSAGE_SELF ] [OK] utime: 1.997459 s (+ 0.000007 s) [OK] stime: 1.009232 s (+ 0.998599 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.000530 s (+ 0.000530 s) [OK] stime: 0.010266 s (+ 0.010266 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.997492 s (+ 1.996962 s) <- サブスレッド増分2秒 [OK] stime: 4.005857 s (+ 3.995591 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.000522 s (+ 0.000522 s) [OK] stime: 0.010163 s (+ 0.010163 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.995901 s (+ 2.995379 s) [OK] stime: 0.016541 s (+ 0.006378 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.996946 s (+ 1.996946 s) [OK] stime: 0.998663 s (+ 0.998663 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) <- 子プロセス終了後に更新される *** 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 mago process ---- ---- add utime 2sec in child ---- ---- add utime 1sec in mago ---- ---- add stime 1sec in mago ---- ---- add stime 1sec in child ---- ---- mmap and access 32MB (32768 KB) in mago ---- ---- munmap 32MB (32768 KB) in mago ---- ---- mago process exit ---- ---- mmap and access 8MB (8192 KB) in child ---- ---- munmap 8MB (8192 KB) in child ---- ---- wait mago's exit ---- ---- child process exit ---- [ RUSAGE_CHILDREN ] [OK] utime: 2.999763 s (+ 2.999763 s) <- 子プロセス2秒、孫プロセス1秒の和 [OK] stime: 2.009389 s (+ 2.009389 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.000535 s (+ 0.000535 s) [OK] stime: 0.009965 s (+ 0.009965 s) ---- add utime 1sec in main thread ---- ---- create thread and join ---- [ RUSAGE_THREAD ] [OK] utime: 0.000005 s (+ 0.000005 s) [OK] stime: 0.000014 s (+ 0.000014 s) ---- add utime 2sec in sub thread ---- ---- add stime 1sec in sub thread ---- [ RUSAGE_THREAD ] [OK] utime: 1.996925 s (+ 1.996925 s) [OK] stime: 0.998649 s (+ 0.998649 s) ---- sub thread exit ---- [ RUSAGE_THREAD ] [OK] utime: 0.999027 s (+ 0.998492 s) [OK] stime: 3.006955 s (+ 2.996990 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