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

Throttling temperature adjustment #596

Open
pfitzn opened this issue Nov 20, 2023 · 14 comments
Open

Throttling temperature adjustment #596

pfitzn opened this issue Nov 20, 2023 · 14 comments
Labels
enhancement New feature or request

Comments

@pfitzn
Copy link

pfitzn commented Nov 20, 2023

The problem you're addressing (if any)

Latest November 2023 Dasharo update (version number varies by model), at least in the NovaCustom variant, claims to have
Set throttling temperature to 75 degrees C in patch notes.

This change feels more like an opinionated setting adjustment than a feature, and in many cases (such as Ultrabooks, or warm environments) 75C is not too far from idle.

In my particular case, I'm running a 11th Gen NS50_MU, and since the update, I've had to install an always-on cooling base and changed my fan profile to 'performance' (to the dread of my girlfriend, who has to bear with the noise) just to be able to browse the web, as any spike above 75C throttles my CPU to ~300MHz.

Describe the solution you'd like

As great as this thermal protection is, the ability to adjust this throttling threshold would be appreciated.

Where is the value to a user, and who might that user be?

Users would benefit from the mitigation of the performance hit that this aggressive limit has set.

Describe alternatives you've considered

No response

Additional context

No response

@pfitzn pfitzn added the enhancement New feature or request label Nov 20, 2023
@wessel-novacustom
Copy link

+90 °C is too high, we believe such temperatures have to be avoided as it can lead to hardware damage. This is why we are going to lower the throttling temperature.

There is no more powerful cooling available for this laptop series, unless you have the classic fan we used to offer. If you could send us a photo of your fan, I can confirm you have the correct one.

It's always a matter of a balance between performance and cooling. We could even push the CPU even more to make it even better performing, but this will unavoidably lead to even higher CPU temperatures.

IIRC, the thermal paste has been changed. What I can imagine is that the applied thermal paste is worse than the variant we apply, causing higher CPU temperatures for the same CPU load. Also, the existing thermal paste must be removed with metal cleaner when changing the thermal paste. This is to avoid air between the CPU and the cooling part.

It is impossible to have CPU 100% load, a lower CPU temperature and no thermal less aggressive thermal throttling at the same time. These variables are all related to each other. This will even be the case if the cooling capacity would be better, because nowadays, modern x86_64 CPUs will give the best performance they can give as long as the limits are respected. Unless you would have a cooling capacity compared to a regular desktop workstation, but that's not realistic for laptops.

@pfitzn
Copy link
Author

pfitzn commented Nov 20, 2023

+90 °C is too high, we believe such temperatures have to be avoided as it can lead to hardware damage. This is why we are going to lower the throttling temperature.

There is no more powerful cooling available for this laptop series, unless you have the classic fan we used to offer. If you could send us a photo of your fan, I can confirm you have the correct one.

It's always a matter of a balance between performance and cooling. We could even push the CPU even more to make it even better performing, but this will unavoidably lead to even higher CPU temperatures.

IIRC, the thermal paste has been changed. What I can imagine is that the applied thermal paste is worse than the variant we apply, causing higher CPU temperatures for the same CPU load. Also, the existing thermal paste must be removed with metal cleaner when changing the thermal paste. This is to avoid air between the CPU and the cooling part.

It is impossible to have CPU 100% load, a lower CPU temperature and no thermal less aggressive thermal throttling at the same time. These variables are all related to each other. This will even be the case if the cooling capacity would be better, because nowadays, modern x86_64 CPUs will give the best performance they can give as long as the limits are respected. Unless you would have a cooling capacity compared to a regular desktop workstation, but that's not realistic for laptops.

Hey, Wessel!

Thanks for your reply.

Reg my fan: I meant that I am using a cooling base (an aluminium mesh stand with a fan underneath).

I cannot speak for the thermal paste, as I am using the one installed by NovaCustom when the motherboard had to be replaced. I'll open up the laptop and reapply the liquid metal paste to see if that helps. In any case, the throttling began after upgrading Dasharo to v1.5. Right before doing so there was no throttling on common use, and the CPU was never approaching the 100C limit that Intel specifies.

