Messages in this thread | | | Date | Mon, 28 Jan 2008 21:13:53 +0100 | From | "Guillaume Chazarain" <> | Subject | Re: High wake up latencies with FAIR_USER_SCHED |
| |
Unfortunately it seems to not be completely fixed, with this script:
#!/usr/bin/python
import os import time
SLEEP_TIME = 0.1 SAMPLES = 5 PRINT_DELAY = 0.5
def print_wakeup_latency(): times = [] last_print = 0 while True: start = time.time() time.sleep(SLEEP_TIME) end = time.time() times.insert(0, end - start - SLEEP_TIME) del times[SAMPLES:] if end > last_print + PRINT_DELAY: copy = times[:] copy.sort() print '%f ms' % (copy[len(copy)/2] * 1000) last_print = end
if os.fork() == 0: if os.fork() == 0: os.setuid(1) while True: pass else: os.setuid(2) while True: pass else: os.setuid(1) print_wakeup_latency()
I get seemingly unpredictable latencies (with or without the patch applied):
# ./sched.py 14.810944 ms 19.829893 ms 1.968050 ms 8.021021 ms -0.017977 ms 4.926109 ms 11.958027 ms 5.995893 ms 1.992130 ms 0.007057 ms 0.217819 ms -0.004864 ms 5.907202 ms 6.547832 ms -0.012970 ms 0.209951 ms -0.002003 ms 4.989052 ms
Without FAIR_USER_SCHED, latencies are consistently in the noise. Also, I forgot to mention that I'm on a single CPU.
Thanks for the help.
-- Guillaume
| |