Announcement

Collapse
No announcement yet.

Linux 6.10 Scheduler Changes Bring More Refinements

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

  • Linux 6.10 Scheduler Changes Bring More Refinements

    Phoronix: Linux 6.10 Scheduler Changes Bring More Refinements

    Alongside all of the other pull requests by Ingo Molnar submitted at the start of the week during the opening of the Linux 6.10 merge window were the scheduler updates. As usual, the kernel scheduler work continues to see various tweaks and refinements to enhance its behavior...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Ryzen DIEs usually have multiple Core Complexes (CCX). This allows me to compile software in one CCX and play games in the other with zero FPS penalty (which even improves latency due to cache layout + avoiding Infinity Fabric).

    However, for this to work I have to manually pin the process to specific cores..
    Really wish there was a CCX aware scheduler which splits heavy tasks between CCX instead of using (random) cores with highest clock speeds.
    Last edited by Kjell; 19 May 2024, 06:40 AM.

    Comment


    • #3
      Originally posted by Kjell View Post
      Ryzen DIEs usually have multiple Core Complexes (CCX). This allows me to compile software in one CCX and play games in the other with zero FPS penalty (which even improves latency due to cache layout + avoiding Infinity Fabric).

      However, for this to work I have to manually pin the process to specific cores..
      Really wish there was a CCX aware scheduler which splits heavy tasks between CCX instead of using (random) cores with highest clock speeds.
      But how would the scheduler know that game and compiler threads are separate?

      Comment


      • #4
        Originally posted by LtdJorge View Post

        But how would the scheduler know that game and compiler threads are separate?
        cgroups?

        Comment


        • #5
          Also if anyone is curious about the board in the image of the article preview, I did some sleuthing and found that it's a board from a review Michael did all the way back in 2012 on the Qualcomm DragonBoard S3 APQ8060: https://www.phoronix.com/review/qualcomm_dragonboard_s3

          Comment


          • #6
            I still have my old InForceComputing IFC6410 (same SOC as the Nexus 4). What a waste of money that was, what with the lack of upstream kernel support and all that. I remember once trying to build the upstream kernel, and that kernel detected the SATA controller as having *zero* ports!

            It's still sitting in my box of random electronics crap. Might as well be e-waste, unless I were to find somebody who'd have a use for me sending it to them at their shipping expense.

            Comment


            • #7
              Originally posted by Kjell View Post
              Ryzen DIEs usually have multiple Core Complexes (CCX). This allows me to compile software in one CCX and play games in the other with zero FPS penalty (which even improves latency due to cache layout + avoiding Infinity Fabric).

              However, for this to work I have to manually pin the process to specific cores..
              Really wish there was a CCX aware scheduler which splits heavy tasks between CCX instead of using (random) cores with highest clock speeds.
              On my motherboard I can set LLC (L3) as NUMA domain.
              This makes the Linux scheduler automatically much smarter.

              Comment


              • #8
                Originally posted by Kjell View Post
                Ryzen DIEs usually have multiple Core Complexes (CCX). This allows me to compile software in one CCX and play games in the other with zero FPS penalty (which even improves latency due to cache layout + avoiding Infinity Fabric).

                However, for this to work I have to manually pin the process to specific cores..
                Really wish there was a CCX aware scheduler which splits heavy tasks between CCX instead of using (random) cores with highest clock speeds.
                I really like that idea, but I'm concerned it just needs more than just a CCX aware scheduler. All the processes spawned by the OS need at least to be declared as daemon or interactive. Then user-spawned processes have to be dealt with as well.
                Projects like https://github.com/RogueScholar/ananicy are nice (haha), but to be honest, too hacky. And it really gets difficult to implement rules to differ between e.g. interactive python apps and daemons.

                I got the obvious wrong things right for now:
                build jobs get pinned automatically to the worst CCX and I hope, that the scheduler simply avoids placing processes there if the system gets under pressure.
                I also got my prefcores, excluded from getting interrupted by irqbalance to keep interactive processes as performant as possible.

                Imho this is not a job for the user, but for the DE-devs and/or distributors.

                Comment

                Working...
                X