[Low Priority] Need help with: Zenergy, Gamemode 1.8.1 Core Parking

Hello
I’m new to CachyOS (started on 6.9) and have 2 (low priority) problems:

  1. Cannot install Zenergy. It cannot build with this error:
/home/tea/Downloads/zenergy-dkms-git/src/zenergy/zenergy.c: In function ‘amd_create_sensor’:
/home/tea/Downloads/zenergy-dkms-git/src/zenergy/zenergy.c:229:27: error: ‘struct cpuinfo_x86’ has no member named ‘x86_max_cores’
  229 |         sockets = cpus / c->x86_max_cores;

I could easily build this in Nobara (6.8.2 I think or 6.7…)

  1. Gamemode 1.8.1 has a “Core Pinning/Core Parking” feature for newer CPUs. For my 7900X3D on Nobara core pinning did not increase FPS at all (although it worked) yet on CachyOS it is actually working! Yet if I go to BIOS and disable CCD1, it is even faster than Core Pinning. Core Parking is supposed to do this but it is not working (it did not work on Nobara either…). How can I either make it work or is there a command to disable CCD1 using Konsole?

Thank you!

Hi,

Welcome to CachyOS.

  1. You need to report this upstream, since they need to adjust this for the 6.9 Kernel.
  2. Actually, the Scheduler is most time smart enough. Also the kernel has the “amd preffered core” default enabled and should correctly handle this properly.
    you can make cpus offline via hotplug, but I wouldnt suggest it. Anyways, instead of using gamemode, you can put on steam in the command line for example: taskset -c 0-11 %command%. This result into that the game will only use the first ccd for the game but for other tasks the other cores will be still available.
1 Like

Thank you for your help…
I was about to report issue in Zenergy but noticed there were 3 changes for kernel 6.9 already in past 2 days so it works now!

Regarding Gamemode, unfortunately non of these settings (taskset, gamemode, default kernel performance…) can give performance equal to ccd1 disabled:

Outer Wilds main menu lowest resolution (640x350)

  • no Gamemode: 880 to 910 fps
  • Gamemode Core Pinning: 900 to 1013 fps
  • taskset -c 0-5,12-17: 900 to 980 fps (my lstopo)
  • BIOS → CCD1 disabled: 1290 to 1360 fps
  • hotplug: actually I was afraid to use this :D‌ can I simply use this in terminal safely?

so this is why I was interested in making park core ability of gamemode work…

Probably this is then some internal scheduling handling.
Related to taskset:
This does not seem correct to me, since only the CCD 0 has the 3D Cores.
Actually this would be then:
taskset -c 0-11 (in case you have a 7900X3D)

Pinning via gamemode: it actually does (probably) the same as taskset

Hotplug: Yes, you can just make the CPUs offline and offline via a start script for example.

so this is why I was interested in making park core ability of gamemode work…

My guess would be that it works, but proton/wine does not handle it correctly.

If you look at my lstopo it is cores 0 to 5 and threads 12 to 17 that have higher cache… actually gamemode core pinning is also using the same cores (0-5,12-17)…
I shall try with Hotplug and update this since I have no idea how to make gamemode core parking work…
Thank you !

btw I tested this too it resulted to 790 to 850 fps. I use mangohud core_load to see frequency of all threads and 3d v-cache cores are mostly 5 GHz while other cores are 5.2 GHz (0-5 were 5 GHz and 6-11 were 5.2 GHz)…

I just used Hotplug and it is same performance as CCD1 disabled through BIOS! Thank you very much ptr1337!
There wasn’t a way to disable a CCD. I had to manually disable 12 threads (sudo didn’t work btw, had to be in su mode):

echo 0 > /sys/devices/system/cpu/cpu6/online
...
echo 0 > /sys/devices/system/cpu/cpu11/online
echo 0 > /sys/devices/system/cpu/cpu18/online
...
echo 0 > /sys/devices/system/cpu/cpu23/online

but no longer need to go to BIOS!
thanks again!

1 Like

Glad that it worked like that!

Yes, the best would be to just run a script to make the cpu’s offline/online when starting games.

1 Like