linux-surface/contrib/thermald/surface_pro_5
2021-09-03 00:27:25 +08:00
..
40-surface-power.rules add pci and cpu power control 2021-08-29 19:39:51 +08:00
50-surface.conf add sysctl startup settings 2021-09-03 00:26:01 +08:00
README.md update readme 2021-09-03 00:27:25 +08:00
thermal-conf.xml.auto.cool contrib/thermald: Be consistent about formatting 2021-08-25 14:02:30 +02:00
thermal-conf.xml.auto.mobile contrib/thermald: Be consistent about formatting 2021-08-25 14:02:30 +02:00
thermal-conf.xml.auto.performance contrib/thermald: Be consistent about formatting 2021-08-25 14:02:30 +02:00
thermal-cpu-cdev-order.xml contrib/thermald: Be consistent about formatting 2021-08-25 14:02:30 +02:00
thermald.service contrib/thermald: Be consistent about formatting 2021-08-25 14:02:30 +02:00

thermald configuration tweaked for Surface Pro 5

  • thermald configuration starting point: https://github.com/intel/dptfxtract
    • by default it uses sensor "GEN4", which is for the NVME drive, not good.
    • pch_skylake is a better choice here.
  • Takes care of surface profile set {low-power|performance} on power supply events.
  • Restarts thermald on power events to load corresponding thermal profiles.
  • There are 3 thermal profiles here:
    • thermal-conf.xml.auto.performance: activated on AC power. Runs at peak performance (~25watts) until reaching 60 degrees. Stabilized at ~15watts under heavy load.
    • thermal-conf.xml.auto.mobile: activated on battery. Throttles early for ~15watts. Throttles to ~8watts for heavy load. Try to keep the device cool.
    • thermal-conf.xml.auto.cool: reserved.

Basically, we are just using RAPL here to throttle the power (in watts), not the frequency of the CPU, and it's more fine-grained and aligned with our thermal targets.

See 40-surface-power.rules for more details on how to obtain info about sensors and cooling devices.

Bonus

40-surface-power.rules also contains power-related tweaks for:

  • surface profile: currently low-power vs. performance
  • Various PCIe powersaving strategies
  • Intel p-state control for turbo-boost

50-surface.conf contains sysctl tweaks advised by powertop.

Installation

  • Make sure to install surface-control
  • Install 40-surface-power.rules to /usr/lib/udev/rules.d/
  • Install thermal-conf.xml* to /etc/thermald/
    • thermal-conf.xml.auto will be linked dynamically by the udev rule file.
  • Install thermal-cpu-cdev-order.xml to /etc/thermald/
  • Install thermald.service to /lib/systemd/system/ and overwrite the old one.
    • Maybe install to /usr/lib/systemd/system/ too.
  • Install 50-surface.conf to /etc/sysctl.d/
  • systemctl daemon-reload
  • systemctl restart udev
  • systemctl restart thermald