Here is my elegant workaround to the problem:
```
[Unit]
Description=Fixes many issues with the 2022 LG Grams running linux and sets 
charging limit to 80

# save this script to /etc/systemd/system/lg-gram.service
# then run:
# sudo systemctl daemon-reload
# sudo systemctl enable lg-gram.service
# sudo systemctl start lg-gram.service

# more documentation:
https://www.reddit.com/r/LGgram/comments/150p3rg/critical_bug_affecting_the_2022_lineup_on_linux/

[Service]
Type=oneshot
# Unmask GPE interrupts to resolve the issue of high temperatures and fan noise 
even on idle when the laptop is charging through USB-C/TB:
ExecStart=/bin/bash -c "echo 'unmask' > /sys/firmware/acpi/interrupts/gpe6E"

# sets charging limit to 80 to increase battery longevity:
ExecStart=/bin/bash -c "echo 80 > 
/sys/class/power_supply/CMB0/charge_control_end_threshold"

# Disable "Silent mode":
ExecStart=/bin/bash -c "echo 1 > /sys/devices/platform/lg-laptop/fan_mode"

# Unload the int3403 temp sensor library from the kernel to fix ACPI flood 
issue:
# ExecStart=/bin/sh -c "rmmod int3403_thermal"

# Disable turbo boost (trade single threaded performance for lower heat output 
and maybe battery life)
# ExecStart=/bin/sh -c 'echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo'
# ExecStop=/bin/sh -c 'echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo'

# Fix for thermal throttle issue that on some distros can put the CPU running 
on low wattages:
# ExecStart=/bin/bash -c "systemctl disable --now thermald"

RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

```

--
The issue seems to be caused by:
```some miscommunication between Linux thinking it can probe for thermal info 
on a device which did not register a handler to do so```
Source - 
https://www.reddit.com/r/linuxhardware/comments/x97m6l/fedora_lg_gram_16_2022_12th_gen_alder_lake/
 (added to the original post)

I'm happy to confirm that the kernel parameter acpi_mask_gpe=0x6E seems to fix 
the issue of fans blasting and high temperatures even on idle!
An observed drawback from this solution is that is breaks the functionality of 
the screen brighness buttons: it still works, but you can hold it, and it also 
has a big delay in applying each setting - This doesn't bother me as I already 
use some scripts with a custom keyboard shortcut to set the brighness of all my 
displays at once. Another solution is unmasking the GPE interrupts not through 
a kernel parameter, but after boot with: echo unmask > 
/sys/firmware/acpi/interrupts/gpe6E - This way the brightness button issues 
don't manifest.
Furthermore, setting the kernel parameter acpi_mask_gpe=0x6E, it could be 
affecting idle power draws if the values returned by GPE are used to put cpus 
into idle states. Thankfully the issue only happens when the laptops are 
charging, so it wouldn't kill battery life.
>From the kernel documentation I could find:
acpi_mask_gpe=  [HW,ACPI]Due to the existence of _Lxx/_Exx, some GPEs 
triggeredby unsupported hardware/firmware features can result inGPE floodings 
that cannot be automatically disabled bythe GPE dispatcher.This facility can be 
used to prevent such uncontrolledGPE floodings.Format: <byte> or <bitmap-list>
So the documentation is aligned with the observations of the fix/workaround.

--
Furthermore, there is another possible fix: journalctl seems to output many 
ACPI errors, probably due to the miscommunication between Linux thinking it can 
probe for thermal info on a device which did not register a handler to do so. 
The ACPI issue is a flood
caused by the int3403 temp sensor library, which can be unloaded from the 
kernel without any other visible system effect
sudo rmmod int3403_thermal is how it's unloaded
A permanent fix seems to be patching the int3403 library to add something like
if (sensorNotPresent) then skip or unregister until next launch

--
There seems to be yet another issue related to this:
power usage goes way up to around 10W at idle (instead of like 3W) and there's 
a kernel thread with high load (visible in powertop) related to the i915 
graphics driver
The solution seems to be:
echo 1 > /sys/kernel/debug/dri/1/i915_hpd_short_storm_ctl
That should be run on every boot to stop another interrupt flooding from 
happening, but this solution:
it might break multi-stream transport on DisplayPort - the short storm 
detection is enabled by default unless multi-stream transport is supported

--
Another finding: The laptop is by default running on  "Silent mode" which can 
be disabled by:
echo 1 > /sys/devices/platform/lg-laptop/fan_mode

--
The laptop indeed seems to have no BIOS updates.

--
Another issue seems to be that on some distros the laptop might thermal 
throttle to very low wattages, and the fix is:
systemctl disable --now thermald

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1987829

Title:
  LG Gram 12gen high CPU use when USB-C/TB is in use

Status in linux package in Ubuntu:
  Confirmed
Status in linux package in Fedora:
  New

