How to configure ECHO?
Hi, @hamadmarri
Thank you for ECHO. I captured results comparing EEVDF, BORE, and ECHO. _I now realize you made an update and will run again, and report back._ Testing was on a 32-core box (64 CPU threads); AMD Ryzen Threadripper 3970X; NVIDIA RTX 3070; XanMod Edge 6.8.2 kernel. I'm unsure if `bs_shared_quota` is fixed or depends on the number of CPU threads?
**ECHO tuning**
```text
/sys/kernel/debug/sched/base_slice_ns 6800
/proc/sys/kernel/sched_bs_shared_quota 81600 (6800 * 12)
/proc/sys/kernel/yield_type 1
```
I ran 4 tasks concurrently, twice (with and without idle policy for the compute job). Afterwards, I timed a kernel compile job.
```text
chrt -f 10 Chromium Browser https://slowroads.io/
Google Chrome https://webglsamples.org/blob/blob.html
Number of blobs: 10 Resolution: 48^3
chrt -i 0 ./algorithm3.pl 2e12 (i)
./algorithm3.pl 2e12 (noi)
./schbench (99.0th,max)
Compile: time HZ=800 LOCALMODCONFIG=1 ./xm-build edge-preempt
The compile job runs separately, no other jobs.
```
**Results**
```text
Scheduler algo(i) blob sch99th algo(noi) blob sch99th compile
max max
----------- ------- ----- ------ ------- ----- ------ --------
EEVDF 41.279s 60fps 3716us 39.472s 60fps 4232us 100.682s
7735us 8198us
BORE v5.0.3 41.510s 60fps 3660us 39.261s 60fps 4584us 100.269s
7149us 8225us
ECHO v001 36.284s 56fps 1230us 34.692s 30fps 3404us 99.906s
4370us 7909us
```
**Observations**
1. The slowroads demo ran smoothest with ECHO under CPU load. Even though Chromium was running with 'fifo' policy, there were micro jitters with EEVDF/BORE. But quite smooth with ECHO.
2. EEVDF/BORE has SCHED_AUTOGROUP enabled. So, launching Firefox appears in 1 second under CPU load. For ECHO, Firefox may take longer to appear depending on running background jobs with 'idle' policy.
3. Achieving blob 60fps is possible with ECHO algo(i,noi), simply by running Google Chrome with 'fifo' policy i.e. chrt -f 10.
4. Idle policy 'chrt -i 0' has a nice effect for ECHO, optionally apply to background jobs. That keeps ECHO responsive for the desktop environment.
5. Possibilities; the 'fifo' and 'idle' policies are helpful.
idle: gives background jobs less priority, keeping ECHO responsive
fifo: gives more priority, if needed.
Blessings and grace.
关闭于 2024-04-03 12 条评论