diff --git a/repos/os/src/test/timer/main.cc b/repos/os/src/test/timer/main.cc index 899c78a56a..504755a2f0 100644 --- a/repos/os/src/test/timer/main.cc +++ b/repos/os/src/test/timer/main.cc @@ -147,8 +147,10 @@ int main(int argc, char **argv) i += s.num(); } elapsed_ms = main_timer.elapsed_ms() - elapsed_ms; - unsigned const min_ms = ((i - 1) * period_us) / 1000; - unsigned const max_ms = (i * period_us) / 1000; + unsigned const min_ms = ((i - 1) * period_us) / 1000; + unsigned const max_us = i * period_us; + unsigned const max_err_us = max_us / 100; + unsigned const max_ms = (max_us + max_err_us) / 1000; if (min_ms > elapsed_ms || max_ms < elapsed_ms) { PERR("Timing %u ms period %u times failed: %u ms (min %u, max %u)", period_us / 1000, i, elapsed_ms, min_ms, max_ms);