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 Service Pack 1
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

Hewlett Packard G7, G8 and G9 servers

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

The messages express a disagreement between the BIOS and the kernel as far as an ACPI buffer size is concerned. This is related to power monitoring.

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

To reproduce the issue on affected HW one should find a valid device by:
find /sys/devices/LNXSYSTM\:00/ |grep ACPI000D
 then trying to read out the power average:
cat /sys/devices/LNXSYSTM:00/device:00/ACPI000D:00/power1_average
 will 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

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback@suse.com

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Join Our Community

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.


SUSE Customer Support Quick Reference Guide SUSE Technical Support Handbook Update Advisories
Support FAQ

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.

Go to Customer Center