Parse PELs sent by OpenPOWER host firmware

Deepak Kodihalli dkodihal at linux.vnet.ibm.com
Wed Mar 14 00:39:44 AEDT 2018


Hi,

The SELs/eSELs (System Event Log) that OpenBMC receives from 
hostboot/skiboot today are not interpreted, and are dumped as-is in a 
property of the error log D-Bus object. This means that if there's a PEL 
(Platform Event Log) hidden in the eSEL, admins/users of the error log 
need to depend on external tools to parse the PEL to human readable text.

Here's a proposal to have the BMC itself parse such eSELs (the 
motivation is to make the OpenBMC error logs more useful in this 
context, without needing the extra steps to parse such errors) :

- Separate this from phosphor-logging. This code can't go to a phosphor 
app, because it's OpenPOWER specific. Have, for example, an 
openpower-logging app implement a D-Bus interface to parse out a PEL 
from an eSEL. This app will host it's own D-Bus service.

- Such an app can watch for error D-Bus objects being created in the 
phosphor namespace. If it finds an eSEL in an error log, it can attempt 
to parse a PEL (if there's one), and store the PELs parsed text 
representation in a D-Bus property.

- The app can create a D-Bus object with the same path as the original 
object and have a D-Bus object-manager at the error log root path, so 
that when someone uses the OpenBMC REST API to read an error log, 
properties across all D-Bus services will be returned 
(phosphor-rest-server does this today already). This means with the 
existing REST API to enumerate error logs, a parsed PEL would be 
returned, if present.

- To parse the PEL, use opal-elog-parse.

I have some quickly hacked-up code based on the proposal above, and I 
can submit that for review. In general, this is appearing to me to be 
one of the ways to add host-specific information to phosphor D-Bus 
objects, without breaking the phosphor D-Bus API or changing the REST URIs.

Thanks,
Deepak



More information about the openbmc mailing list