HP Pavilion laptop running warm/ high CPU usage

This is more of a query but I set up a HP Pavilion 15-p157sa laptop with Zorin OS 17 but running the Cinnamon DE for a friend. I believe it's always had an issue with getting hot and I thought it was just when it was running Windows 10. While doing some tests I noticed the CPU went up to 50% when moving the mouse around the screen and worst when moving the mouse over tabs in Waterfox. When running Freetube the temperature peaks between 65-70C as the CPU runs high.

I was curious if anyone has any suggestions on how to lower the laptops need to use a lot of CPU while not doing too much despite already being in power saver mode.

Some sellers... hoping to gain a reputation for Fast Computers overclock what they sell.
This happened to me. I was fighting high temps too often because of OverVolting and Overclocking.
Where things get interesting... Undervolting my machine not only cooled it significantly, it created a sharp increase in performance.

You can perform this within the BIOS advanced settings on Gigabyte motherboards.

This, of course, assumes you have cleaned the fans, tried thermald and the usual suspects.

1 Like

Your CPU is an Intel I-5 4288U, which is a dual core chip using the Haswell architecture, which was released in 2013.

Movement of the mouse driving CPU usage up to 50%, was most certainly common back in the 1990's era chips, which was why benchmark software always said, "don't move the mouse." lol

I'm curious to know, if you are using the built in trackpad on the notebook, or if you are using a top end mouse with a high poling rate. Typically, high poling rate mice
(think 1000 hertz) can put substantial load on old chips.

Aint that the truth! Were seeing that a lot these days from secret shopper rounds. Buy a pre-built computer sight unseen, putting faith in the company to do it right. You get a computer delivered with lose screws, has a different GPU then you picked out, and is overclocked, it chokes on the heat it generates from its lack of adequate cooling.


@Aravisian I've heard of underclocking so I'll get I'll try my hand at it with the links.
@StarTreker No, I was using the trackpad when testing the mouse.

You could clean up the Air Vents, the Fan and put on fresh Thermal Paste. On a Laptop not the nicest Work, I know. but it could help.

Another Thing would be to use Zorin Lite. Or do You already use it? In Your Profile isn't this Info. Or try another Distro like MX Linux with xfce for Example.

The vents have been cleaned and it recently got the CPU repasted. Actually I remember the guy who did it mentioned something about the CPU throttling itself when I asked if there was a reason it still got hot after repasting. It's running Zorin 17 Pro though a lot of the programs have been uninstalled as they weren't being used and to lighten the load.

Were good Thermal Paste used?

But maybe the System itself - at least with the Gnome-based Desktop - could be too heavy.

I assume good thermal paste was used as another laptop was done at the same time and it cooled significantly. After on and off testing with underclocking, which is a little confusing to me, I don't think I saw too much improvement. Maybe a couple of degrees cooler. I might have to try Linux Mint Xfce version to see if that helps.

2 Likes

In my experience, a CPU has to be at least 55F to 60F in order for it to boot the PC. If a room indoors (guest room/utility/basement room) gets down into the 40's-F temperatures, the PC won't boot. If its a desktop with fans, enjoy the death sound as well.

A lot of machines are like that you know, the optimum running temperature. Even power plants operate at their most efficiency, within a certain heat range, when at criticality. Our machines are highly dependent on temperature ranges.

Some people think you need to chill a PC CPU to 32F with liquid nitrogen. What they don't tell you, is how much they reduced that CPU's life, overclocking it so hard, to get in leaderboards. It's a completely unnecessary waste of spending, & waste of time.

On the other side of the coin, if you are operating a PC in a desert, think temps well above 100F to 120F & beyond, in those cases, liquid cooling would be advisable at the very least. But keep liquid nitrogen away from your computer, don't try to be like the next Linus or Steve.

They can take chances like that cause they have millions of dollars, we don't!


You can use a cpu frequency scaling tool.

Check this topic:

I think I understand what you're saying but I don't think it applies to my situation. I'm just trying to get a laptop to not roast someone's lap when doing very little and especially when under any kind of mild load like playing a YouTube video. I primarily want it to stick to the 40-50c (104-122f) range.

A more lightweight desktop environment like XFCE might be beneficial for you with your older hardware. You could also try installing Zorin lite desktop on your current system (if you don't want to reinstall). For me, this brought significant improvements in terms of fan noise when watching videos.
sudo apt install zorin-os-lite-desktop.

Alternatively, you could install power management tools like tlp to see if that helps.

Yes, that should be worth a Try. Compare and see if You have lower Temperatures.

Trying this method seems to work but the changes don't stick after reboot. I have no idea what a boot stanza is or how to access it to edit the Intel specific issues.

The boot stanza is your grub menu entry. Edit your /boot/grub/grub.cfg, find the "linux..." line and add "intel_pstate=false" at the end. Then save, update grub and reboot.

Once rebooted, open terminal and run: "cpupower frequency-set --governor ondemand --min 1200000 --max 3500000". Adjust the min and max frequency to your cpu specs. Sample given is to set frequencies at min 1.2GHz and max 3.5GHz

Looking at the file I can't find "linux..." but many references to just "linux" in the file. I added to code to see if you can help me find where to put it.

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${initrdfail}" = 2 ]; then
   set initrdfail=
elif [ "${initrdfail}" = 1 ]; then
   set next_entry="${prev_entry}"
   set prev_entry=
   save_env prev_entry
   if [ "${next_entry}" ]; then
      set initrdfail=2
   fi
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function initrdfail {
    if [ -n "${have_grubenv}" ]; then if [ -n "${partuuid}" ]; then
      if [ -z "${initrdfail}" ]; then
        set initrdfail=1
        if [ -n "${boot_once}" ]; then
          set prev_entry="${default}"
          save_env prev_entry
        fi
      fi
      save_env initrdfail
    fi; fi
}
function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos
insmod ext2
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  12abd850-d5df-4b26-8262-1f1572e31c0a
else
  search --no-floppy --fs-uuid --set=root 12abd850-d5df-4b26-8262-1f1572e31c0a
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_GB
  insmod gettext
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  12abd850-d5df-4b26-8262-1f1572e31c0a
else
  search --no-floppy --fs-uuid --set=root 12abd850-d5df-4b26-8262-1f1572e31c0a
fi
insmod gfxmenu
insmod png
set theme=($root)/usr/share/grub/themes/zorin/theme.txt
export theme
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=hidden
    set timeout=0
  # Fallback hidden-timeout code in case the timeout_style feature is
  # unavailable.
  elif sleep --interruptible 0 ; then
    set timeout=0
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 0,0,0; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
	if [ "${1}" = "keep" ]; then
		set vt_handoff=vt.handoff=7
	else
		set vt_handoff=
	fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if [ ${grub_platform} != pc ]; then
      set linux_gfx_mode=keep
    elif hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Zorin' --class zorin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-12abd850-d5df-4b26-8262-1f1572e31c0a' {
	recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  12abd850-d5df-4b26-8262-1f1572e31c0a
	else
	  search --no-floppy --fs-uuid --set=root 12abd850-d5df-4b26-8262-1f1572e31c0a
	fi
	linux	/boot/vmlinuz-6.8.0-60-generic root=UUID=12abd850-d5df-4b26-8262-1f1572e31c0a ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-6.8.0-60-generic
}
submenu 'Advanced options for Zorin' $menuentry_id_option 'gnulinux-advanced-12abd850-d5df-4b26-8262-1f1572e31c0a' {
	menuentry 'Zorin, with Linux 6.8.0-60-generic' --class zorin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-60-generic-advanced-12abd850-d5df-4b26-8262-1f1572e31c0a' {
		recordfail
		load_video
		gfxmode $linux_gfx_mode
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  12abd850-d5df-4b26-8262-1f1572e31c0a
		else
		  search --no-floppy --fs-uuid --set=root 12abd850-d5df-4b26-8262-1f1572e31c0a
		fi
		echo	'Loading Linux 6.8.0-60-generic ...'
		linux	/boot/vmlinuz-6.8.0-60-generic root=UUID=12abd850-d5df-4b26-8262-1f1572e31c0a ro  quiet splash $vt_handoff
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-6.8.0-60-generic
	}
	menuentry 'Zorin, with Linux 6.8.0-60-generic (recovery mode)' --class zorin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-60-generic-recovery-12abd850-d5df-4b26-8262-1f1572e31c0a' {
		recordfail
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  12abd850-d5df-4b26-8262-1f1572e31c0a
		else
		  search --no-floppy --fs-uuid --set=root 12abd850-d5df-4b26-8262-1f1572e31c0a
		fi
		echo	'Loading Linux 6.8.0-60-generic ...'
		linux	/boot/vmlinuz-6.8.0-60-generic root=UUID=12abd850-d5df-4b26-8262-1f1572e31c0a ro recovery nomodeset dis_ucode_ldr 
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-6.8.0-60-generic
	}
	menuentry 'Zorin, with Linux 6.8.0-59-generic' --class zorin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-59-generic-advanced-12abd850-d5df-4b26-8262-1f1572e31c0a' {
		recordfail
		load_video
		gfxmode $linux_gfx_mode
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  12abd850-d5df-4b26-8262-1f1572e31c0a
		else
		  search --no-floppy --fs-uuid --set=root 12abd850-d5df-4b26-8262-1f1572e31c0a
		fi
		echo	'Loading Linux 6.8.0-59-generic ...'
		linux	/boot/vmlinuz-6.8.0-59-generic root=UUID=12abd850-d5df-4b26-8262-1f1572e31c0a ro  quiet splash $vt_handoff
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-6.8.0-59-generic
	}
	menuentry 'Zorin, with Linux 6.8.0-59-generic (recovery mode)' --class zorin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-59-generic-recovery-12abd850-d5df-4b26-8262-1f1572e31c0a' {
		recordfail
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  12abd850-d5df-4b26-8262-1f1572e31c0a
		else
		  search --no-floppy --fs-uuid --set=root 12abd850-d5df-4b26-8262-1f1572e31c0a
		fi
		echo	'Loading Linux 6.8.0-59-generic ...'
		linux	/boot/vmlinuz-6.8.0-59-generic root=UUID=12abd850-d5df-4b26-8262-1f1572e31c0a ro recovery nomodeset dis_ucode_ldr 
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-6.8.0-59-generic
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/10_linux_zfs ###
### END /etc/grub.d/10_linux_zfs ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

Add it here (your first grub menu entry):

After rebooting and testing the laptop can now play videos while barely going over 50c. Thank you all.

2 Likes