On Mon, 10 Jun 2013, Dave Mitchell wrote: > In perl.git, the branch blead has been updated > > <http://perl5.git.perl.org/perl.git/commitdiff/1ebabb47e140c4b8dd1d47c3c821c655f6824a9a?hp=30f6094bc1f1cbd908daaa2a6c5759ad03bfecec> > > - Log ----------------------------------------------------------------- > commit 1ebabb47e140c4b8dd1d47c3c821c655f6824a9a > Author: David Mitchell <davem@iabyn.com> > Date: Mon Jun 10 17:04:46 2013 +0100 > > Benchmark.t: test for inconsistent clock > > test 15 has been failing intermittently in smokes for ages now. > This does countit(3, ...) and countit(1, ...) and checks that the first > takes approx three times longer than the second. > > This commit adds in near the beginning a crude timing loop that directly > uses times() rather than anything in the Benchmark module, and that does > approx 1s and 3s of loops, and if the results aren't consistent, sets a > global flag, $INCONSISTENT_CLOCK, that causes timing-sensitive tests to be > skipped. > > For now it only skips test 15. If this is successful, I'll look to > expand it to other failing tests like 128/129. > ----------------------------------------------------------------------- At least for my Linux smokers, Benchmark.t test 15 fails not because the clocks are inconsistent but because the load average can reach over 100 at times depending on how many different smokes are running, especially since they almost all do "make -j" and TEST_JOBS=8. (The AddressSanitizer smokers don't use "make -j" because I kernel panic'd my machine once doing that.) My machine has 4 physical, 8 virtual cores so it doesn't blow the timings too frequently but it does happen. A check for load average being "too high" after a failure to silence it might help at least in my cases. -- George GreerThread Next