LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Laptop and Netbook (https://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/)
-   -   Linux always hotter than Windows (https://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/linux-always-hotter-than-windows-4175712428/)

Alfred-Augustus 05-21-2022 06:22 AM

Linux always hotter than Windows
 
Hi

My Thinkpad T440P always run hotter in Linux than on Windows.

The sensors command says CPU is around 50 deg C when I am surfing this forum.
My left palm gets quite warm--gets sweaty, after about 15 minutes on this forum.
Then, I reboot to Windows-10 (dual-boot). After about 10 minutes doing the same task of surfing this forum, my palm is no longer hot and sweaty. Windows runs cooler.

I tried half-dozen distros (Mint, Manjero, Arch, Debian, Fedora, Slackware), and they are always run warmer than Windows. I even tried FreeBSD and OpenBSD. The latter is the worst.

I luv to use Linux all the time, and delete Windows from my laptop.
But I always find myself going back to Windows when my palm gets hot and sweaty.

So, how did Lenovo tweaked Windows to have lower temperature?

ondoho 05-21-2022 07:00 AM

Quote:

Originally Posted by Alfred-Augustus (Post 6355316)
Hi

My Thinkpad T440P always run hotter in Linux than on Windows.

The sensors command says CPU is around 50 deg C when I am surfing this forum.
My left palm gets quite warm--gets sweaty, after about 15 minutes on this forum.
Then, I reboot to Windows-10 (dual-boot). After about 10 minutes doing the same task of surfing this forum, my palm is no longer hot and sweaty. Windows runs cooler.

I tried half-dozen distros (Mint, Manjero, Arch, Debian, Fedora, Slackware), and they are always run warmer than Windows. I even tried FreeBSD and OpenBSD. The latter is the worst.

I luv to use Linux all the time, and delete Windows from my laptop.
But I always find myself going back to Windows when my palm gets hot and sweaty.

So, how did Lenovo tweaked Windows to have lower temperature?

Let's start with some output.
Please use CODE tags for full command output and code (see my signature).

Please show us:
Code:

lspci -k
top -b -n1 | head -20

The latter command when your palm is hot and sweaty.

Alfred-Augustus 05-21-2022 07:26 AM

...

Michael Piziak 05-21-2022 09:29 AM

It would be interesting for you to run a program that tells the temperatures and compare them to a similar program running under Windows.

Psensor is available as Synaptic package... Or other ways to monitor temps at: https://phoenixnap.com/kb/linux-cpu-temp

Alfred-Augustus 05-21-2022 01:20 PM

Quote:

Originally Posted by ondoho (Post 6355323)
Please show us:
Code:

lspci -k
top -b -n1 | head -20

The latter command when your palm is hot and sweaty.


Code:


$ Downloads/pciutils/lspci -k
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)
        Subsystem: Lenovo Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ThinkPad T440p)
        Kernel modules: ie31200_edac
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
        Subsystem: Lenovo 4th Gen Core Processor Integrated Graphics Controller (ThinkPad T440p)
        Kernel driver in use: i915
        Kernel modules: i915
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
        Subsystem: Lenovo Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (ThinkPad T440p)
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family USB xHCI (ThinkPad T440p)
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family MEI Controller
        Kernel driver in use: mei_me
        Kernel modules: mei_me
00:16.3 Serial controller: Intel Corporation 8 Series/C220 Series Chipset Family KT Controller (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family KT Controller
        Kernel driver in use: serial
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 04)
        Subsystem: Lenovo Ethernet Connection I217-LM (ThinkPad T440p)
        Kernel driver in use: e1000e
        Kernel modules: e1000e
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family USB EHCI
        Kernel driver in use: ehci-pci
        Kernel modules: ehci_pci
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset High Definition Audio Controller (ThinkPad T440p)
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port (rev d4)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family PCI Express Root Port
        Kernel driver in use: pcieport
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port (rev d4)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family PCI Express Root Port
        Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family USB EHCI
        Kernel driver in use: ehci-pci
        Kernel modules: ehci_pci
00:1f.0 ISA bridge: Intel Corporation QM87 Express LPC Controller (rev 04)
        Subsystem: Lenovo QM87 Express LPC Controller (ThinkPad T440p)
        Kernel driver in use: lpc_ich
        Kernel modules: lpc_ich
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ThinkPad T440p)
        Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)
        Subsystem: Lenovo 8 Series/C220 Series Chipset Family SMBus Controller (ThinkPad T440p)
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
        Subsystem: Lenovo RTS5227 PCI Express Card Reader (ThinkPad T440p)
        Kernel driver in use: rtsx_pci
        Kernel modules: rtsx_pci
03:00.0 Network controller: Intel Corporation Wireless 7260 (rev 83)
        Subsystem: Intel Corporation Wireless 7260 (Dual Band Wireless-AC 7260)
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi
$


Code:

$
$ top -b -n1 | head -20
top - 02:20:25 up  6:07,  3 users,  load average: 0.66, 0.52, 0.64
Tasks: 176 total,  1 running, 175 sleeping,  0 stopped,  0 zombie
%Cpu(s):  1.6 us,  1.6 sy,  0.0 ni, 96.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  3623.2 total,  1073.3 free,    921.8 used,  1628.0 buff/cache
MiB Swap:  4096.0 total,  4096.0 free,      0.0 used.  2277.7 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM    TIME+ COMMAND
 3053 ksiu      20  0  163036  57540  33580 S  6.2  1.6  1:41.45 Xwayland
 3237 ksiu      20  0  697500  88164  72072 S  6.2  2.4  0:03.38 konsole
    1 root      20  0    2480  1648  1532 S  0.0  0.0  0:00.18 init
    2 root      20  0      0      0      0 S  0.0  0.0  0:00.00 kthreadd
    3 root      0 -20      0      0      0 I  0.0  0.0  0:00.00 rcu_gp
    4 root      0 -20      0      0      0 I  0.0  0.0  0:00.00 rcu_par_gp
    5 root      0 -20      0      0      0 I  0.0  0.0  0:00.00 netns
    7 root      0 -20      0      0      0 I  0.0  0.0  0:00.00 kworker/0:0H-kblockd
  10 root      0 -20      0      0      0 I  0.0  0.0  0:00.00 mm_percpu_wq
  11 root      20  0      0      0      0 S  0.0  0.0  0:00.00 rcu_tasks_kthre
  12 root      20  0      0      0      0 S  0.0  0.0  0:00.00 rcu_tasks_rude_
  13 root      20  0      0      0      0 S  0.0  0.0  0:00.00 rcu_tasks_trace
  14 root      20  0      0      0      0 S  0.0  0.0  0:01.15 ksoftirqd/0
$


Alfred-Augustus 05-21-2022 01:31 PM

This laptop came with Windows-7. The Win-7 came with a Lenovo program that allows you to choose performance or long-battery profile. The program indicated choosing performance profile means the laptop will run faster and cooler but battery life will be poorer because the fan will run more often.

So, I think Lenovo tweeked Windows to make the laptop run cooler.

In the winter, the heat on the palmrest is bearable. But, now summertime is here, and the palm rest is warm very quickly. We don't have A/C here. Daily high temperature recently has been in the high 70s Fahrenheit. Probably not an issue if you have A/C and set it in the low 70s all the time.

pan64 05-21-2022 02:16 PM

Quote:

Originally Posted by Alfred-Augustus (Post 6355399)
So, I think Lenovo tweeked Windows to make the laptop run cooler.

That is just wrong.
You run a lot of services on both windows and linux (printer, network, antivirus, whatever), the power consumption depends on these settings, not on the OS itself.
As it was mentioned you need to measure that temperature and also you need to look for suspicious apps.
Code:

%Cpu(s):  1.6 us,  1.6 sy,  0.0 ni, 96.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
means your linux does not do anything, just get bored (96.8 % idle time)

SlowCoder 05-21-2022 02:41 PM

