cyring / CoreFreq

CoreFreq : CPU monitoring and tuning software designed for 64-bit processors.
https://www.cyring.fr
GNU General Public License v2.0
1.97k stars 126 forks source link

Performance mode? #349

Closed gel-crabs closed 2 years ago

gel-crabs commented 2 years ago

Is there an equivalent to CPUFreq's performance mode with CoreFreq (Essentially forcing max all-core frequency)? I have CPUFreq turned off so CoreFreq can replace it.

I am running Ryzen, Zen+ if that makes a difference. Thank you

cyring commented 2 years ago

Is there an equivalent to CPUFreq's performance mode with CoreFreq (Essentially forcing max all-core frequency)? I have CPUFreq turned off so CoreFreq can replace it.

I am running Ryzen, Zen+ if that makes a difference. Thank you

350

gel-crabs commented 2 years ago

If anybody is wondering, I found out how to do so. cpupower idle-set -D 1 to enable it, cpupower idle-set -E to disable it.

cyring commented 2 years ago

But CoreFreq is providing the same.

Performance is tunable through /sys Just dig to find them.

If not enough kernel parameters provides performance hints

When registered as OS CPU-Freq (see Readme), driver maintains hardware registers coherency, wherever the change comes from sys ; UI

I've explain these many times in Issues and Wiki and I won't answer about cpu_tools

As usual I need your issue with CoreFreq outputs and screenshots for your use case purpose.

gel-crabs commented 2 years ago

The cpupower command disables all idle states through CPU-Idle and forces all cores to max all-core frequency. It doesn't involve CPUFreq.

My use-case is for gaming, some games (such as Garry's Mod) aren't very good at telling the OS when it needs work done. I'm using those commands through GameMode so it resets back to normal when I'm not gaming.

cyring commented 2 years ago

The cpupower command disables all idle states through CPU-Idle and forces all cores to max all-core frequency. It doesn't involve CPUFreq.

My use-case is for gaming, some games (such as Garry's Mod) aren't very good at telling the OS when it needs work done. I'm using those commands through GameMode so it resets back to normal when I'm not gaming.

Are you aware about this mode:

insmod corefreqk.ko Register_CPU_Idle=1

And there are other P-states you can combine.

Every thing you tune from UI can be permanently set to driver.

cyring commented 2 years ago

See use case at https://github.com/cyring/CoreFreq/discussions/345#discussioncomment-2989565

gel-crabs commented 2 years ago

The cpupower command disables all idle states through CPU-Idle and forces all cores to max all-core frequency. It doesn't involve CPUFreq. My use-case is for gaming, some games (such as Garry's Mod) aren't very good at telling the OS when it needs work done. I'm using those commands through GameMode so it resets back to normal when I'm not gaming.

Are you aware about this mode:

insmod corefreqk.ko Register_CPU_Idle=1

And there are other P-states you can combine.

Every thing you tune from UI can be permanently set to driver.

  • Turbo and Target P-states
parm:           Ratio_Boost:Turbo Boost Frequency ratios (array of int)
parm:           Ratio_PPC:Target Performance ratio (int)

I'm using Register_CPU_Idle=1, I have it governing everything

Thank you for the explanation of Ratio_PPC, are the kernel parameters on-the-fly? I'm not setting this permanently

cyring commented 2 years ago

Thank you for the explanation of Ratio_PPC, are the kernel parameters on-the-fly? I'm not setting this permanently

Ratio_PPC like all corefreq.ko parameters are applied during driver startup

On-the-fly, when properly registered, you change through the /sys/.../cpu/corefreq/.../param (plz find your path) You should find ratios within tree. some are Read-Write, others R/O.

My SysFS implementation has the advantages to check prerequisites and to aggregate results whenever you alter hardware features. Changes are dynamically visible in the UI and vice versa.

gel-crabs commented 2 years ago

Thank you. Is there a way to change Kernel Data -> Idle Limit on the fly (via a command)?

https://imgur.com/a/O0dRpuA

gel-crabs commented 2 years ago

Also should I close this?

cyring commented 2 years ago

echo $limit > /sys/

Once changed, just press the* shortkey in the UI to invoke a full refresh.

https://github.com/cyring/CoreFreq/discussions