The kernel log of a Linux server, often an HP ProLiant, fills up with errors like these every few seconds:
kernel: ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20180531/exfield-393)
kernel: ACPI Error: Method parse/execution failed \_SB.PMI0._PMM, AE_AML_BUFFER_LIMIT (20180531/psparse-516)
kernel: ACPI Error: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20180531/power_meter-338)
The server keeps working; the messages are noise. This guide explains where they come from and how to stop them.
Quick answer
The errors come from the acpi_power_meter kernel driver. As root, unload it now and stop it from loading at boot:
modprobe -r acpi_power_meter
echo "blacklist acpi_power_meter" > /etc/modprobe.d/acpi_power_meter.conf
The messages stop at once and stay gone after a reboot.
What you need: root access. This works on AlmaLinux, Rocky Linux, CloudLinux, RHEL, Debian and Ubuntu.
Why it happens
acpi_power_meter is a kernel driver that reads the server's power use through the ACPI power meter interface that the firmware (BIOS) provides. Linux kernel The _PMM in the error is the firmware method that returns the current power reading, and power_meter in the last line is that driver.
On some servers, the firmware's power meter method talks to the management controller (IPMI) with a message buffer of the wrong size: 32 bytes where the kernel expects 66. The kernel rejects it, logs an error, and tries again on its next reading, so the message repeats.
It is a mismatch between the firmware and the kernel, not a hardware fault. The server's power supplies, disks and the IPMI/iLO controller are fine.
Step 1: Check that this driver is the cause
Make sure the errors mention _PMM or power_meter, and that the driver is loaded:
dmesg | grep -E '_PMM|power_meter' | tail -3
lsmod | grep acpi_power_meter
If lsmod prints an acpi_power_meter line, continue.
Step 2: Unload the driver
modprobe -r acpi_power_meter
Watch the log for a minute. No new _PMM errors should appear:
dmesg -w | grep -E '_PMM|power_meter'
Press Ctrl+C to stop watching.
Step 3: Keep it from loading at boot
Create a file in /etc/modprobe.d/ that blacklists the driver:
echo "blacklist acpi_power_meter" > /etc/modprobe.d/acpi_power_meter.conf
blacklist tells the system not to load the driver automatically for the hardware it detects. modprobe.d The file name does not matter as long as it ends in .conf; a separate file is easy to find and remove later.
Reboot when it suits you, then confirm the driver stayed off:
lsmod | grep acpi_power_meter
No output means it worked.
What you lose
Without the driver, Linux cannot read the server's power use through ACPI, so tools that read power values under /sys/class/hwmon/ (some monitoring agents do) get nothing from it. Linux kernel You can still see power use in the server's management interface, such as HP iLO or Dell iDRAC.
Better long-term fixes
- Update the server's firmware (BIOS/UEFI and iLO). The vendor may have fixed the power meter method.
- Update the kernel. Newer kernels may handle the buffer differently.
After either update, you can test by removing the blacklist file, loading the driver with modprobe acpi_power_meter, and watching the log again.
Undo
To bring the driver back:
rm /etc/modprobe.d/acpi_power_meter.conf
modprobe acpi_power_meter