Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intel Core Ultra (Lunar Lake/Meteor Lake) EPP Power Profiles #2000

Open
hanthor opened this issue Dec 3, 2024 · 5 comments
Open

Intel Core Ultra (Lunar Lake/Meteor Lake) EPP Power Profiles #2000

hanthor opened this issue Dec 3, 2024 · 5 comments

Comments

@hanthor
Copy link

hanthor commented Dec 3, 2024

I'm exploring the power savings from using the EPP profiles Intel has written ( think because theuy didn't have time to get these added to the kernel) https://www.intel.com/content/www/us/en/developer/articles/tool/epp-tuning-package-linux.html

Here are the changes Intel make in the tuned profiles (performance and powersave) I used to these to verify the power settings and set them to Intel's preferred values

#!/bin/bash

#get current power prof setting
n=$(nproc)
i=0
while [ "$i" -lt $n ]; do
	cat  /sys/devices/system/cpu/cpu$i/cpufreq/energy_performance_preference
	cat  /sys/devices/system/cpu/cpu$i/power/energy_perf_bias
	i=$(( i + 1 ))
done 

#Set to Intel Core Ultra Powersave EPP
n=$(nproc)
i=0
while [ "$i" -lt $n ]; do
	echo 178 | sudo tee  /sys/devices/system/cpu/cpu$i/cpufreq/energy_performance_preference
        echo 8 | sudo tee  /sys/devices/system/cpu/cpu$i/power/energy_perf_bias
        i=$(( i + 1 ))
done

#return to Vanilla powersave
n=$(nproc)
i=0
while [ "$i" -lt $n ]; do
        echo "balance_performance" | sudo tee  /sys/devices/system/cpu/cpu$i/cpufreq/energy_performance_preference
        echo 6 | sudo tee  /sys/devices/system/cpu/cpu$i/power/energy_perf_bias
        i=$(( i + 1 ))
done

#set to Intel Core Ultra Performance EPP
n=$(nproc)
i=0
while [ "$i" -lt $n ]; do
	echo 64 | sudo tee  /sys/devices/system/cpu/cpu$i/cpufreq/energy_performance_preference
	i=$(( i + 1 ))
done 


#Return to Vanilla Performance  
n=$(nproc)
i=0
while [ "$i" -lt $n ]; do
	echo "balance_performance" | sudo tee  /sys/devices/system/cpu/cpu$i/cpufreq/energy_performance_preference
	i=$(( i + 1 ))
done     

@hanthor
Copy link
Author

hanthor commented Dec 3, 2024

I'm doing 15 min of a 4k youtube video

Vanilla powersave
55% --> 45%

10%

Intel powersave
62% --> 56%

6%

@castrojo looks like it really is ~40% powersavings on video playback

@hanthor
Copy link
Author

hanthor commented Dec 3, 2024

Looks like these were added to the kernel at some point https://lore.kernel.org/lkml/[email protected]/

@castrojo
Copy link
Member

castrojo commented Dec 3, 2024

I think it'll live in an hwe image somewhere and not directly in bluefin (bazzite will probably need this too), m2/bsherman will know where to put it.

@hanthor
Copy link
Author

hanthor commented Dec 5, 2024

the addition for these settings for Meteor Lake are here: https://github.com/torvalds/linux/blame/feffde684ac29a3b7aec82d2df850fbdbdee55e4/drivers/cpufreq/intel_pstate.c#L3660

These should already be set in stable and stable-daily

Lunar Lake doesn't have any EPP profile set. in the kernel rn

@hanthor
Copy link
Author

hanthor commented Dec 5, 2024

I have a service and script to set these profile automatically here: https://github.com/hanthor/intelepptesting

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants