hamadmarri / echo-cpu-scheduler Goto Github PK
View Code? Open in Web Editor NEWECHO CPU Scheduler - Enhanced CPU Handling Orchestrator It is a CPU processes scheduler patch for Linux kernel.
ECHO CPU Scheduler - Enhanced CPU Handling Orchestrator It is a CPU processes scheduler patch for Linux kernel.
The kernel fails to build with CONFIG_HZ_PERIODIC. It seems that ECHO expects CONFIG_NO_HZ_COMMON:
kernel/sched/bs.c:879:30: error: use of undeclared identifier 'run_rebalance_domains' 879 | open_softirq(SCHED_SOFTIRQ, run_rebalance_domains); | ^
This is easily fixed by making CONFIG_ECHO_SCHED depend on CONFIG_NO_HZ_COMMON.
Hello,
any chance to backport to 6.6 kernel?
Hi Hamad,
A Clear Linux user reported Echo-RT crashing. On KDE 6-Wayland when opening the Discover software centre.
I have not experienced any crashes with Echo including Echo-RT on GNOME/X11.
Disabled NO_HZ_FULL, there is a bug in ECHO that keeps cpus idle for
sometime when adding full tickless args in grub nohz_full=...
Currently the easy fix is to remove the nohz_full from grub
parameters in echo linux entry. The bug still there so for
the time being I just disabled NO_HZ_FULL
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
/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.
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
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
Blessings and grace.
I tested the main ECHO patch with Linux 6.9.0 upstream and it applies cleanly, builds and boots. The other two patches apply cleanly but I didn't test them.
Some more testing is definitely required but it makes sense to create a 6.9 patchset for now with the exact same contents as the 6.8 version.
Hi I get this build error
In file included from kernel/sched/bs.c:773:
kernel/sched/balancer.h: In function ‘migrate_degrades_locality’:
kernel/sched/balancer.h:349:13: error: implicit declaration of function ‘sched_idle_cpu’ [-Werror=implicit-function-declaration]
349 | if (sched_idle_cpu(cpu_of(dst_rq)))
| ^~~~~~~~~~~~~~
linux kernel 6.7.10
Here is the config file from Archlinux https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/blob/0bd29eb1601f9b1d256cf8b402ba7d5e2a04b441/config
The workarroung was to disable numa
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.