Announcement

Collapse
No announcement yet.

New Set Of 86 Patches Overhaul The Linux Kernel's Preemption Model

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

  • #11
    Originally posted by timofonic View Post
    This is a very interesting and ambitious project that aims to overhaul the Linux kernel's preemption model. The current model, which is based on the **Big Kernel Lock (BKL)**​
    It seems you're very out of date:



    This removes the implementation of the big kernel lock, at last. A lot of people have worked on this in the past, I so the credit for this patch should be with everyone who participated in the hunt.​


    January 26, 2011

    Phoronix article is completely wrong and contradicts itself:

    Ankur Arora of Oracle on Tuesday sent out a set of 86 patches for making the Linux kernel preemptible
    Linux kernel is fully preemptible and it's going to be an OVERHAUL like the article's title says: New Set Of 86 Patches Overhaul The Linux Kernel's Preemption Model

    Comment


    • #12
      Originally posted by Volta View Post

      It seems you're very out of date:






      Phoronix article is completely wrong and contradicts itself:



      Linux kernel is fully preemptible and it's going to be an OVERHAUL like the article's title says: New Set Of 86 Patches Overhaul The Linux Kernel's Preemption Model
      I'm sorry.

      How's going to overhaul it?

      Michael please fix the article

      Comment


      • #13
        Originally posted by timofonic View Post
        How's going to overhaul it?
        We'll see.

        Comment


        • #14
          Originally posted by RealNC View Post
          I'm not so worried about latency in gaming, but rather about those pesky frametime spikes and produce annoying single-frame hiccups.
          Look into BORE or PrjC-PDS/BMQ. I've been using both, PDS and BMQ, for a good year each, and they were a solid improvement over stock CFS with an otherwise identical kernel config. BORE, the one I switched to after, and have been using since kernel 6.1.0, turned out to be even better than that and receives support for new kernels sooner.

          Other stuff that may influence frametimes, is using the right window manager and settings for your specific HW. Generally speaking, Nvidia users (I don't know if that still holds true with the latest binary driver!) may want to use X11 and make sure they don't force a composition pipeline in the driver control panel or xorg.conf, while AMD users can get a better experience using wayland + gamescope. Kwin(wl) + gamescope has been great on my 6800XT so far.

          Gamemoded may also prove useful in order to boost the priority of the game's process and/or force GPU clockspeeds to stay high in order to lessen the impact of other running processes, aswell as work around rare cases, where the graphics driver doesn't properly detect that a game is running.

          There's also a bunch of advanced stuff possible in order to optimize the system further - i.e. reducing vm.swappiness (for starters, 20 should be a good value) and employing zswap (z3fold w/ zstd or lz4, max_pool_percent 1/4 to 1/3 of your RAM, accept_threshold 90) - this delays utilizing the disk/SSD to make up for a lack of RAM for as long as possible. You can also disable proactive memory reclaim by setting vm.watermark_boost_factor = 0 in sysctl, since that one turns out to be a common culprit for frametime issues.

          The liquorix/zen kernel should provide PDS and the stuff mentioned in the previous paragraph in a convenient bundle, if you don't want to fiddle with individual settings too much. It also contains a few patches to defuse proactive memory reclaim's negative performance implications further.

          Ofc you're also welcome to choose the insane route of curating an individual list of patches and building your own kernel with them, having the compiler tune the code for your specific CPU model and also utilizing LTO, disabling stuff like initializing memory and variables to zero on allocation/free, omitting side channel attack mitigations, … (the last two do have negative security implications!)
          Last edited by kiffmet; 08 November 2023, 09:31 PM.

          Comment


          • #15
            building your own kernel with them, having the compiler tune the code for your specific CPU model
            I've always had the best results in cpu benchmarks while optimizing no further than X86_64_V4 on a ZEN3 5950X.

            Comment

            Working...
            X