diff options
-rwxr-xr-x | tools/testing/ktest/ktest.pl | 109 |
1 files changed, 105 insertions, 4 deletions
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index 1dae000f79f8..177319822401 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl | |||
@@ -198,6 +198,11 @@ my $patchcheck_start; | |||
198 | my $patchcheck_cherry; | 198 | my $patchcheck_cherry; |
199 | my $patchcheck_end; | 199 | my $patchcheck_end; |
200 | 200 | ||
201 | my $build_time; | ||
202 | my $install_time; | ||
203 | my $reboot_time; | ||
204 | my $test_time; | ||
205 | |||
201 | # set when a test is something other that just building or install | 206 | # set when a test is something other that just building or install |
202 | # which would require more options. | 207 | # which would require more options. |
203 | my $buildonly = 1; | 208 | my $buildonly = 1; |
@@ -555,6 +560,66 @@ sub get_mandatory_config { | |||
555 | } | 560 | } |
556 | } | 561 | } |
557 | 562 | ||
563 | sub show_time { | ||
564 | my ($time) = @_; | ||
565 | |||
566 | my $hours = 0; | ||
567 | my $minutes = 0; | ||
568 | |||
569 | if ($time > 3600) { | ||
570 | $hours = int($time / 3600); | ||
571 | $time -= $hours * 3600; | ||
572 | } | ||
573 | if ($time > 60) { | ||
574 | $minutes = int($time / 60); | ||
575 | $time -= $minutes * 60; | ||
576 | } | ||
577 | |||
578 | if ($hours > 0) { | ||
579 | doprint "$hours hour"; | ||
580 | doprint "s" if ($hours > 1); | ||
581 | doprint " "; | ||
582 | } | ||
583 | |||
584 | if ($minutes > 0) { | ||
585 | doprint "$minutes minute"; | ||
586 | doprint "s" if ($minutes > 1); | ||
587 | doprint " "; | ||
588 | } | ||
589 | |||
590 | doprint "$time second"; | ||
591 | doprint "s" if ($time != 1); | ||
592 | } | ||
593 | |||
594 | sub print_times { | ||
595 | doprint "\n"; | ||
596 | if ($build_time) { | ||
597 | doprint "Build time: "; | ||
598 | show_time($build_time); | ||
599 | doprint "\n"; | ||
600 | } | ||
601 | if ($install_time) { | ||
602 | doprint "Install time: "; | ||
603 | show_time($install_time); | ||
604 | doprint "\n"; | ||
605 | } | ||
606 | if ($reboot_time) { | ||
607 | doprint "Reboot time: "; | ||
608 | show_time($reboot_time); | ||
609 | doprint "\n"; | ||
610 | } | ||
611 | if ($test_time) { | ||
612 | doprint "Test time: "; | ||
613 | show_time($test_time); | ||
614 | doprint "\n"; | ||
615 | } | ||
616 | # reset for iterations like bisect | ||
617 | $build_time = 0; | ||
618 | $install_time = 0; | ||
619 | $reboot_time = 0; | ||
620 | $test_time = 0; | ||
621 | } | ||
622 | |||
558 | sub get_mandatory_configs { | 623 | sub get_mandatory_configs { |
559 | get_mandatory_config("MACHINE"); | 624 | get_mandatory_config("MACHINE"); |
560 | get_mandatory_config("BUILD_DIR"); | 625 | get_mandatory_config("BUILD_DIR"); |
@@ -1786,6 +1851,8 @@ sub monitor { | |||
1786 | my $skip_call_trace = 0; | 1851 | my $skip_call_trace = 0; |
1787 | my $loops; | 1852 | my $loops; |
1788 | 1853 | ||
1854 | my $start_time = time; | ||
1855 | |||
1789 | wait_for_monitor 5; | 1856 | wait_for_monitor 5; |
1790 | 1857 | ||
1791 | my $line; | 1858 | my $line; |
@@ -1910,6 +1977,9 @@ sub monitor { | |||
1910 | } | 1977 | } |
1911 | } | 1978 | } |
1912 | 1979 | ||
1980 | my $end_time = time; | ||
1981 | $reboot_time = $end_time - $start_time; | ||
1982 | |||
1913 | close(DMESG); | 1983 | close(DMESG); |
1914 | 1984 | ||
1915 | if ($bug) { | 1985 | if ($bug) { |
@@ -1958,6 +2028,8 @@ sub install { | |||
1958 | 2028 | ||
1959 | return if ($no_install); | 2029 | return if ($no_install); |
1960 | 2030 | ||
2031 | my $start_time = time; | ||
2032 | |||
1961 | if (defined($pre_install)) { | 2033 | if (defined($pre_install)) { |
1962 | my $cp_pre_install = eval_kernel_version $pre_install; | 2034 | my $cp_pre_install = eval_kernel_version $pre_install; |
1963 | run_command "$cp_pre_install" or | 2035 | run_command "$cp_pre_install" or |
@@ -1989,6 +2061,8 @@ sub install { | |||
1989 | if (!$install_mods) { | 2061 | if (!$install_mods) { |
1990 | do_post_install; | 2062 | do_post_install; |
1991 | doprint "No modules needed\n"; | 2063 | doprint "No modules needed\n"; |
2064 | my $end_time = time; | ||
2065 | $install_time = $end_time - $start_time; | ||
1992 | return; | 2066 | return; |
1993 | } | 2067 | } |
1994 | 2068 | ||
@@ -2016,6 +2090,9 @@ sub install { | |||
2016 | run_ssh "rm -f /tmp/$modtar"; | 2090 | run_ssh "rm -f /tmp/$modtar"; |
2017 | 2091 | ||
2018 | do_post_install; | 2092 | do_post_install; |
2093 | |||
2094 | my $end_time = time; | ||
2095 | $install_time = $end_time - $start_time; | ||
2019 | } | 2096 | } |
2020 | 2097 | ||
2021 | sub get_version { | 2098 | sub get_version { |
@@ -2228,6 +2305,8 @@ sub build { | |||
2228 | 2305 | ||
2229 | unlink $buildlog; | 2306 | unlink $buildlog; |
2230 | 2307 | ||
2308 | my $start_time = time; | ||
2309 | |||
2231 | # Failed builds should not reboot the target | 2310 | # Failed builds should not reboot the target |
2232 | my $save_no_reboot = $no_reboot; | 2311 | my $save_no_reboot = $no_reboot; |
2233 | $no_reboot = 1; | 2312 | $no_reboot = 1; |
@@ -2313,6 +2392,9 @@ sub build { | |||
2313 | 2392 | ||
2314 | $no_reboot = $save_no_reboot; | 2393 | $no_reboot = $save_no_reboot; |
2315 | 2394 | ||
2395 | my $end_time = time; | ||
2396 | $build_time = $end_time - $start_time; | ||
2397 | |||
2316 | return 1; | 2398 | return 1; |
2317 | } | 2399 | } |
2318 | 2400 | ||
@@ -2403,6 +2485,8 @@ sub do_run_test { | |||
2403 | my $bug = 0; | 2485 | my $bug = 0; |
2404 | my $bug_ignored = 0; | 2486 | my $bug_ignored = 0; |
2405 | 2487 | ||
2488 | my $start_time = time; | ||
2489 | |||
2406 | wait_for_monitor 1; | 2490 | wait_for_monitor 1; |
2407 | 2491 | ||
2408 | doprint "run test $run_test\n"; | 2492 | doprint "run test $run_test\n"; |
@@ -2469,6 +2553,9 @@ sub do_run_test { | |||
2469 | waitpid $child_pid, 0; | 2553 | waitpid $child_pid, 0; |
2470 | $child_exit = $?; | 2554 | $child_exit = $?; |
2471 | 2555 | ||
2556 | my $end_time = time; | ||
2557 | $test_time = $end_time - $start_time; | ||
2558 | |||
2472 | if (!$bug && $in_bisect) { | 2559 | if (!$bug && $in_bisect) { |
2473 | if (defined($bisect_ret_good)) { | 2560 | if (defined($bisect_ret_good)) { |
2474 | if ($child_exit == $bisect_ret_good) { | 2561 | if ($child_exit == $bisect_ret_good) { |
@@ -2775,6 +2862,7 @@ sub bisect { | |||
2775 | do { | 2862 | do { |
2776 | $result = run_bisect $type; | 2863 | $result = run_bisect $type; |
2777 | $test = run_git_bisect "git bisect $result"; | 2864 | $test = run_git_bisect "git bisect $result"; |
2865 | print_times; | ||
2778 | } while ($test); | 2866 | } while ($test); |
2779 | 2867 | ||
2780 | run_command "git bisect log" or | 2868 | run_command "git bisect log" or |
@@ -3188,6 +3276,7 @@ sub config_bisect { | |||
3188 | 3276 | ||
3189 | do { | 3277 | do { |
3190 | $ret = run_config_bisect \%good_configs, \%bad_configs; | 3278 | $ret = run_config_bisect \%good_configs, \%bad_configs; |
3279 | print_times; | ||
3191 | } while (!$ret); | 3280 | } while (!$ret); |
3192 | 3281 | ||
3193 | return $ret if ($ret < 0); | 3282 | return $ret if ($ret < 0); |
@@ -3317,10 +3406,12 @@ sub patchcheck { | |||
3317 | do_run_test or $failed = 1; | 3406 | do_run_test or $failed = 1; |
3318 | } | 3407 | } |
3319 | end_monitor; | 3408 | end_monitor; |
3320 | return 0 if ($failed); | 3409 | if ($failed) { |
3321 | 3410 | print_times; | |
3411 | return 0; | ||
3412 | } | ||
3322 | patchcheck_reboot; | 3413 | patchcheck_reboot; |
3323 | 3414 | print_times; | |
3324 | } | 3415 | } |
3325 | $in_patchcheck = 0; | 3416 | $in_patchcheck = 0; |
3326 | success $i; | 3417 | success $i; |
@@ -4020,6 +4111,11 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { | |||
4020 | 4111 | ||
4021 | $iteration = $i; | 4112 | $iteration = $i; |
4022 | 4113 | ||
4114 | $build_time = 0; | ||
4115 | $install_time = 0; | ||
4116 | $reboot_time = 0; | ||
4117 | $test_time = 0; | ||
4118 | |||
4023 | undef %force_config; | 4119 | undef %force_config; |
4024 | 4120 | ||
4025 | my $makecmd = set_test_option("MAKE_CMD", $i); | 4121 | my $makecmd = set_test_option("MAKE_CMD", $i); |
@@ -4183,9 +4279,14 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { | |||
4183 | do_run_test or $failed = 1; | 4279 | do_run_test or $failed = 1; |
4184 | } | 4280 | } |
4185 | end_monitor; | 4281 | end_monitor; |
4186 | next if ($failed); | 4282 | if ($failed) { |
4283 | print_times; | ||
4284 | next; | ||
4285 | } | ||
4187 | } | 4286 | } |
4188 | 4287 | ||
4288 | print_times; | ||
4289 | |||
4189 | success $i; | 4290 | success $i; |
4190 | } | 4291 | } |
4191 | 4292 | ||