Is there any intention to allow this threshold to be adjusted by the user? You can imagine how in certain environments the limit of 75C is not that hard to reach.

@mkopec
Copy link
Member

mkopec commented Dec 8, 2023

I would tend to agree as a user that 75 degrees is a little low for these processors and takes away a lot of performance for little gain, the sweet spot is IMO somewhere in mid-80s.

But of course we won't change the setting if @wessel-novacustom deems it necessary to keep it at 75 degrees for reliability reasons.

@wessel-novacustom
Copy link

wessel-novacustom commented Dec 9, 2023

Please adjust it to 80 °C @mkopec / @miczyg1

@mkopec
Copy link
Member

mkopec commented Dec 11, 2023

Done: Dasharo/coreboot@73ebb2b

@smdfritz
Copy link

smdfritz commented Jan 6, 2024

I think it would be nice if you could set the throttle temperature individually in the setup. With a 75 deg limit, the CPU is not really fast, but it is quiet. How about a two- or three-stage setting to configure it yourself?

@patrick-g
Copy link

Previously with Firmware 1.7.1 my NS51 laptop was super quiet.
Since I updated the firmware to 1.7.2 it's a little bit noisier.
Is there a possibility to set the throttling temperature myself (set it to 75C like previously) ?

@wessel-novacustom
Copy link

@mkopec @macpijan @miczyg1 Would it be feasible to make a UEFI firmware setting for this? Like a choice for 75/80/85 °C, where 80 is the default? As you can see in this ticket, multiple people seem to have other preferences.

@patrick-g What operating system do you use? For instance, we know that Fedora is running hotter than other operating systems like Ubuntu.

You could build the firmware yourself and change the CPU throttling temperature, I don't know where exactly this value is declared. Our team might point us to the location of this variable.

@patrick-g
Copy link

@wessel-novacustom I use Arch but I don't think this issue is related to a particular distro.
As you suggested a UEFI firmware setting (with choices 75/80/85 °C) would be ideal.

@mkopec
Copy link
Member

mkopec commented Jan 10, 2024

@wessel-novacustom It can be added as an option in a future release, sure.

The temperature is defined here, as an offset from TjMax (100 degrees): https://github.com/Dasharo/coreboot/blob/cb6ef1b9ba25e97b59130b30c77105e0c31e3122/src/mainboard/clevo/adl-p/devicetree.cb#L21 .

But I'm not sure that a full firmware rebuild is needed for people who want to change it right now, on Windows at least, ThrottleStop can change the TCC temperature at runtime. I'll take a look if there's a similar tool on Linux that can do this (ThrottleStop -T [temperature] doesn't seem to work)

@mkopec
Copy link
Member

mkopec commented Jan 10, 2024

Found it:

Load Intel TCC cooling driver

$ sudo modprobe intel_tcc_cooling

Find the newly created cooling device:

$ grep TCC /sys/class/thermal/*/type
/sys/class/thermal/cooling_device20/type:TCC Offset

Write a new offset to the file, for example for 75 degrees:

$ echo 25 | sudo tee /sys/class/thermal/cooling_device20/cur_state

These changes will be reset after a reboot.

@wessel-novacustom
Copy link

@mkopec Thank you for your reply. Ok, I will open a feature request for this.

For people who don't want to rely on software, I think a custom firmware built for them would be better. One can follow the building manual for this.

@wessel-novacustom
Copy link

Found it:

Load Intel TCC cooling driver

$ sudo modprobe intel_tcc_cooling

Find the newly created cooling device:

$ grep TCC /sys/class/thermal/*/type
/sys/class/thermal/cooling_device20/type:TCC Offset

Write a new offset to the file, for example for 75 degrees:

$ echo 25 | sudo tee /sys/class/thermal/cooling_device20/cur_state

These changes will be reset after a reboot.

Ahh, very cool that it can actually be set in Linux! :-D

@ubuntushopdoteu
Copy link

Previously with Firmware 1.7.1 my NS51 laptop was super quiet. Since I updated the firmware to 1.7.2 it's a little bit noisier. Is there a possibility to set the throttling temperature myself (set it to 75C like previously) ?

the same goes for the nv40 laptop, noisier with 1.7.2

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

No branches or pull requests

6 participants