From b4f4b6667913c1727f0312f8515861e3535bf1cd Mon Sep 17 00:00:00 2001 From: David Wilson Date: Wed, 4 Jul 2018 17:38:34 +0000 Subject: [PATCH] tests: make cpu_load.py more random. --- tests/soak/cpu_load.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/soak/cpu_load.py b/tests/soak/cpu_load.py index ed473b15..8890272c 100644 --- a/tests/soak/cpu_load.py +++ b/tests/soak/cpu_load.py @@ -4,12 +4,26 @@ Put the machine's CPUs under pressure to increase the likelihood of scheduling weirdness. Useful for exposing otherwise difficult to hit races in the library. """ +import ctypes import multiprocessing +import os +import time + +LIBC = ctypes.CDLL('libc.so.6') +sched_yield = LIBC.sched_yield + def burn(): - while 1: pass + while 1: + a, b, c = os.urandom(3) + n = int(((ord(a) << 16) | + (ord(b) << 8) | + (ord(c) << 0)) / 1.6) + print(n) + for x in xrange(n): pass + sched_yield() -mul = 2 +mul = 1.5 count = int(mul * multiprocessing.cpu_count()) print count