-
Notifications
You must be signed in to change notification settings - Fork 32
Backports to LTS kernel version & light patch for CFS #12
Comments
Hi @Alt37 ,
I tried BMQ before, it was superior especially in gaming. I am surprised that it doesn't support the above features, which might be the reason why it is lightweight and fast.
The current Cachy version has just slight modifications to CFS (HRRN policy with doubly linked list, and Dynamic Priorities). It is possible to have a patch on top of
I don't know exactly how to extend support to LTS kernel versions. Could you please explain more about this point? Thank you |
BMQ originates from BFS which doesn't fully support them as well. Authors of such different (from mainline) schedulers need to implement new features on their side.
I can't tell what is more future-proof and easier to maintain - patched CFS or Cachy. On the first sight patched CFS looks easier to me. If nothing major happen during version lifecycle you will most likely just offset code on fair.c. For Cachy you'll probably need to merge mainline changes (duplicate code from CFS commits).
I meant that you have Cachy for latest stable kernel version (5.8). LTS vesion (5.4) is different and I can't just apply latest (or in this case any) patch there. Some distributions (Arch, Manjaro, Raspberry Pi OS, Debian stable, sometimes Ubuntu) provide LTS kernels. Users may benefit from LTS version when something is wrong with "latest & greatest" kernel. |
Sure, making patches for LTS releases seems a good idea. I wounder which old version you think to stop at? |
In my opinion, it's 5.4, latest official LTS. Support for 5.3 is dropped by mainline. Among long-term distributions I guess only openSUSE maintains it (for Leap 15.2) but they have a lot of backports. So it there's a need to support 5.3 then only for openSUSE. |
As far as I know, both BMQ and PDS support cgroups (at least minimally). This was introduced some time ago so that you could use the docker without any problems.
For the rest, full agreement. MUQSS doesn't support it either. |
https://github.com/hamadmarri/cachy-sched/tree/master/patches/cachy/v5.4 I am not able to test on my machine I got compression error. Please check if the patch works properly with v5.4. Thank you |
I tried to compile it. Unfortunately build fails
|
I think you need to disable -Werror from treating warnings as errors. they have similar definitions
|
I commented appropriate line in Makefile and was able to compile
Unfortunately kernel hangs on boot without any warnings (at least I can't see them even without "quiet" option in GRUB). Base kernel version was Ubuntu's "linux-image-5.4.0-48-generic" |
Could you please provide a download link for "linux-image-5.4.0-48-generic" because I am not able to find 5.4.0-48 exactly in github linux repo. I checked out the tag v5.4 which seems the last one in 5.4.* |
It's a distro kernel, you can download flles here |
Sure, I will try. If I made a cachy patch for longterm: 5.4.69 in https://www.kernel.org, would it work too on 5.4.0-48.52? |
Probably |
Please see the attached patch. It is for v5.4.70, it may work with ubuntu version and here the branch on linux tree and the tag |
I can confirm that latest patch works with Ubuntu version. |
Hi @Alt37 , I agree that it is better to move out Thank you for your suggestions and support. |
Hello @hamadmarri
First of all, thanks for your work!
I believe it's very important that Cachy is built on top of mainline scheduler. CFS shows comparable performance with MuQSS and BMQ, usable with RT application etc. The main problem is multitasking under heavy load. MuQSS really shined in this aspect but seems like it's dying. Also, just like BMQ it misses support for modern mainline features (schedutil/uclamp, nohz_full, cgroups). So if it's possible to achieve similar results with CFS, it looks like the best choice.
So I have a few questions:
Thanks!
The text was updated successfully, but these errors were encountered: