Coder Social home page Coder Social logo

kitsunyan / intel-undervolt Goto Github PK

View Code? Open in Web Editor NEW
908.0 32.0 67.0 115 KB

Intel CPU undervolting and throttling configuration tool

License: GNU General Public License v3.0

Makefile 3.27% C 96.11% Shell 0.62%
linux intel undervolt tdp temperature 2518

intel-undervolt's Introduction

intel-undervolt

intel-undervolt is a tool for undervolting and throttling limits alteration for Intel CPUs.

Undervolting works on Haswell and newer CPUs and based on the content of this article.

Disclaimer

This tool may damage your hardware since it uses reverse engineered methods of MSR usage. Use it on your own risk.

Building and Installing

Run ./configure && make && make install to build and install intel-undervolt to your system.

You can also configure the following features:

  • --enable-systemd — systemd support (intel-undervolt service and intel-undervolt-loop service)
  • --enable-elogind — elogind support (intel-undervolt system-sleep script)
  • --enable-openrc — OpenRC support (intel-undervolt-loop service)

Configuration

You can configure parameters in /etc/intel-undervolt.conf file.

Undervolting

By default it contains all voltage domains like in ThrottleStop utility for Windows.

The following syntax is used in the file: undervolt ${index} ${display_name} ${undervolt_value}. For example, you can write undervolt 2 'CPU Cache' -25.84 to undervolt CPU cache by 25.84 mV.

Power Limits

power package ${short_term} ${long_term} can be used to alter short term and long term package power limits. For example, power package 35 25.

You can also specify a time window for each limit in seconds. For instance, power package 35/5 25/60 for 5 seconds and 60 seconds respectively.

Temperature Limit

tjoffset ${temperature_offset} can be used to alter temperature limit. This value is subtracted from max temperature level. For example, tjoffset -20. If max temperature is equal to 100°C, the resulting limit will be set to 100 - 20 = 80°C. Note that offsets higher than 15°C are allowed only on Skylake and newer.

Energy Versus Performance Preference Switch

Energy versus performance preference is a hint for hardware-managed P-states (HWP) which is used for performance scaling.

For instance, with performance hint my i7-8650U is able to run at 4.2 GHz, and overall CPU performance appears to be higher, but the clock speed is always locked to 4.2 GHz unless multiple cores are loaded or CPU is throttled. With balance_performance hint, CPU increases the clock speed only under load but never goes higher than 3.9 GHz, but performance of integrated GPU is significantly better at the same time.

intel-undevolt is able to change HWP hint depending on the load, which allows to achive either better performance or better battery life. This feature is available in daemon mode only which will be described below. The following syntax is used to configure HWP hint: hwphint ${mode} ${algorithm} ${load_hint} ${normal_hint}.

For instance, if I want to get high CPU and GPU performance from AC, I need to set performance hint when CPU is under load but GPU isn't (performance hint reduces GPU performance in my case). Hint switching can be configured depending on power consumption of core and uncore: hwphint switch power:core:gt:8:and:uncore:lt:3 performance balance_performance. intel_rapl module is required to measure power consumption.

To get a better battery life, clock speed can be reduced until CPU is under continuous high load, which will hold the lowest CPU speed most of the time. Hint switching can be configured depending on the CPU load: hwphint switch load:single:0.90 balance_power power.

Multiple hwphint switch rules can be used, the hint will be selected depending on current hint, which can be configured by another tool (e.g. tlp). You can use hwphint force rule to set the hint independently, but only one rule can be declared in this case.

Usage

Applying Configuration

Run intel-undervolt read to read current values and intel-undervolt apply to apply configured values.

You can apply your configuration automatically enabling intel-undervolt service. Elogind users should pass yes to enable option in intel-undervolt.conf.

Measuring the Power Consumption

intel_rapl module is required to measure the power consumption. Run intel-undervolt measure to display power consumption in interactive mode.

Daemon Mode

Sometimes power and temperature limits could be reset by EC, BIOS, or something else. This behavior can be suppressed applying limits periodically. Some features like energy vesus performance preference switch work in daemon mode only. Use intel-undervolt daemon to run intel-undervolt in daemon mode, or use intel-undervolt-loop service. You can change the interval using interval ${interval_in_milliseconds} configuration parameter.

You can specify which actions daemon should perform using daemon configuration parameter. You can use once option to ensure action will be performed only once.

intel-undervolt's People

Contributors

felixonmars avatar johnf avatar kitsunyan avatar valpackett avatar xulongwu4 avatar yvesh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

intel-undervolt's Issues

Feature request: measure only once

Hi, I think it would be really nice if there is a command-line option to do measurement only once instead of current intel-undervolt measure, so the results printed can be easily used in scripts or by other programs.

Currently I'm developing a GUI frontend based on this program, and directly obtaining measurement results from intel-undervolt can help a lot. And maybe this function can also help other users.

Hwphint stacking

First of all thanks for this great tool. I use this tool for a Thinkpad Extreme to tune it to be as quiet as possible but still be performant if needed in a more long term sense (several seconds)

I have something like this defined in the conf:

hwphint switch load:multi:4.00 balance_performance power

There is mentioned it might be possible to have multiple instructions like this. I would like to fine tune this a bit more, however I can not use this:

hwphint switch load:multi:1.00 balance_performance power
hwphint switch load:multi:4.00 balance_power balance_performance

Also following things came in my mind:

  1. For testing it would be nice to see in a action log when a switching is performed.
  2. The documentation is very "dense", it is not easy to understand the power rules. What is a short_power_value and what is a long_power_value? Maybe some more examples would be helpful.
  3. How can I see the undervolt really taking place? Which monitoring tools are recommended?
  4. What exactly are the two different services good for? Might it be possible to combine them or is this a distro thing here in my Ubuntu?

Values do not equal error

Hi!

When I use:
sudo intel-undervolt apply

I always get the same error:

CPU (0): Values do not equal
GPU (1): Values do not equal
CPU Cache (2): Values do not equal
System Agent (3): Values do not equal
Analog I/O (4): Values do not equal

And if I read after that command I get:

CPU (0): -0.00 mV
GPU (1): -0.00 mV
CPU Cache (2): -0.00 mV
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

And my intel-undervolt.conf is:

undervolt 0 'CPU' -5.0
undervolt 1 'GPU' -5.0
undervolt 2 'CPU Cache' -5.0
undervolt 3 'System Agent' -5.0
undervolt 4 'Analog I/O' -5.0

My cpu is i5-8250U

Error during Make

Hello I am running Ubuntu 18 but when I try to make this error comes up. Any ideas what causes it? When running make %% make install i get the same problem

user@user-Link:~/intel-undervolt$ make gcc -lm -o intel-undervolt config.o main.o main.o: In function tdp_to_seconds':
main.c:(.text+0x4da): undefined reference to exp2f' main.o: In function tdp_from_seconds':
main.c:(.text+0x515): undefined reference to log2f' main.c:(.text+0x58e): undefined reference to log2f'
main.o: In function tdp': main.c:(.text+0x798): undefined reference to exp2f'
main.c:(.text+0x7df): undefined reference to exp2f' collect2: error: ld returned 1 exit status Makefile:18: recipe for target 'intel-undervolt' failed make: *** [intel-undervolt] Error 1

Thank you

Add new release tag

The lastest 4 commits aren't in any version, but I think the code could be considered as fairly stable. I would appreciate it, if you could add the latest commits to a 1.7 git tag, since I plan to pack this for debian.

Input/output error

Using Ubuntu 20.04.1 LTS with 5.4.69-xanmod1 kernel. I have i5-2430M with Intel HD Graphics 3000.

v30xy@akaBedir:~/Masaüstü/undervolt$ sudo intel-undervolt apply
CPU (0): Input/output error
GPU (1): Input/output error
CPU Cache (2): Input/output error
System Agent (3): Input/output error
Analog I/O (4): Input/output error

Values do not equal & Failed to start undervolt service

Hi,
Since a few kernel updates ago (now on Linux nk-zbook 5.5.2-1-MANJARO #1 SMP PREEMPT Tue Feb 4 19:22:35 UTC 2020 x86_64 GNU/Linux) I am having an issue undervolting my HP Zbook Studio Mobile system (i7 8750h).
Any idea how to fix?
Cheers

CPU (0): Values do not equal
GPU (1): -0.00 mV
CPU Cache (2): Values do not equal
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

my config

undervolt 0 'CPU' -150
#undervolt 0 'CPU' 0
undervolt 1 'GPU' 0
undervolt 2 'CPU Cache' -150
#undervolt 2 'CPU Cache' 0
undervolt 3 'System Agent' 0
undervolt 4 'Analog I/O' 0

Can't execute "systemctl enable --now intel-undervolt-loop.service"

When I try to run systemctl enable --now intel-undervolt-loop.service it returns:

"Synchronizing state of intel-undervolt-loop.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable intel-undervolt-loop
update-rc.d: error: intel-undervolt-loop Default-Start contains no runlevels, aborting."

This seems to result in me being unable to use the service, so only the main command and daemon have any degree of persistence.

Values not applied on start

I am running Linux Manjaro 4.19 and I was wondering how I can automatically start intel-undervolt on start?
I put in the correct values in intel-undervolt.conf, but it doesn't look like these are automatically applied during start.

Operation not permitted

Hello there,

Installing went fine, issue is that I can't issue these commands:
sudo intel-undervolt read or sudo intel-undervolt apply

They both give me this as response:

CPU (0): Operation not permitted
GPU (1): Operation not permitted
CPU Cache (2): Operation not permitted
System Agent (3): Operation not permitted
Analog I/O (4): Operation not permitted

Altough sudo intel-undervolt measure is just fine.
Secureboot is disabled.
CPU: i7-4710HQ

Intel undervolt prevents shutdown

Hi, I am on Arch Linux and I cannot shutdown because of this error:

Failed to reboot system via logind: Transaction for reboot.target/start is destructive (intel-undervolt.service has 'start' job queued, but 'stop' is included in transaction).
Failed to talk to init daemon.

Here is the output of systemctl status intel-undervolt:

● intel-undervolt.service - Intel Undervolt Service
     Loaded: loaded (/usr/lib/systemd/system/intel-undervolt.service; enabled; vendor preset: disabled)
     Active: inactive (dead

Cant build with proper build flags on Fedora

Version 1.6 builds and works fine but new one 1.7 wont built with default Fedora flags.

gcc -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o intel-undervolt config.o measure.o main.o modes.o power.o scaling.o stat.o undervolt.o util.o -lm
/usr/bin/ld: config.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: measure.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: main.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: modes.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: power.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: scaling.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: stat.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: undervolt.o: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: util.o: relocation R_X86_64_32 against `.bss' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status

Operation not permitted

When reading or applying undervolt settings I get operation not permitted
heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ sudo intel-undervolt read CPU (0): Operation not permitted GPU (1): Operation not permitted CPU Cache (2): Operation not permitted System Agent (3): Operation not permitted Analog I/O (4): Operation not permitted heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ sudo intel-undervolt apply CPU (0): Operation not permitted GPU (1): Operation not permitted CPU Cache (2): Operation not permitted System Agent (3): Operation not permitted Analog I/O (4): Operation not permitted
Trying without sudo and I get:
heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ intel-undervolt apply Failed to open MSR device: Permission denied Failed to setup the program heylon@heylon-Lenovo-IdeaPad-S145-15IWL:~/git/intel-undervolt$ intel-undervolt read Failed to open MSR device: Permission denied Failed to setup the program
Not sure what's the issue
Installed as per instructions on Ubuntu 19.10 running on a laptop with an Intel i7-8565U

intel-undervolt daemon doesn't help persist settings

Steps:

  1. Arch linux, enabled both services:
systemctl enable --now intel-undervolt-loop.service
systemctl enable --now intel-undervolt.service
  1. Verify both services are healthy and the daemon is running:
ps ax | grep intel-under
3477 ?        Ss     0:00 /usr/bin/intel-undervolt daemon
  1. intel-undervolt apply
  2. intel-undervolt read yields correct settings
  3. Wait for some time. 20 mins or so...
  4. intel-undervolt read yields zero settings

No reboot was done in the process.

Analog I/O is now iGPU Unslice

First of all, thank you for your work. I've been using your package for some weeks now and its been working great on my Arch setup.

Some months ago, though, Throttlestop`s author unclewebb spotted an issue with the labeling of the planes in the program. For newer architectures, "System Agent" was actually setting the iGPU Unslice plane, whereas "Analog I/O" was the one setting the System Agent plane. See his post from last august:

http://forum.notebookreview.com/threads/the-throttlestop-guide.531329/page-839#post-10779703

He indeed fixed that in Throttlestop, given that "Analog I/O" no longer exists and was replaced with "iGPU Unslice" on newer versions.

I'm not sure if you were aware of that. But seeing "Analog I/O" as a plane in intel-undervolt.conf makes me wonder whether that is something you should revise too, or at least make sure the labelings were adjusting the correct planes underneath.

Regards.

Setting CPU and GPU not working

I have a Thinkad E590 running Ubuntu 18.04 LTS + Intel i3 8145
The setting does seem to work, but the values are not taken into account by my system:

For exemple this Dumb value may be set :
undervolt 0 'CPU' -800.84
undervolt 1 'GPU' -800.84
undervolt 2 'CPU Cache' -100.84
undervolt 3 'System Agent' -120.84
undervolt 4 'Analog I/O' -120.84

Obviousely -800mv seems impossible, but all seem to go find and the read command "reads" the bios values as setted correctly...

Only the 'CPU Cache' value seems to do something, since when I play below - 100 mW it crashes my system.
I am running a 3D game to do the tests

libelogind not found, cant install service, ubuntu 19.04

Hi, On ubuntu 19.04, after ./configure, I got

Package libelogind was not found in the pkg-config search path.
Perhaps you should add the directory containing `libelogind.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libelogind' found
Enable systemd: false
Enable elogind: false
Enable OpenRC: false

So no systemd services are installed. Can you push me in right direction?

Failed to set GPU settings

First: Thank you a lot for the work. i love the tool.

But:
I cannot set any value apart from the CPU voltage:

> sudo intel-undervolt apply
CPU (0): -70.31 mV
Failed to write value for GPU (1)
Failed to write value for CPU Cache (2)
Failed to write value for System Agent (3)
Failed to write value for Analog I/O (4)

When looking into your source i see, that you are calling the tools: ioutils and regval
Are those dependencies? Do you know where i can install them on archlinux?

Value Not Equal, is the value set?

Hello, Whenever I set the analog IO to other value than -0, it will give value do not equal. Is this mean the configuration failed or it's just error reading. Thanks

Conf file

undervolt 0 'CPU' -93
undervolt 1 'GPU' -103
undervolt 2 'CPU Cache' -125
undervolt 3 'System Agent' -100
undervolt 4 'Analog I/O' -0

result

CPU (0): -92.77 mV
GPU (1): -102.54 mV
CPU Cache (2): -125.00 mV
System Agent (3): Values do not equal
Analog I/O (4): -0.00 mV

install fails

I know nothing about programming. I was able to install and use on mint 18.3 but now on 19.1 the make fails.


xxxx@xxxxxxxx:~/intel-undervolt-master$ sudo make && sudo make install
gcc
-DSYSCONFDIR='"'/etc'"'
-o config.o -c config.c
config.c:1:10: fatal error: fcntl.h: No such file or directory
#include <fcntl.h>
^~~~~~~~~
compilation terminated.
Makefile:13: recipe for target 'config.o' failed
make: *** [config.o] Error 1


Maybe this is a simple fix. I just dont know what I'm looking at.

Unistallation

#not an issue
just wanted to know how uninstallation would work? The documentation is not listing method to uninstall.

make: gcc: No such file or directory

When i try to run ./configure && make && make install i get errors like :
-make: gcc: No such file or directory
-gcc -Wall -Wextra
-DSYSCONFDIR='"'/etc'"'
-o config.o -c config.c
-make: *** [Makefile:69: config.o] Error 127
I used to use intel-undervolt on debian 11 with no problems at all but i'm fairly new to linux so if you know how to solve this i would be grateful !

module undervolt not accepted

Hi,
I'm running ubuntu 21.10, kernel 5.13.0-30 on my machine, and I realized that the undervolt-tool is not working anymore.
Problem is probably the failure to load the undervolt module, which throws "Invalid module format" and "missing .modinfo section or name field: no module found in object" when I try to load it manually from a recent build.
Do I miss something here?
thanks,
Mathias

Problem with setting cpu tjunction offset

CPU: i5-4330M

when setting the tjunction limit, the apply script fails with the following error message:

 > sudo intel-undervolt apply          
CPU (0): -70.31 mV
GPU (1): -80.08 mV
CPU Cache (2): -70.31 mV
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

Failed to write MSR
Failed to write temperature offset value

when reading the value the script reports

Hints and algorithm documentation

I am probably overlooking something super-obvious, so I hope this is only a quick question.

The config file says:

# Energy Versus Performance Preference Switch
# Usage: hwphint ${mode} ${algorithm} ${load_hint} ${normal_hint}
# Hints: see energy_performance_available_preferences

Where do I "see energy_performance_available_preferences"? Is there something similar for the algorithm string?

Warning: MSR and memory values are not equal

Hi there!
What does that message means?

executing: intel-undervolt read, outputs the following:

CPU (0): -128.91 mV
GPU (1): -0.00 mV
CPU Cache (2): -128.91 mV
System Agent (3): -0.00 mV
Analog I/O (4): -0.00 mV

Warning: MSR and memory values are not equal
Short term package power: 45 W, 0.002 s, disabled
Long term package power: 200 W, 28.000 s, enabled

So, i guess everything is working?

Relevant specs:

CPU Model name: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (skylake)
OS: Arch Linux
Kernel: 5.16.9-arch1-1
Intel-undervolt: 1.7-2

Cheers!

TDP values aren't being changed

I've successfully managed to undervolt my i5-10210u on ZorinOS but TDP values aren't actually being changed(even though it's said they are).
image

My config file: https://del.dog/edadocarfy.go

I've also tried using daemon with the mentioned config but the TDP and frequencies stay unchanged(if I enforce a 100ms daemon refresh, it will just say 24W but the actual TDP will still be 15W).

Am I missing something?

T490s - 50^C

For some reason after full load, CPU force frequency to ~1.2Ghz to keep 50^C. The only way to fix this - execute once https://github.com/erpalma/throttled.

Also tjunction is not applied after executing intel-undervolt apply. I.e. the value is the one from the config, but the actual temperature limit is not changed. Throttled somehow managed to change that

how to disable short term package power max

I want to disable short term package power max, because I found that my cpu is more efficient with this function disable. i have tested with XTU on windows.
I am not sure if you can help to add this function.
Your hardwork is very good and help for me by the way.

Different settings if running on battery

It would be useful if certain settings could change when a laptop is unplugged from the charger.

For example, using a lower temperature limit or power limit on battery could reduce overall fan usage, which could mean longer battery life. On the other hand, when plugged in, one might want the highest performance, even if that means a louder fan and more power use.

Perhaps this is outside the scope of this project, but I wasn't able to find any information about it.

i3-3220 Input/output error

This is a 5.1.9 Kernel.
Modules are loaded:

# lsmod |grep rapl
intel_rapl             16384  0
intel_rapl_perf        12288  0
iosf_mbi               12288  2 intel_rapl,i915

intel-undervolt measure
works, but
Intel-undervolt read
returns Input/output error on all channels.

Package libelogind was not found in the pkg-config search path.

I have tried installing using the following command
sudo ./configure --enable-systemd --enable-elogind --enable-openrc

but I am getting the following message

Package libelogind was not found in the pkg-config search path. Perhaps you should add the directory containing 'libelogind.pc' to the PKG_CONFIG_PATH environment variable No package 'libelogind' found Failed to configure eloginddir
My system has msr-tools installed and the CPU is Core i7-9750H on Ubuntu 18.04, kernel 4.18.20-041820-generic

Uninstall

How to uninstall intel-undervolt?

The following does not seem to be doing that:

$ sudo make uninstall

make: *** No rule to make target 'uninstall'.  Stop.

issue after install on debian and ubuntu

hi,
thanks for this tools, i use it on arch linux and manjaro :)
but,
i wanted to test on other distrib debian unstable and ubuntu
i install msr-tools and mchbar

-- L'unité (unit) intel-undervolt.service a commencé à démarrer.
juil. 12 11:28:15 zenbook intel-undervolt[15294]: Exec failed: No such file or directory
juil. 12 11:28:15 zenbook intel-undervolt[15294]: Modprobe failed
juil. 12 11:28:15 zenbook intel-undervolt[15294]: Failed to setup the program
juil. 12 11:28:15 zenbook systemd[1]: intel-undervolt.service: Main process exited, code=exited, status=1/FAILURE
juil. 12 11:28:15 zenbook systemd[1]: intel-undervolt.service: Failed with result 'exit-code'.
juil. 12 11:28:15 zenbook systemd[1]: Failed to start Intel Undervolt Service.
-- Subject: L'unité (unit) intel-undervolt.service a échoué
-- Defined-By: systemd
-- Support: https://www.debian.org/support

-- L'unité (unit) intel-undervolt.service a échoué, avec le résultat RESULT.

root@zenbook:/home/opentux/Téléchargements/intel-undervolt# intel-undervolt read
Exec failed: No such file or directory
Modprobe failed
Failed to setup the program

i do not find a precise log for resolve the problem.
thanks in advance

Raising the temperature limit

Thanks for the useful piece of software! I've been using it for a few months on my 6th gen x1 carbon.

It works well for my undervolting and power limit needs. However, this generation of Lenovo laptops has an issue on Linux; the temperature limit is hard-coded to 80C, while it's on 100C on Windows. See https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/ for more information.

This project has a way to subtract a number from the initial temperature limit, such as going from 100 to 90 or 80. Could the reverse be implemented, so I could go from 80 to 90 or 100, and have my CPU throttle less? I've tried playing with the current settings, but I can't get the apparent limit to go past 80.

Thanks!

intel-undervolt.service not found

Hey guys, I'm trying to apply the undervolt on startup to my system. But when I run:

sudo systemctl enable intel-undervolt

It states that:

Failed to enable unit: Unit file intel-undervolt.service does not exist.

add i915 power estimates to `measure` subcommand

It'd be nice if intel-undervolt measure showed the results from the i915 driver, which is in the same uj output as the current rapl source. Here's some code I just wrote to do it:

#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
	FILE *f;
	uint64_t this_microjoules, last_microjoules = ~UINT64_C(0);

	setbuf(stdout, NULL);
	f = fopen("/sys/kernel/debug/dri/0/i915_energy_uJ", "r");
	if (!f) {
		perror("fopen(/sys/kernel/debug/dri/0/i915_energy_uJ)");
		return 1;
	}

	printf("Measuring...");
	for (;;) {
		if (fscanf(f, "%" PRIu64, &this_microjoules) != 1) {
			perror("fscanf");
			return 1;
		}
		rewind(f);
		if (last_microjoules != ~UINT64_C(0))
			printf("\x1b[0G\x1b[0K%.2f W", (double)(this_microjoules - last_microjoules) / 1000000.0);
		last_microjoules = this_microjoules;
		sleep(1);
	}
	return 0;
}

undervolt 0 'CPU' does nothing

Setting undervolt values for 'CPU Cache' works just fine but setting values for 'CPU' does nothing on my 9750h.
I tested at at different values and saw no difference on temps, power draw or freqs. For reference, doing so in Throttlestop (Windows) shows very tangible differences up to -250mV. I didn't touch anything else on the conf file, just these values.

Srry for the edits. Pressed enter by mistake.

github lenovo-throttling-fix

There is a different tool on github called lenovo-throttling-fix.
Its doing the same and more. How about joining the effort on that one?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.