tl;dr large gaming performance over stock CPU scheduler when there is a heavy CPU task running in background

Obviously, they only tested one game and it may not apply everywhere or hurt performance/latency in some cases.

One thing I wasn’t aware of is that sched-ext/ePBF supports changing CPU schedulers on-the-fly, which takes away one of the downsides of third-party schedulers. I.e. you can use the stock scheduler most of the time, but then switch to a third party scheduler for specific workloads. So less of a downside risk.

Finally, none of this is merged yet (including sched-ext) so it’s out of reach if you are just using the stock kernel.

  • ono
    link
    fedilink
    English
    2610 months ago

    Seems like a weird headline. AFAIK, the language it’s written in has nothing to do with the performance.

      • @Kittenstix
        link
        English
        210 months ago

        Which came first the language or the game? Cause I’ve read a few headlines that confused me not realizing there was a language named rust.

        • @merthyr1831
          link
          English
          410 months ago

          Language was released 2015 (started in 2006), Game was released 2018,

      • @merthyr1831
        link
        English
        010 months ago

        This is more just an example of Phoronix being Phoronix than rust fanboyism tbf

    • Captain Janeway
      link
      English
      610 months ago

      I wouldn’t be surprised if this was essentially just a common result of refactoring code. Rust might help compile to more efficient C than the stuff people write on their own? But my code is always more performant after a refactor. Surely writing this in another language would cause someone to look deeper at the choices being made during development. Even the scheduler might have some technical debt.

      • @Curdie
        link
        English
        1010 months ago

        The main improvement Rust provides is memory safety. It’s very easy to make mistakes in C where you could overrun a buffer or something, introducing unexpected crashing and making it vulnerable to exploitation by malware or whatever. Rust eliminates a whole category of issues with their clever memory management paradigm. The improvements in this schedule probably have more to do with the strategy used than code efficiency.

        • @surewhynotlem
          link
          English
          2
          edit-2
          10 months ago

          Didn’t we already do that with c++ and c#? Is rust just c++++?

          • @Curdie
            link
            English
            310 months ago

            C and Rust are low level languages, suitable for interacting directly with the hardware. C++ might be described as C with some object oriented stuff bolted on, making it excellent for videogame development. C# is a lot more like Java. It’s great for line of business apps because it handles the complexity of memory management for you and provides an excellent framework and excellent libraries for a lot of common tasks. But it’s not suitable for low level work.

      • ono
        link
        fedilink
        English
        5
        edit-2
        10 months ago

        Linux has quite a few schedulers. The performance of this new one is almost certainly a result of different algorithms used, not an effect of refactoring the existing ones, nor the language it’s written in.

        I don’t think I’ll dig in to the code just now, but if it turns out to have much practical value, perhaps we’ll eventually see an article about the design.

        • @[email protected]
          link
          fedilink
          English
          110 months ago

          Yeah, a scheduler just decided which processes get CPU time and takes up a very small part of total execution time. So yeah, I wouldn’t expect compiler optimizations to matter much.