Tuesday, 1 May 2018

linux-4.16-ck1, MuQSS version 0.171 for linux-4.16

Announcing a new -ck release, 4.16-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.171. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.
linux-4.16-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is mostly just a resync with 4.15 MuQSS and -ck patches. The only significant difference is that the default config for threaded IRQs is now set to disabled as this seems to be associated with boot failures when used in concert with runqueue sharing. I still include the patch in -ck that stops build warnings from making the kernel build fail, and I've added a single patch to aid building an evil out-of-kernel driver that many of us use.


Enjoy!
お楽しみ下さい
-ck

16 comments:

  1. Thanks for the resync.

    ReplyDelete
  2. Thanks. Much appreciated.

    ReplyDelete
  3. Great. Much appreciated man

    ReplyDelete
  4. Running great. Very thanks.

    ReplyDelete
  5. Hello, great work, I've used -ck for a while but have missed it recently on Artix since the maintainer gave up on it.
    So I compiled my own and tried to also use the repo-ck which interrupts my connection at about 2%, which is better than doing it at 99%.

    Here is an article I put up for -ck http://sysdfree.wordpress.com/204

    ReplyDelete
  6. Thanks Con.
    I did some throughput benchmarks.
    https://docs.google.com/spreadsheets/d/163U3H-gnVeGopMrHiJLeEY1b7XlvND2yoceKbOvQRm4/edit?usp=sharing

    Still the same consistant performance for MuQSS.

    I'm willing to try benchmarking latencies again.
    I've found this article :
    https://lwn.net/Articles/725238/

    Do you think any of those tool could be used ?

    Pedro

    ReplyDelete
  7. may in this case be appropriate to use https://github.com/ckolivas/interbench ?

    ReplyDelete
    Replies
    1. I already ran interbench with linux 4.15. The results are rather difficult to understand.
      Judging by the numbers, PDS seems to be the best, but some users noted slowdowns in UI while using it. So there is more to it than that.
      I'd like to find other tools to compare latencies.

      Pedro

      Delete
    2. rt-tests, cyclictest.

      Delete
    3. Well I've tried that one too with linux 4.10 and MuQSS 152, and also bcc runqlat.
      MuQSS latencies where higher than CFS. Con commented that you can't compare directly CFS and MuQSS with this tool as it doesn't use the same functions.

      Pedro

      Delete
    4. Any tools that hook into function calls in the kernel are simply not going to work as the function names and purposes are different in muqss. As for interbench results, it is a fairness test as well as a latency test so looking for just the lowest latency as some kind of perfect endpoint will give you the wrong conclusion.

      Delete
  8. Thanks for answering.
    So could these tools be used for regression testing between MuQSS releases ?
    I don't know if the internals change that much between MuQSS and mainline releases.

    Pedro

    ReplyDelete
    Replies
    1. Most of the time, yes, though there is variance in results too, so repeating the tests is almost important if something suddenly looks much better or much worse.

      Delete
  9. Hi Con,

    Compile error on 32 bit Pentium 4:

    CC kernel/sched/MuQSS.o
    In file included from kernel/sched/MuQSS.c:73:0:
    kernel/sched/MuQSS.h:739:46: warning: ‘struct sched_domain’ declared inside parameter list will not be visible outside of this definition or declaration
    unsigned long arch_scale_cpu_capacity(struct sched_domain *sd, int cpu)
    ^~~~~~~~~~~~
    kernel/sched/MuQSS.h: In function ‘arch_scale_cpu_capacity’:
    kernel/sched/MuQSS.h:741:15: error: dereferencing pointer to incomplete type ‘struct sched_domain’
    if (sd && (sd->flags & SD_SHARE_CPUCAPACITY) && (sd->span_weight > 1))
    ^~
    kernel/sched/MuQSS.h:741:25: error: ‘SD_SHARE_CPUCAPACITY’ undeclared (first use in this function)
    if (sd && (sd->flags & SD_SHARE_CPUCAPACITY) && (sd->span_weight > 1))
    ^~~~~~~~~~~~~~~~~~~~
    kernel/sched/MuQSS.h:741:25: note: each undeclared identifier is reported only once for each function it appears in

    Kernel is 4.16.8, only your patch is added. But the same with zen Kernel.

    Old 4.15 muqss was working fine.
    Thanks.

    Regards sysitos

    ReplyDelete
  10. For hyper-threading CPUs, 'threaded IRQs' together with SMT runqueue sharing will cause random glitches and prevent system from suspending/hibernating.

    ReplyDelete