X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ftests%2Fthreads%2Fmlfqs-load-1.c;h=a39eea27ff32ff60540b5017959a95274b80c03a;hb=aa5413391cffb2c4d59c37730c5d4e0f09ebfe7b;hp=652407c669161d28e1c4ebe359193f6088619845;hpb=615bf3b3d2a8573ed6fb9ddc0055745e163ac999;p=pintos-anon diff --git a/src/tests/threads/mlfqs-load-1.c b/src/tests/threads/mlfqs-load-1.c index 652407c..a39eea2 100644 --- a/src/tests/threads/mlfqs-load-1.c +++ b/src/tests/threads/mlfqs-load-1.c @@ -1,3 +1,11 @@ +/* Verifies that a single busy thread raises the load average to + 0.5 in 38 to 45 seconds. The expected time is 42 seconds, as + you can verify: + perl -e '$i++,$a=(59*$a+1)/60while$a<=.5;print "$i\n"' + + Then, verifies that 10 seconds of inactivity drop the load + average back below 0.5 again. */ + #include #include "tests/threads/tests.h" #include "threads/init.h" @@ -13,7 +21,7 @@ test_mlfqs_load_1 (void) int elapsed; int load_avg; - ASSERT (enable_mlfqs); + ASSERT (thread_mlfqs); msg ("spinning for up to 45 seconds, please wait..."); @@ -23,12 +31,12 @@ test_mlfqs_load_1 (void) load_avg = thread_get_load_avg (); ASSERT (load_avg >= 0); elapsed = timer_elapsed (start_time) / TIMER_FREQ; - if (load_avg > 50) - break; - else if (load_avg > 100) + if (load_avg > 100) fail ("load average is %d.%02d " "but should be between 0 and 1 (after %d seconds)", load_avg / 100, load_avg % 100, elapsed); + else if (load_avg > 50) + break; else if (elapsed > 45) fail ("load average stayed below 0.5 for more than 45 seconds"); }