openbmc / openbmc

OpenBMC Distribution
Other
1.94k stars 918 forks source link

SEL support in OpenBMC #3283

Closed vinodhinij closed 5 years ago

vinodhinij commented 6 years ago

Hi, Can anyone please let me know if SEL implementation is available in OpenBMC. Can we add and get sel entries. I tried adding SEL, but, not able to see the added sel when giving the getsel list via ipmitool.

Regards, J. Vinodhini

gtmills commented 6 years ago

Hi @vinodhinij, this is a good question for the mailing list, as it's not a bug or feature request. You can sign yourself up at https://lists.ozlabs.org/listinfo/openbmc. @tomjoseph83 Might be able to answer this.

Thanks, Gunnar

vinodhinij commented 6 years ago

Hi Gunnar, Am not able to sign up in the list. Can you please help me out or can I mail directly from this mail ID to tomjoseph ?

Regards, J. Vinodhini

From: Gunnar Mills [mailto:notifications@github.com] Sent: 06 July 2018 00:21 To: openbmc/openbmc openbmc@noreply.github.com Cc: Vinodhini J vinodhinij@amiindia.co.in; Mention mention@noreply.github.com Subject: Re: [openbmc/openbmc] SEL support in OpenBMC (#3283)

Hi @vinodhinijhttps://github.com/vinodhinij, this is a good question for the mailing list, as it's not a bug or feature request. You can sign yourself up at for the list at https://lists.ozlabs.org/listinfo/openbmc. @tomjoseph83https://github.com/tomjoseph83 Might be able to answer this.

Thanks, Gunnar

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/openbmc/openbmc/issues/3283#issuecomment-402818799, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AmzIiSzI1m8yt3dK9VNxKU5vGpdpT3zcks5uDmAigaJpZM4U8dZV.

amboar commented 6 years ago

Am not able to sign up in the list.

What went wrong? Can you please provide more detail? It shouldn't be more complicated than filling out the form, submitting, and then responding to the confirmation email (or clicking the embedded link).

tomjoseph83 commented 6 years ago

When the error logging was designed for the OpenBMC platform, it was decided that there will not be separate repositories for IPMI(SEL), RedFish etc. We came up with https://github.com/openbmc/phosphor-logging and decided that SEL records will be generated from the logging entries in the D-Bus. https://github.com/openbmc/phosphor-host-ipmid can be looked up to understand the current implementation.

This implementation is limited to show only H/W callouts in the SEL descriptively. All other logging entries are shown as system events.

Since there is no repository for SEL, Add SEL command also has a limited scope. In the current implementation on the OpenBMC, it is used as a way to translate host firmware SEL entries to D-Bus logging entries.

This falls short of the way the IPMI specification expects it, partly because of the conscious decision taken not to design OpenBMC around IPMI.

HoangDNguyen commented 6 years ago

Hi Tom,

I tried to use "ipmitool sel list" command, and always see the error type is "Undetermined system hardware failure". And the value of "associations" property in the https://${bmc}/xyz/openbmc_project/logging/entry/ interface always be empty.

It's limitation of OpenBMC?

Thanks and Best regards,

gtmills commented 6 years ago

@tomjoseph83 Can you answer @HoangDNguyen question above?

tomjoseph83 commented 6 years ago

@HoangDNguyen Yeah the "association" is needed to map to the correct FRU that is having the issue. If there are no associations, we put the generic sensor/offset for "Undetermined system hardware failure".

Definitely welcome to come out with a better way to map the D-Bus error log to IPMI SEL's.

jmbills commented 6 years ago

I have been working on a proof-of-concept to move the IPMI SEL entries out of D-Bus into journald instead.

Since journald allows custom metadata for log entries, I've thought of having the SEL message logged to the journal and using metadata to store the necessary IPMI info associated with the entry. Here is an example of logging a type 0x02 system event entry to journald:

sd_journal_send("MESSAGE=%s", message.c_str(),
                            "PRIORITY=%i", selPriority,
                            "MESSAGE_ID=%s", selMessageId,
                            "IPMI_SEL_RECORD_ID=%d", recordId,
                            "IPMI_SEL_RECORD_TYPE=%x", selSystemType,
                            "IPMI_SEL_GENERATOR_ID=%x", genId,
                            "IPMI_SEL_SENSOR_PATH=%s", path.c_str(),
                            "IPMI_SEL_EVENT_DIR=%x", assert,
                            "IPMI_SEL_DATA=%s", selDataStr,
                            NULL);

Using journald should allow for scaling to more SEL entries which should also enable us to support more generic IPMI behavior such as the Add SEL command.

gtmills commented 6 years ago

@vinodhinij Can this be closed now? Thanks!

gtmills commented 5 years ago

No response. Closing.