CachyOS / linux-cachyos

Archlinux Kernel based on different schedulers and some other performance improvements.
https://cachyos.org
GNU General Public License v3.0
876 stars 35 forks source link

BORE scheduler #2

Closed Neucher closed 2 years ago

Neucher commented 2 years ago

This scheduler is very new as far as I can see. Is it comparable to TT/cacule or is it targeting something completely different ? I don't know where to look when it comes to kernel testing.

ptr1337 commented 2 years ago

This scheduler is very new as far as I can see. Is it comparable to TT/cacule or is it targeting something completely different ? I don't know where to look when it comes to kernel testing.

Hey @Lehner82

The first versions of the bore scheduler was based on the work of hamad's baby/tt scheduler. After some talking and debugging with the developer, we/he decided to use as base the cacule scheduler, since its not in development anymore and i just keep the scheduler maintained for the upcoming kernel versions.

The bore scheduler seems to provide so far a very good performance/latency. Just checkout yourself, if you compile it yourself, you dont need any special config setting, since its automatically applied and enabled.

Here you find his repo (will add this soon, also to the readme, since it needs a complete rework) https://github.com/firelzrd/bore-scheduler

Feel free to join our discord:

https://discord.gg/nSheTZHz

regards.

@firelzrd

firelzrd commented 2 years ago

Hi, Lehner82. I'm the developer of the scheduler. Thank you for putting your eyes on BORE. For many years I wanted a CPU scheduler that just keeps things fast and fluid no matter what I'm running in the background. Now that Hamad Al Marri, the guy behind CacULE has released Baby, a simplified process scheduler template, I decided to learn to write another scheduler on top of it. It started as a rewrite of Baby-vrt variant, then soon rebased on Baby-hrrn as it seemed to be more suitable. A little after some progress of development, It turned out that, as in its early moment, Baby was lacking some complicated features like advanced task balancing or nohz support. So ptr and aother guy hinted me to port it onto CacULE, which also was Hamad's work, based on CFS and being more feature-rich. Based on Hamad's excellent works, but with its scheduling algorithm replaced into mine, BORE mainly focuses to minimize the response time of tasks by basically measuring their waiting time (how long real-clock time it hasn't been served) and burst time (how long cpu time it's been running without yielding/sleeping/iowaiting) and calculating/scoring tasks' interactivity based on them. Most recent changes also include nice priority support, adaptive longer timeslice for better throughput, adding immunity against tasks that keep sleeping/waking very frequently. BORE is in very early development phase, but I'm rather being satisfied about what ptr and other guys have been telling me about its performance. It'll be my pleasure if you enjoy my scheduler too. Any feedback will be appreciated. Big thanks goes to ptr's dedicated support and of cource Hamad for enlightening and providing many advices.

ptr1337 commented 2 years ago

Its now used as default scheduler in the linux-cachyos package since there was at nearly no user a regression, everyone reported a good improvement!

Thanks for your work, keep it up!

firelzrd commented 2 years ago

Its now used as default scheduler in the linux-cachyos package since there was at nearly no user a regression, everyone reported a good improvement!

Thanks for your work, keep it up!

Thank you so much for your continued help and support, ptr1337.