What about usage habits, like: Are you using Windows in the morning, and Linux in the afternoon? Are you using Windows at a desk, and Linux while sitting on the bed or in your lap?

Alfred-Augustus 05-22-2022 12:10 AM

Quote:

Originally Posted by SlowCoder (Post 6355419)
What about usage habits, like: Are you using Windows in the morning, and Linux in the afternoon? Are you using Windows at a desk, and Linux while sitting on the bed or in your lap?

I am positive it is not a habit issue. I have jumped back and forth alot between Linux and Windows this past year.

Windows is definitely less warm. But it is not cool either.
It is slightly warm. Linux is very warm. Here, I am talking about in an non-air conditioned environment.

Btw, my sister's Lenovo is not warm at all. It has a metal palm rest, and it is actually feel cool even during heavy use.

ondoho 05-22-2022 12:10 AM

^ Not all thinkpads are built the same.

Alfred-Augustus, nothing pops out looking at your output.
I suspected some sort of graphics card/driver problem, but yours seems to be an all-intel thinkpad (just like mine btw which runs linux just fine).

You are using wayland, however Xwayland and konsole are running high (6% CPU).

Which distro?
Why KDE? It can be heavy.
Why not run konsole in wayland?

Also have a good read: https://www.thinkwiki.org/wiki/Category:T440p

Alfred-Augustus 05-22-2022 04:00 AM

Quote:

Originally Posted by ondoho (Post 6355482)
^ Not all thinkpads are built the same.

Alfred-Augustus, nothing pops out looking at your output.
I suspected some sort of graphics card/driver problem, but yours seems to be an all-intel thinkpad (just like mine btw which runs linux just fine).

You are using wayland, however Xwayland and konsole are running high (6% CPU).

Which distro?
Why KDE? It can be heavy.
Why not run konsole in wayland?

Also have a good read: https://www.thinkwiki.org/wiki/Category:T440p

Running Slackware 15.

I just happen to be on KDE wayland. I use Xorg also.
But was seeing screen tearing on youtube with Xorg. So, I am playing around on Wayland.

I think the browser on Linux is the main culprit. As soon as I fire up Firefox or Chromium, the palm rest will slowly begin to warm up.

If I dont use the browser, I could spend an hour looking at my collection of photos and videos, and the palm rest would not get warm.

zeebra 05-22-2022 04:15 AM

Quote:

Originally Posted by Alfred-Augustus (Post 6355316)
Hi
My Thinkpad T440P always run hotter in Linux than on Windows.

Ok, that's kind of the opposite of what is normal. But ok. So, there are a few things to look at in regards to laptop temperatures, and heat is mainly created by the CPU, and secondly (depending) from HD/ssd (potentially) and less relevant from other components.
So, for a laptop the ideal scenario is that the CPU is clocked as low as it can be to accomplish the necessary/ongoing tasks, and that it scales well. This means when you do nothing, it should be at the lowest clock almost always, and stay there even if you do light tasks. If you go into more heavy tasks, it should scale up well, and not cause any issues with performance.

This is accomplished with CPU frequency scaling (cpufreq/cpupower) and the tools. In my experience the default Intel_pstate scales very badly and tend to clock much higher than it needs and close to "performance" level clocking constantly. AMD has something equivilant as well, but I don't know it well, but I assume it does kind of the same.

You can't deactivate Intel_pstate (and amd "state") in the Kernel, but there is an option to disable it at boot (in the bootloader at the bootloader cmdline). If you do that, frequency scaling will no longer use intel_pstate or the equivilant amd one, but rather use the more generic "acpi_cpufreq". In my experience, this is a much better option, and have in general come with 5 different kernel scaling "governors". The standard has been one called "ondemand", which is a great way to scale, and then there is a very similar one called "conservative", which is my personal favourite (because it does what ondemand does, but scales up slower).

Depending on your distro and CPU, there are different ways to go about these things. But if it is an Intel CPU you can add "intel_pstate=disable" to the boot line and test out the acpi_cpufreq driver and governors instead.

