Messages in this thread | | | Date | Fri, 15 Sep 2023 14:43:54 +0200 | From | peterz@infradea ... | Subject | [PATCH 0/2] sched/eevdf: sched_attr::sched_runtime slice hint |
| |
Hi,
As promised a while ago, here is a new version of the variable slice length hint stuff. Back when I asked for comments on the latency-nice vs slice length thing, there was very limited feedback on-list, a number of people have expressed interrest in the slice length hint.
I'm still working on improving the wakeup latency -- but esp. after commit:
63304558ba5d ("sched/eevdf: Curb wakeup-preemption")
it needs a little more work. Everything I tried so far made it worse.
As is it behaves ok-ish:
root@ivb-ep:~/bench# cat doit-latency-slice.sh #!/bin/bash
perf bench sched messaging -g 40 -l 12000 &
sleep 1 chrt3 -o --sched-runtime $((`cat /debug/sched/base_slice_ns`*10)) 0 cyclictest --policy other -D 5 -q -H 20000 --histfile data.txt ; grep Latencies data.txt chrt3 -o --sched-runtime 0 0 cyclictest --policy other -D 5 -q -H 20000 --histfile data.txt ; grep Latencies data.txt chrt3 -o --sched-runtime $((`cat /debug/sched/base_slice_ns`/10)) 0 cyclictest --policy other -D 5 -q -H 20000 --histfile data.txt ; grep Latencies data.txt
wait $! root@ivb-ep:~/bench# ./doit-latency-slice.sh # Running 'sched/messaging' benchmark: # /dev/cpu_dma_latency set to 0us # Min Latencies: 00060 # Avg Latencies: 00990 # Max Latencies: 224925 # /dev/cpu_dma_latency set to 0us # Min Latencies: 00020 # Avg Latencies: 00656 # Max Latencies: 37595 # /dev/cpu_dma_latency set to 0us # Min Latencies: 00016 # Avg Latencies: 00354 # Max Latencies: 16687 # 20 sender and receiver processes per group # 40 groups == 1600 processes run
Total time: 38.246 [sec]
(chrt3 is a hacked up version of util-linux/chrt that allows --sched-runtime unconditionally)
| |