https://bugzilla.kernel.org/show_bug.cgi?id=217076

--- Comment #9 from PinkFromTheFuture (eduardoxfurt...@gmail.com) ---
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

--
I'm also adding to my original post a script that seems to be an elegant
workaround to solve the issues observed.

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to