[Bug 204807] Hardware monitoring sensor nct6798d doesn't work unless acpi_enforce_resources=lax is enabled

bugzilla-daemon
2021-04-11T10:27:13Z

--- Comment #58 from Hans de Goede (jwrdegoede@fedoraproject.org) ---
(In reply to Mateusz Jończyk from comment #57)
> (In reply to Hans de Goede from comment #56)
> > Hmm,
> >
> > asus-wmi-sensors also is not such a great solution, it seems the WMI
> > interface is buggy on some boards and causes fans to stop or get stuck at
> > max speed, which is quite bad, see:
> >
> > https://github.com/electrified/asus-wmi-sensors#known-issues
>
> IMHO, this could be caused by access races, not necessarily by a buggy BIOS.
> The driver may simply not implement correct synchronization methods. It may
> be necessary to call some ACPI / WMI methods before and after accessing the
> sensors to avoid resource conflicts.

Perhaps, but usually WMI methods take the locks which they need on entry and
release them on exit. I'm not even sure if an ACPI method (which this
ultimately is) can hold locks after it exits, I would not be surprised if all
acquired locks are automatically dropped on exit from the interpreter.

Also note that the README also states that on some motherboards the problems
are fixed in later BIOS versions, which also points to a race inside the AML
code and not a bug in the driver.

> As is written in the documentation:
> > The more frequently the WMI interface is polled the greater the potential
> for
> > this to happen.
>
> I am also not sure if the driver implements correct locking behavior
> kernel-wise.

I did not check, but this should not matter, that may mess up the driver's
state, but the WMI code is expected to do its own locking at the AML level, to
e.g. protect against similar accesses to the super IO through the ACPI thermal
region interface.

Note I'm not claiming that this is definitely not an issue with the driver, it
could be. But I've seen a lot of very buggy AML code and I've yet to find a
single vendor which does not write very low quality AML code. It seems there is
absolutely no code-review done on the AML code and very little QA.