You can switch scaling governors in acpi_cpufreq with tools like cpufreq-set (cpufreq-info to gather info), or the other common option cpupower. It's fairly easy to deal with, so give it a try and see it it doesn't help. And you don't have to install anything. All the necessary things are generally included by default.

Alfred-Augustus 05-22-2022 04:19 AM

Quote:

Originally Posted by ondoho (Post 6355482)
^
Why not run konsole in wayland?

I am not well versed in wayland.
Do you mean that konsole has a wayland version and an X version?
And I am running the X version in wayland?

Alfred-Augustus 05-22-2022 05:37 AM

Quote:

Originally Posted by zeebra (Post 6355511)
Ok, that's kind of the opposite of what is normal. But ok. So, there are a few things to look at in regards to laptop temperatures, and heat is mainly created by the CPU, and secondly (depending) from HD/ssd (potentially) and less relevant from other components.
So, for a laptop the ideal scenario is that the CPU is clocked as low as it can be to accomplish the necessary/ongoing tasks, and that it scales well. This means when you do nothing, it should be at the lowest clock almost always, and stay there even if you do light tasks. If you go into more heavy tasks, it should scale up well, and not cause any issues with performance.

This is accomplished with CPU frequency scaling (cpufreq/cpupower) and the tools. In my experience the default Intel_pstate scales very badly and tend to clock much higher than it needs and close to "performance" level clocking constantly. AMD has something equivilant as well, but I don't know it well, but I assume it does kind of the same.

You can't deactivate Intel_pstate (and amd "state") in the Kernel, but there is an option to disable it at boot (in the bootloader at the bootloader cmdline). If you do that, frequency scaling will no longer use intel_pstate or the equivilant amd one, but rather use the more generic "acpi_cpufreq". In my experience, this is a much better option, and have in general come with 5 different kernel scaling "governors". The standard has been one called "ondemand", which is a great way to scale, and then there is a very similar one called "conservative", which is my personal favourite (because it does what ondemand does, but scales up slower).

Depending on your distro and CPU, there are different ways to go about these things. But if it is an Intel CPU you can add "intel_pstate=disable" to the boot line and test out the acpi_cpufreq driver and governors instead.

You can switch scaling governors in acpi_cpufreq with tools like cpufreq-set (cpufreq-info to gather info), or the other common option cpupower. It's fairly easy to deal with, so give it a try and see it it doesn't help. And you don't have to install anything. All the necessary things are generally included by default.

Thanks for the explaination of CPU scaling. I think I have a better understanding now.

In Lilo (Slackware 15), is this how I disable intel_pstate?

Code:

boot: generic-5.15.38 intel_pstate=disable

And then I use this to change the governor...
Code:

sudo cpufreq-set -g conservative

zeebra 05-22-2022 06:34 AM

Quote:

Originally Posted by Alfred-Augustus (Post 6355521)
In Lilo (Slackware 15), is this how I disable intel_pstate?

Code:

boot: generic-5.15.38 intel_pstate=disable

And then I use this to change the governor...
Code:

sudo cpufreq-set -g conservative

Seems about right yeah. You can verify with "cpufreq-info". I don't know Lilo at all, is there a "vmlinuz-x-y-z ro" in there? it should normally be right after that. I found this though, it might be helpful:
https://unix.stackexchange.com/quest...lo-boot-prompt

And you need to do it for each core! as root or with sudo
Code:

cpufreq-set -c0 -g conservative
c0 is the first core, and you need to do the same command for EACH core, so -c1, -c2 etc.

I forgot you use Slackware, haha. In Slackware, as long as you use the intel_pstate=disable as above and it switches to the acpi_driver, you can set the governor at boot:
Code:

chmod +x /etc/rc.d/rc.cpufreq
And then edit the file /etc/default/cpufreq and put the governor you want to have by default in there (replace the current entry).

You can still change things manually after that, but it's generally more convenient to have it done at boot like that.


All times are GMT -5. The time now is 01:28 PM.