[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230915124354.416936110@noisy.programming.kicks-ass.net>
Date: Fri, 15 Sep 2023 14:43:54 +0200
From: peterz@...radead.org
To: mingo@...nel.org
Cc: linux-kernel@...r.kernel.org, peterz@...radead.org,
vincent.guittot@...aro.org, juri.lelli@...hat.com,
dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com,
mgorman@...e.de, bristot@...hat.com, corbet@....net,
qyousef@...alina.io, chris.hyser@...cle.com,
patrick.bellasi@...bug.net, pjt@...gle.com, pavel@....cz,
qperret@...gle.com, tim.c.chen@...ux.intel.com, joshdon@...gle.com,
timj@....org, kprateek.nayak@....com, yu.c.chen@...el.com,
youssefesmat@...omium.org, joel@...lfernandes.org, efault@....de,
tglx@...utronix.de, daniel.m.jordan@...cle.com
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@...-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@...-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)
Powered by blists - more mailing lists