IPMI-KCS Interrupt Support on 12G Servers on Linux OSes

TechCenter

DellTechCenter.com is a community for IT professionals that focuses on Data Center and End User Computing best practices. Here you can learn about and share knowledge about Dell products and solutions.

IPMI-KCS Interrupt Support on 12G Servers on Linux OSes

Dell recently announced 12th Generation PowerEdge Servers. It supports host of new features and Hardware. One such hardware feature is to use KCS interrupts for IPMI communication from Linux OS to Baseboard Management Controller (BMC).

In the absence of KCS Interrupts, the IPMI driver would spawn a kernel thread [ kipmi0 ] which is periodically invoked to carry out IPMI transactions from Host Linux OS to BMC. This kernel thread eats up considerable CPU cycles over the course of IPMI transactions. And, most of the time this thread executes without doing any productive work. It just reads the _kcs_interface_status_register (IPMI spec – table9-1) present in BMC. Depending on the values of various bits on the register, IPMI driver regulates IPMI transaction from Linux OS to BMC. The only way Linux IPMI driver will know about these changes is to read this register periodically which is present in the BMC.

In case of interrupt mode, IPMI driver doesn’t require a kernel thread to poll the status of the _kcs_interface_status_register for any changes. Whenever BMC changes this register value, it alerts the IPMI driver using an interrupt. IPMI driver’s ISR routine reads this status register value to carry out IPMI transaction. By enabling IPMI Interrupts, IPMI intensive applications on your Linux OS bring down the CPU load effectively. Please note that IPMI communication over LAN will not use interrupt functionality, since this communication happens over network interface.

The support for IPMI-KCS interrupt on your Dell PowerEdge Platform can be checked in SMBIOS table using the following command: