Announcement

Collapse
No announcement yet.

Linux Kernel "Zen" Downstream Pulls In A MuQSS Fix To Help Gaming Performance

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Linux Kernel "Zen" Downstream Pulls In A MuQSS Fix To Help Gaming Performance

    Phoronix: Linux Kernel "Zen" Downstream Pulls In A MuQSS Fix To Help Gaming Performance

    This weekend I posted some fresh benchmarks of the Liquorix kernel against upstream Linux 5.4 and found the gaming performance to be rather disappointing for that kernel flavor derived from the "Zen" patches and more. Fortunately, the Zen kernel patches now include a fix that should make their gaming performance more competitive...

    http://www.phoronix.com/scan.php?pag...rnel-MuQSS-Fix

  • #2
    It would also be interesting to test -O3 vs. -O2 and full tickless vs. 1000Hz vs. default.
    Looks like -O3 is giving me ~3% more fps on top in SotTR vs. -O2. Would have to recompile the exact same kernel and config with -O2 to be absolutely certain though.

    Edit: Nope, it was just typical deviation.
    Last edited by aufkrawall; 01-07-2020, 11:16 AM.

    Comment


    • #3
      If I understand the whole discussion right Linus said game-devs should stop using their custom looking implementations, especially user-space spin-looks, and use properly optimized ones (or simply std::mutex, but that one might not be optimized for latency). Looking forward to hear from game-devs trying that.

      Comment


      • #4
        I would also love to have arch's zen kernels to be included in the benchmarks. Seems like they don't use the same scheduler as liquorix's ?

        Comment


        • #5
          MuQSS doesn't appeal to me anymore, it uses 20% more CPU usage for 2% boost in FPS, not worth it, it is better to tune CFS and tweak I/O scheduler, MuQSS doesn't support cgroups either, not to mention it skews load avg readout and reports otherwise idle system having ~0.97 load avg, CFS is better these days in on higher core count CPU like Ryzen, MuQSS still could use some development.

          Comment


          • #6
            Well, don´t implement spinlocks in usermode code without letting the scheduler know which thread is locking your lock, otherwise you will waste a lot of cycles spinning..

            It is impossible for the scheduler to detect the thread which is currently locking your spinlock, as it knows nothing about your lock. Changing to another scheduler might improve things, but this is only a side effect which might by pure chance schedule the other thread on another core in the same timeslot.

            Bottomline: Don´t do spinlocks in usermode code if you need low latency! Use a mutex!

            Comment


            • #7
              from what I've seen, the Linux Zen kernel has a 0-2% performance increase at best, and carries a myriad of other issues along with it. Thus far I've not seen a better kernel configuration beyond the defaults that most distributions provide.

              Comment


              • #8
                Originally posted by hax0r View Post
                MuQSS doesn't appeal to me anymore, it uses 20% more CPU usage for 2% boost in FPS, not worth it, it is better to tune CFS and tweak I/O scheduler, MuQSS doesn't support cgroups either, not to mention it skews load avg readout and reports otherwise idle system having ~0.97 load avg, CFS is better these days in on higher core count CPU like Ryzen, MuQSS still could use some development.
                Would you mind sharing your CFS and I/O scheduler tweaks?

                Comment


                • #9
                  Originally posted by Vistaus View Post

                  Would you mind sharing your CFS and I/O scheduler tweaks?
                  Not OP, but these were a couple I ran into the other day that might be of interest though I haven't had a chance to test them out.

                  (Merged, verified in 5.4.10 but may have come sooner) https://git.kernel.org/pub/scm/linux...913433b6d9b0b6
                  (Merged, verified in 5.4.10 but may have come sooner) https://git.kernel.org/pub/scm/linux...4387f7ca38e773
                  (Xanmod kernel specific change) https://github.com/xanmod/linux/comm...7c493c2d381c76

                  edit: updated post with more info... TL;DR you can ignore this post as the changes have been/will be merged in a future kernel for you.
                  Last edited by perpetually high; 01-09-2020, 02:25 PM.

                  Comment


                  • #10
                    Originally posted by betam4x View Post
                    Thus far I've not seen a better kernel configuration beyond the defaults that most distributions provide.
                    I currently use the Liquorix (Zen for Ubuntu) kernel, not because I need/want those scheduler tweaks etc, but simply because it includes the Valve fsync (for wine/proton) patches. I'd use esync instead, but the game I want to play regularly freezes when using esync. And the default wineserver-based sync implementation is a bit slow. For some reason Valve only provides compiled fsync kernels for outdated Ubuntu 19.04 and the last LTS, not for the current STS release 19.10…

                    Comment

                    Working...
                    X