Frequent ACPI errors starting with SMBus or IPMI write requires Buffer of length 42.
This document (7010449) is provided subject to the disclaimer at the end of this document.
Environment
SUSE Linux Enterprise Server 12
SUSE Linux Enterprise Server 11 Service Pack 4
SUSE Linux Enterprise Server 11 Service Pack 3
SUSE Linux Enterprise Server 11 Service Pack 2
SUSE Linux Enterprise Server 11 Service Pack 1
Situation
In /var/log/messages once or frequently the following messages appear:
[17377.371160] ACPI Error: SMBus or IPMI write requires Buffer of length 42, found length 20 (20090903/exfield-286) [17377.371166] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff88201894eb28), AE_AML_BUFFER_LIMIT [17377.371176] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20090903/power_meter-347)
Resolution
This is confirmed to be a BIOS issue which should be addressed by a BIOS update from the hardware vendor. Short of a BIOS update from the vendor, the easiest solution is to blacklist the acpi_power_meter kernel module. The driver doesn't work due to the wrong buffer size anyway.
# echo "blacklist acpi_power_meter" >> /etc/modprobe.d/hwmon.conf
When running SLES11 SP2, and you really want to get rid of the error messages *and* get the acpi_power_meter driver working, you will have to provide a custom ACPI table to replace the faulty one. However this is a difficult task and needs to be done for every machine. Specifically you'll have to locate method _PMM and change the definition of BUFF from Buffer (0x20) to Buffer (0x42).
Even after doing that, you will notice a new set of kernel error messages:
ACPI Error: No handler for Region [POWR] (ffff8802333da588) [IPMI] (20110413/evregion-373)
ACPI Error: Region IPMI (ID=7) has no handler (20110413/exfldio-292)
ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff8802333dbce0), AE_NOT_EXIST (20110413/psparse-536)
This is caused by a missing kernel module, which was not supported before kernel package version 3.0.26-0.7.6. The required modules will not be loaded automatically, so after updating the kernel, you will also have to load them with the following commands:
# modprobe ipmi_si
# modprobe acpi_ipmi
After that, you can load the acpi_power_meter module and it should work.
Additional Information
find /sys/devices/LNXSYSTM\:00/ |grep ACPI000Dthen trying to read out the power average:
cat /sys/devices/LNXSYSTM:00/device:00/ACPI000D:00/power1_averagewill result in the mentioned kernel errors in syslog.
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7010449
- Creation Date: 13-Jul-2012
- Modified Date:06-Mar-2021
-
- SUSE Linux Enterprise Server
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com