Dell XPS 9570, fans constantly run only when plugged in

Hello,
I am a somewhat experienced linux user, and cannot figure out what (most likely BIOS) problem is causing this.

Basically;
charging=loud fans
not charging=no fans.

Since it happens instantaneously, I don’t think the computer is reading temperature sensors, it just is coded somewhere to turn on fans.

Output of inxi --admin --verbosity=7 --filter --no-host --width

System:
  Kernel: 5.14.10-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.14-x86_64
  root=UUID=4b8b96c1-5b55-4cff-a6f2-058ebfe16cb2 rw enable_fbc=1 enable_psr=1
  disable_power_well=0 mem_sleep_default=deep apparmor=1 security=apparmor
  udev.log_priority=3
  Desktop: Cinnamon 5.0.5 tk: GTK 3.24.30 vt: 7 dm: LightDM 1.30.0
  Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: Dell product: XPS 15 9570 v: N/A serial: <filter>
  Chassis: type: 10 serial: <filter>
  Mobo: Dell model: 02MJVY v: A00 serial: <filter> UEFI: Dell v: 1.21.0
  date: 07/20/2021
Battery:
  ID-1: BAT0 charge: 60.5 Wh (79.7%) condition: 75.9/97.0 Wh (78.2%)
  volts: 12.7 min: 11.4 model: SMP DELL GPM0365 type: Li-ion serial: <filter>
  status: Charging
Memory:
  RAM: total: 15.26 GiB used: 2.87 GiB (18.8%)
  RAM Report: permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: 6-Core model: Intel Core i7-8750H bits: 64 type: MT MCP
  arch: Kaby Lake note: check family: 6 model-id: 9E (158) stepping: A (10)
  microcode: EA cache: L2: 9 MiB bogomips: 52815
  Speed: 2200 MHz min/max: 800/2200 MHz Core speeds (MHz): 1: 2200 2: 2200
  3: 2199 4: 2200 5: 2199 6: 2200 7: 2200 8: 2200 9: 2187 10: 2199 11: 2200
  12: 2201
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_perfmon art
  avx avx2 bmi1 bmi2 bts clflush clflushopt cmov constant_tsc cpuid
  cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est
  f16c flexpriority flush_l1d fma fpu fsgsbase fxsr ht hwp hwp_act_window
  hwp_epp hwp_notify ibpb ibrs ida intel_pt invpcid invpcid_single lahf_lm lm
  mca mce md_clear mmx monitor movbe mpx msr mtrr nonstop_tsc nopl nx pae pat
  pbe pcid pclmulqdq pdcm pdpe1gb pebs pge pln pni popcnt pse pse36 pti pts
  rdrand rdseed rdtscp rep_good sdbg sep sgx sgx_lc smap smep ss ssbd sse sse2
  sse4_1 sse4_2 ssse3 stibp syscall tm tm2 tpr_shadow tsc tsc_adjust
  tsc_deadline_timer vme vmx vnmi vpid x2apic xgetbv1 xsave xsavec xsaveopt
  xsaves xtopology xtpr
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: spec_store_bypass
  mitigation: Speculative Store Bypass disabled via prctl and seccomp
  Type: spectre_v1
  mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional,
  IBRS_FW, STIBP: conditional, RSB filling
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: Dell
  driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:3e9b class-ID: 0300
  Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] driver: nvidia
  v: 470.63.01 alternate: nouveau,nvidia_drm bus-ID: 01:00.0
  chip-ID: 10de:1c8c class-ID: 0302
  Device-3: Microdia Integrated_Webcam_HD type: USB driver: uvcvideo
  bus-ID: 1-12:4 chip-ID: 0c45:671d class-ID: 0e02
  Display: x11 server: X.Org 1.20.13 driver: loaded: modesetting,nvidia
  alternate: fbdev,nouveau,nv,vesa display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3840x2160 s-dpi: 96 s-size: 1016x571mm (40.0x22.5")
  s-diag: 1165mm (45.9")
  Monitor-1: eDP-1 res: 3840x2160 hz: 60 dpi: 284 size: 344x194mm (13.5x7.6")
  diag: 395mm (15.5")
  OpenGL: renderer: Mesa Intel UHD Graphics 630 (CFL GT2) v: 4.6 Mesa 21.2.3
  direct render: Yes
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Dell driver: snd_hda_intel
  v: kernel alternate: snd_soc_skl,snd_sof_pci_intel_cnl bus-ID: 00:1f.3
  chip-ID: 8086:a348 class-ID: 0403
  Sound Server-1: ALSA v: k5.14.10-1-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.19 running: no
  Sound Server-3: PulseAudio v: 15.0 running: yes
  Sound Server-4: PipeWire v: 0.3.38 running: yes
Network:
  Device-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter
  vendor: Rivet Networks driver: ath10k_pci v: kernel bus-ID: 3b:00.0
  chip-ID: 168c:003e class-ID: 0280
  IF: wlp59s0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
  broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: Qualcomm Atheros type: USB driver: btusb v: 0.8 bus-ID: 1-4:2
  chip-ID: 0cf3:e301 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
  rfk-block: hardware: no software: yes address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 476.94 GiB used: 127.9 GiB (26.8%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: PC401 NVMe 512GB
  size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
  lanes: 4 type: SSD serial: <filter> rev: 80003E00 temp: 29.9 C scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 176.28 GiB size: 172.51 GiB (97.86%)
  used: 127.8 GiB (74.1%) fs: ext4 dev: /dev/nvme0n1p4 maj-min: 259:4
  label: N/A uuid: 4b8b96c1-5b55-4cff-a6f2-058ebfe16cb2
  ID-2: /boot/efi raw-size: 650 MiB size: 646 MiB (99.38%)
  used: 110.9 MiB (17.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  label: ESP uuid: 2833-3897
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 4.01 GiB used: 0 KiB (0.0%) priority: -2
  dev: /dev/nvme0n1p6 maj-min: 259:5 label: N/A
  uuid: a8646cf5-7500-4d18-a23a-119385e84afa
Unmounted:
  ID-1: /dev/nvme0n1p2 maj-min: 259:2 size: 128 MiB fs: <superuser required>
  label: N/A uuid: N/A
  ID-2: /dev/nvme0n1p3 maj-min: 259:3 size: 200 GiB fs: ntfs label: N/A
  uuid: 2084868384865AE4
  ID-3: /dev/nvme0n1p7 maj-min: 259:6 size: 990 MiB fs: ntfs label: WINRETOOLS
  uuid: 4ABEBC0EBEBBF115
USB:
  Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 16 rev: 2.0
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 1-4:2 info: Qualcomm Atheros type: Bluetooth driver: btusb
  interfaces: 2 rev: 2.0 speed: 12 Mb/s power: 100mA chip-ID: 0cf3:e301
  class-ID: e001
  Device-2: 1-7:3 info: Shenzhen Goodix Fingerprint Reader
  type: Abstract (modem),CDC-Data driver: N/A interfaces: 2 rev: 2.0
  speed: 12 Mb/s power: 100mA chip-ID: 27c6:5395 class-ID: 0a00
  serial: <filter>
  Device-3: 1-12:4 info: Microdia Integrated_Webcam_HD type: Video
  driver: uvcvideo interfaces: 2 rev: 2.0 speed: 480 Mb/s power: 500mA
  chip-ID: 0c45:671d class-ID: 0e02
  Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 10 rev: 3.1
  speed: 10 Gb/s chip-ID: 1d6b:0003 class-ID: 0900
Sensors:
  System Temperatures: cpu: 46.0 C mobo: N/A
  Fan Speeds (RPM): cpu: 2502 fan-2: 2499
Info:
  Processes: 301 Uptime: 10m wakeups: 7 Init: systemd v: 249 tool: systemctl
  Compilers: gcc: 11.1.0 clang: 12.0.1 Packages: pacman: 1204 lib: 295
  flatpak: 0 Shell: Bash v: 5.1.8 running-in: gnome-terminal inxi: 3.3.08

In journalctl and dmesg there is no addition to logs when I insert or remove charger, except for kernel: ata3: SATA link down (SStatus 4 SControl 300) when the charger is inserted.

powertop --auto-tune, tlp on bat or ac, and auto-cpufreq have not changed the problem.

I have tried all power saving measures described in the ArchWiki under my laptop.

Any insight on where to look for what might be happening is greatly appreciated!

**Edit: When on AC, my CPU is always 2.20 Ghz according to cpupower frequency-info. When unplugged it varies, from 800Mhz to 2.2 Ghz depending on the workload. This seems to be my problem, as the fans may be reacting to 2.20Ghz. I need to change to governor to powersave from performance even when on AC.

I will look through any dell BIOS setting that could be causing some sort of pinned CPU frequency when on AC. **

Only make sure that everything is as described in the wiki Dell XPS 15 9570 - ArchWiki
For now i do not see you using the recommended entries in /etc/default/grub
And you did not mentioned if you did or not made also use of the

options nvidia NVreg_EnableMSI=0

in /etc/modprobe.d/nvidia.conf
Since your laptop has

BIOS, check the undervolting part to make sure is not interfering as was described there with 1.16 version.

Run cpupower frequency-info before and after plugging in the power cord and provide the output.
Also, do you have tlp enabled?

Yes, TLP is enabled with whatever its defaults are (can post conf), however with it disabled the behavior is the same, fans run when plugged in no matter the temp.

cpupower:
Before plugged in:

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 4.10 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 2.20 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 2.17 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

When plugged in:

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 4.10 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 2.20 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 2.20 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

When unplugged:

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 4.10 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 2.20 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 2.20 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

Undervolting does not change the behavior, but I did reset BIOS to re-enable undervolting. Maybe the Turbo boost feature is the problem? I posted more info in the other reply.

The other reply I made has some outputs, however I noticed that the CPU frequency when plugged in is always 2.20 Ghz. When unplugged it varies, from 800Mhz to 2.2 Ghz depending on the workload. This seems to be my problem, as the fans may be reacting to 2.20Ghz.

I will look through any dell BIOS setting that could be causing some sort of pinned CPU frequency when on AC, as the powersave option all the time is what I want.

This is a weird behavior. Powersave when unplugged, Performance when plugged in and Performace when unplugged? TLP on my laptop switched it back to Powersave after I unplug.

My only guess is to check TLP config (/etc/tlp.conf) for fan speed. I can’t control the fanspeed on my laptop so I don’t know the exact line.

You can also go edit /etc/tlp.conf and search for CPU_SCALING_GOVERNOR_ON_AC and set it to ondemand. It will allow the OS to vary the frequency depending on the load. IDK how to load the tlp.conf after editing it so restart your PC.

1 Like