Wednesday, 28 April 2021

linux-5.12-ck1, MuQSS version 0.210 for linux-5.12

 Announcing a new -ck release, 5.12-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.210 These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

This was a resync and build bugfix from 5.11-ck1. The only new change to the -ck patch is the ability to reselect ondemand and conservative governors with Intel Pstate, and to deselect schedutil.

 

 linux-5.12-ck1:

patch-5.12-ck1.xz

Git tree:

5.12-ck


MuQSS only:

0001-MultiQueue-Skiplist-Scheduler-v0.210.patch

Git tree:

5.12-muqss


Web: kernel.kolivas.org

Enjoy!
お楽しみ下さい
-ck

12 comments:

  1. Thanks for your work!

    ReplyDelete
  2. Thank you very much!

    ReplyDelete
  3. Hi, @ckolivas. There are some fixes coming from zen-kernl and mine. Could you review it?

    fixes for
    https://github.com/ckolivas/linux/commit/9c7270e3e1dcf6c990a7ccd5fbf5d21e5a1ef2e2#diff-cdac74c1da5cfa0a30beabf049b3058ff354b315704e1cd4776f82d66796dffb
    https://github.com/ckolivas/linux/commit/4b14ea13eccf84c9c429e3459b777fed674d811f#diff-41fafa60f2e3316826fc2c6126ffdc2cc018332ac9e307d80be55f62ddc1aeae

    see https://github.com/zen-kernel/zen-kernel/commit/f1eb219c76a218c76b065e7a4380a3cbde7c5f73

    fixes for
    https://github.com/ckolivas/linux/commit/9c7270e3e1dcf6c990a7ccd5fbf5d21e5a1ef2e2#diff-4853e8b72f312cc8497dd737b1f7e6bb52f59fe133e965723fe168a1220c3b78

    diff --git a/drivers/block/swim.c b/drivers/block/swim.c
    index ac5c170..87d0d40 100644
    --- a/drivers/block/swim.c
    +++ b/drivers/block/swim.c
    @@ -371,7 +371,6 @@ static inline int swim_step(struct swim __iomem *base)
    for (wait = 0; wait < HZ; wait++) {

    set_current_state(TASK_INTERRUPTIBLE);
    - schedule_timeout(1);
    schedule_min_hrtimeout();

    swim_select(base, RELAX);

    ReplyDelete
    Replies
    1. Thanks, I added your fix to zen-kernel/5.12/muqss:
      https://github.com/zen-kernel/zen-kernel/commit/68e54611dda766838c743158164318a4e40d8e27

      Delete
    2. Thanks for those. I haven't done a proper code sweep on those in a while. Any chance you could submit pull requests to my git instead?

      Delete
  4. FYI Alfred Chen got his scheduler to work properly with schedutil with this commit.
    https://gitlab.com/alfredchen/linux-prjc/-/commit/d9f8735ff184981cfe16057642e0126d32f7d945

    ReplyDelete
    Replies
    1. I didn't say schedutil won't work with MuQSS. I'm just offering the option of disabling it.

      Delete
  5. Thanks Con.

    I've done some benchmarks.
    Nothing new on the throughput side.

    I've experimented with turbostat.
    If the energy results are accurate (they are at least coherent), schedutil is indeed less energy efficient than ondemand. And suprisingly, ck+ondemand is more energy efficient than CFS+schedutil.


    https://docs.google.com/spreadsheets/d/163U3H-gnVeGopMrHiJLeEY1b7XlvND2yoceKbOvQRm4/edit?usp=sharing

    Pedro

    ReplyDelete
    Replies
    1. That's a very interesting discovery, thanks for that. Looks like it was worth it to keep ondemand available for those that don't have hwp.

      Delete
  6. System: Ryzen 3700x

    qemu-system-x86_64 -enable-kvm -smp 8 -vga virtio -drive file=/dev/vg0/vmubuntu,if=virtio,media=disk,index=0,format=raw,cache=none -m 8G -display sdl,gl=on

    with rqshare=llc or smt the system freezes completely
    rqshare=all/none/mc working ok

    =mc reports total runqueues=1. Is this even the correct behavior?

    ReplyDelete
    Replies
    1. Freezing is obviously not correct behaviour, but yes MC should give you only one runqueue without two (emulated or real) physical cores.

      Delete
    2. Ok, thanks for the quick reply. New info: System only freezes with -smp 8 and -smp 32.
      I also used 2, 4, 6, 7, 9 and 16. No freeze here. Really strange.

      Delete