Hi, everyone.
I spent the morning trying to figure this all out, and I think I've gotten it. So the first part are the steps I took to get the AMD P-States driver for CPU scaling to work. The second part is a discussion on using this driver and the benefits, if any, of changing this over leaving the default Proxmox settings.
My systems:
node1:
Ok, here's how to get it working:
I'm not a pro, so I don't know the best mode to pick, and I haven't done any testing on this. All I know is the CPUs went from running at max frequency 100% of the time to running based on the load.
Thoughts? Also please point out any errors I made. Thanks!
				
			I spent the morning trying to figure this all out, and I think I've gotten it. So the first part are the steps I took to get the AMD P-States driver for CPU scaling to work. The second part is a discussion on using this driver and the benefits, if any, of changing this over leaving the default Proxmox settings.
My systems:
node1:
- Ryzen 9 5950X
- ASRock X570 Extreme 4 Motherboard
- 128GB ECC RAM
- OS drive: Mirrored 2TB NVMe SSD UEFI boot mode
- Ryzen 5 5600
- ASRock B550 Phantom Gaming ITX/ax Motherboard
- 64GB ECC RAM
- OS drive: Single 2TB NVMe SSD UEFI boot mode
Ok, here's how to get it working:
- Upgrade the kernel- apt install pve-kernel-5.19
- reboot
 
- Modify the kernel comandline- For UEFI booting systems: nano /etc/kernel/cmdline, for GRUB booting systems:/etc/default/grub- add these two commands on the same existing line, separated by a space:
- initcall_blacklist=acpi_cpufreq_init<-- Blocks the default CPU scaler and allows the amd_pstate driver to load
- amd_pstate.shared_mem=1<-- No idea what this does
 
- Now run proxmox-boot-tool refreshfor UEFI, orupdate-grubfor GRUB systems
- reboot
 
- For UEFI booting systems: 
- Check if it worked- /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
- You should see "amd-pstate"
 
- Set your desired scaling mode- Check the available modes: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
- Add a crontab line: crontab -e(you might have to choose and editor if it's the first time)
- Add the cronjob on a new line. Make sure to replace "powersave" with the desired mode- @reboot echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
 
- OR, add the setting to the kernel command line:- cpufreq.default_governor=powersave
- run proxmox-boot-tool refresh
 
- Reboot
 
- Check the available modes: 
- Check the results- To see the currently selected mode: cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
- To see what your CPU cores are running at: watch grep \"cpu MHz\" /proc/cpuinfo
 
- To see the currently selected mode: 
I'm not a pro, so I don't know the best mode to pick, and I haven't done any testing on this. All I know is the CPUs went from running at max frequency 100% of the time to running based on the load.
Thoughts? Also please point out any errors I made. Thanks!
			
				Last edited: 
				
		
	
										
										
											
	
										
									
								 
	 
	
 
 
		