Bug description:
  LG Gram laptop 17Z90Q with a Core i7-1260P CPU.

  Whenever an external monitor is connected to USB-C/Thunderbolt 4,
  average load goes above 3.0 and the machine is getting very hot.

  Output from top -H shows a lot of kworker CPU usage:

  top - 11:45:06 up 33 min,  2 users,  load average: 3,30, 3,08, 2,79
  Threads: 1442 total,   2 running, 1440 sleeping,   0 stopped,   0 zombie
  %Cpu(s):  0,1 us,  3,7 sy,  0,0 ni, 96,1 id,  0,0 wa,  0,0 hi,  0,1 si,  0,0 
st
  MiB Mem :  15684,6 total,   8510,2 free,   2580,8 used,   4593,6 buff/cache
  MiB Swap:   3815,0 total,   3815,0 free,      0,0 used.  11326,9 avail Mem 

      PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ WCHAN  
    COMMAND
     7766 root      20   0       0      0      0 R  19,8   0,0   0:56.05 
worker_th+ kworker/0:2-events
      196 root      20   0       0      0      0 D  15,8   0,0   1:18.12 
ec_guard   kworker/u32:2+USBC000:00-con0
    10237 root      20   0       0      0      0 I  12,9   0,0   0:26.44 
worker_th+ kworker/0:0-events
     1027 root      20   0       0      0      0 I   6,6   0,0   0:43.30 
worker_th+ kworker/1:3-events
    10971 root      20   0       0      0      0 I   4,0   0,0   0:00.20 
worker_th+ kworker/15:0-events
      175 root      20   0       0      0      0 I   2,3   0,0   0:03.24 
worker_th+ kworker/11:1-events
     2410 root      20   0       0      0      0 I   1,7   0,0   0:05.49 
worker_th+ kworker/9:3-events

  Perf shows a lot of time spent inside
  handle_irq_event/acpi_ev_gpe_detect/acpi_hw_gpe_read.

  Additionally, kernel log is getting spammed with these lines every 4
  seconds (but also without any USB-C device attached):

  [  223.514304] ACPI Error: No handler for Region [XIN1] (00000000f2ad4f1f) 
[UserDefinedRegion] (20210730/evregion-130)
  [  223.514323] ACPI Error: Region UserDefinedRegion (ID=143) has no handler 
(20210730/exfldio-261)

  [  223.514337] 
                 Initialized Local Variables for Method [_TMP]:
  [  223.514339]   Local0: 0000000021495082 <Obj>           Integer 
0000000000000034

  [  223.514349] No Arguments are initialized for method [_TMP]

  [  223.514354] ACPI Error: Aborting method
  \_SB.PC00.LPCB.LGEC.SEN2._TMP due to previous error (AE_NOT_EXIST)
  (20210730/psparse-529)

  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: linux-image-5.15.0-46-generic 5.15.0-46.49
  ProcVersionSignature: Ubuntu 5.15.0-46.49-generic 5.15.39
  Uname: Linux 5.15.0-46-generic x86_64
  ApportVersion: 2.20.11-0ubuntu82.1
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  me         1678 F.... pulseaudio
   /dev/snd/controlC1:  me         1678 F.... pulseaudio
  CRDA: N/A
  CasperMD5CheckResult: pass
  Date: Fri Aug 26 11:57:05 2022
  InstallationDate: Installed on 2022-08-25 (1 days ago)
  InstallationMedia: Ubuntu 22.04.1 LTS "Jammy Jellyfish" - Release amd64 
(20220809.1)
  MachineType: LG Electronics 17Z90Q-G.AA78N
  ProcFB: 0 i915drmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.15.0-46-generic 
root=UUID=e2f96916-a67c-432e-b687-730071271216 ro quiet splash vt.handoff=7
  PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No 
PulseAudio daemon running, or not running as session daemon.
  RelatedPackageVersions:
   linux-restricted-modules-5.15.0-46-generic N/A
   linux-backports-modules-5.15.0-46-generic  N/A
   linux-firmware                             20220329.git681281e4-0ubuntu3.4
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 07/06/2022
  dmi.bios.release: 0.1
  dmi.bios.vendor: Phoenix Technologies Ltd.
  dmi.bios.version: A1ZG0380 X64
  dmi.board.asset.tag: Base Board Asset Tag
  dmi.board.name: 17Z90Q
  dmi.board.vendor: LG Electronics
  dmi.board.version: FAB1
  dmi.chassis.asset.tag: Asset Tag
  dmi.chassis.type: 10
  dmi.chassis.vendor: LG Electronics
  dmi.chassis.version: 0.1
  dmi.ec.firmware.release: 33.0
  dmi.modalias: 
dmi:bvnPhoenixTechnologiesLtd.:bvrA1ZG0380X64:bd07/06/2022:br0.1:efr33.0:svnLGElectronics:pn17Z90Q-G.AA78N:pvr0.1:rvnLGElectronics:rn17Z90Q:rvrFAB1:cvnLGElectronics:ct10:cvr0.1:skuEVO:
  dmi.product.family: LG gram PC
  dmi.product.name: 17Z90Q-G.AA78N
  dmi.product.sku: EVO
  dmi.product.version: 0.1
  dmi.sys.vendor: LG Electronics

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1987829/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to