Announcement

Collapse
No announcement yet.

XanMod, Liquorix Kernels Offer Some Advantages On AMD Ryzen 5 Notebook

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

  • #21
    Lenovo IdeaPad with Ryzen 5 5500U (Zen 2) processor
    Lucienne vs Cezanne and their model numbers seems like an Intel move that AMD is pulling now. I am not impressed.

    Comment


    • #22
      Originally posted by Linuxxx View Post
      I totally understand Michael's reasoning for testing only the defaults, but when all of the upstream kernels are defaulting to "schedutil" while all of the custom ones default to the "performance" CPU governor, that still renders these benchmarks mostly useless, unfortunately!

      Well, if anything, this round of testing actually shows how far 'schedutil' has advanced on AMD hardware, so that's definitely a plus for the Linux kernel as a whole!
      +1. It does make sense to have tests that compare the out-of-the-box performance of different distributions. However when comparing the performance of custom kernels, then there is no point in having numbers that might be the result of just using the "performance" governor. Especially since changing to the performance setting is much easier than installing a custom kernel.

      Perhaps it is different for silent subscribers, but most active posters here seem to be very capable of setting the CPU governor to "performance".

      Personally, I don't care about tests using different defailt governors at all. I'm only interested in tests that all use the same governor. Or that have an additional entry for the performance mode, in addition to the default mode. From my point of view, the extreme dominance of tests using different default governors is the single factor that greatly limits the usefulness of the tests on this site.

      It hides the benefit of technologies that truely improve performance and/or power consumption, since these benefits get lost in the noise of different defaults.

      Comment


      • #23
        Originally posted by ms178 View Post

        Just benched my customized vanilla 5.12.19 + Speculative page faults patchset + march=native and some other fancy flags against a Ubuntu standard Kernel: 86 fps vs. 39 fps, with the same custom Mesa and libdrm for each setup, the game is Company of Heroes 2.
        Did you by any chance do a breakdown of where the bulk of the perf improvement was coming from? Or if it were bits here and there?

        Comment


        • #24
          Linux 5.13.5 out last sunday brings few commits about network.
          Compiled this morning, I never see my computer with a such reactivity on network communication. Maybe it should be interesting to test again with this particular kernel version

          Comment


          • #25
            btw the easiest way to set the scheduler to performance is to start the phoronix test suite by

            $ gamemoderun phoronix-test-suite ....

            of course you have to have gamemode installed.

            Comment


            • #26
              Originally posted by CochainComplex View Post
              btw the easiest way to set the scheduler to performance is to start the phoronix test suite by

              $ gamemoderun phoronix-test-suite ....

              of course you have to have gamemode installed.
              Not quite as easy, however works without installing anything: (Unlike gamemode, it changes only the CPU governor)

              $ sudo echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

              Comment


              • #27
                Originally posted by indepe View Post

                Not quite as easy, however works without installing anything: (Unlike gamemode, it changes only the CPU governor)

                $ sudo echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
                you are right gamemode indeed has some additional stuff activated..for some reason I tend to think always only about the cpu gov.

                Comment


                • #28
                  Ok guys, the Ubuntu kernel build script is ready to go.

                  EDIT:

                  *read first* If this is your first time reading this post, you can safely ignore this edit and move on to the post. For everyone else, I made some improvements to the script, as well fixed a huge oversight with building in amdgpu. It should have been /lib/firmware/ not /lib/firmware. I noticed when I built my own and it took 30 seconds longer to boot up (it couldn't find the blobs probably) and the desktop behaved strangely. Apologies for that oversight, made the mistake right at the end when I was pushing it out. Tested it out this time, and all is good.

                  Here are the changes to that first alpha version and this new one in case you're curious: https://www.diffchecker.com/HFt0DXEV

                  The configs have been fixed too, I apologize for that oversight also, I was in a huge rush to get everything out, and there were a couple things I had missed. All is well now, just delete your old ~/kernel_main and let it start over this one time. Then go ahead and just add your own changes on top of that. Ok, that's it for now. You can see all the commits here if you're interested. Lastly, I'll get that readme going soon, wanted to work out the wrinkles first. Only shared the script with you guys. Cheers.

                  Lastly, the 5.4 LTS kernels now automatically use -march=native. The 5.13 kernels are a bit more involved since MNATIVE_INTEL and MNATIVE_AMD instead of just MNATIVE. But a future version of the script should handle it so it detect if you have an amd or intel cpu and do it for you. Ok that's it for now, cheers. Get compiling and send any feedback my way.

                  /end edit

                  ---

                  As always, you should review the script before running (or even run in a VM) but this script's defaults are safe and won't damage anything.

                  You can see the raw script here on GitHub: build_kernel.sh

                  GIF of it running: https://imgur.com/RN4nHsC

                  Steps to build your kernel:

                  $ cd Downloads (or anywhere you want to clone the repo)
                  $ git clone <this repository>
                  $ cd build-ubuntu-kernel
                  $ ./build_kernel.sh

                  Some notes:

                  - Supported kernels: 5.4 LTS / 5.10 LTS / 5.13 EOL / 5.14 / 5.15-rc

                  - Supports -rt (real-time kernels), as well as idle and full tickless.

                  - Script will automate every single thing, except the prerequisites for building the kernel. You should be able to find that online, or reach out to me if something is missing and I can help you track it down.

                  - If you are already compiling your kernel, shouldn't need to do anything except ./build_kernel.sh

                  - By default, the kernel workspace is ~/kernel_main. I opted against ~/kernel in case you guys are already using it. Feel free to use whatever you want.

                  - The directory that you cloned is where you want to run the build script. ~/kernel_main will house the compiled .deb's, build directory, source tarballs, and also the configs/patches including xanmod and lucjan, all automated.

                  - The script has safe defaults that can all be overridden.

                  The default ./build_kernel.sh will build:

                  (Updated October 16, 2021)

                  - Latest 5.4.153 LTS kernel
                  - CFS scheduler
                  - 1000 HZ Idle Tickless

                  See commit messages for more instructions as they change per kernel version.

                  For 5.4:
                  -march=native is built in

                  For 5.14
                  - Generic x86_64 optimizations (AMD and Intel users will need to select MNATIVE_INTEL or MNATIVE_AMD. I have Haswell so I have it set to MNATIVE_HASWELL.
                  - Note: to search when you're in the menuconfig, type forward slash ( / ) and then you can search for anything. Escape will exit. Hitting "H" will show the help for each option in the menuconfig.

                  - Ubuntu splits up the config files into parts. As you know, they offer -generic and -lowlatency. I only use -generic, but as a low-latency kernel. When you're asked if you want to edit the Low Latency config by ubuntu's own script, you can just say "n" .. I might in a future version build both the generic and low-latency but it's unnecessary for me so I haven't done that yet.

                  To build 5.14 with CacULE instead of CFS:

                  KERNEL_SCHEDULER=cacule KERNEL_BASE_VER=5.14 KERNEL_PATCH_VER=5.14.12 KERNEL_SUB_VER=051412 ./build_kernel.sh

                  For AMD GPU users, you'll want AMDGPU builtin preferably, and also I suggest the 5.4 kernel. Runs great:

                  AMDGPU_BUILTIN=yes ./build_kernel.sh

                  Supports all AMD gpus in /lib/firmware.

                  VirtualBox support needs something additional, it's included in the script, just pass it:

                  VBOX_SUPPORT=yes ./build_kernel.sh

                  For -rt (real-time kernels):

                  For kernel 5.14: KERNEL_TYPE=rt KERNEL_BASE_VER=5.14.2 KERNEL_PATCH_VER=5.14 KERNEL_SUB_VER=051402 ./build_kernel.sh

                  For kernel 5.4: KERNEL_TYPE=rt KERNEL_PATCH_VER=5.4.143 KERNEL_SUB_VER=0504143 ./build_kernel.sh

                  Full Tickless

                  For full tickless, pass KERNEL_TYPE=full in the script, otherwise idle tickless will be used.

                  I'm gonna update the readme on the repo soon, but for now this should be good enough to get going.

                  EDIT: sysctl.conf, GRUB parameters, and ClearLinux CFLAGS if anyone wants to take a little of something from each that they see fit.

                  I think that's everything. Start compiling!!
                  Last edited by perpetually high; 16 October 2021, 10:41 PM.

                  Comment


                  • #29
                    I don't think those benchmarks are all that meaningful for kernels that optimize desktop and interactive workloads. More interesting would be testing for latency and responsiveness with various kinds of loads in the background. Who runs a DB server with those kernels?

                    Personally, I use -ck plus a bunch of other patches like the recent le9 stuff. -ck replaces most timers in the kernel with higher resolution timers and combined with some tuning of scheduler time slices and timer granularity it gives very good results. Easily measurable with objective benchmarks (rt-bench or what it's called), too.

                    Comment


                    • #30
                      perpetually high nice work! My PC is already compiling - but Im not sure If i can check it out today completelly.

                      How about opening a tuning corner somewhere in a forum corner?

                      Here I want to start a thread about tuning Linux kernels. Where we can collect and share infos/data and of course bench results of our builds. E.g. Exploring the influence of different compilersuites, checking out compiler flags or/and making use of LTO/PGO....etc.


                      Havent got mine ready..quite busy this days.

                      Comment

                      Working...
                      X