SMBIOS / DMI Event Logs in Linux?

Mike Waychison
2011-02-10T23:18:23Z

Hey guys,

I need some guidance. Do either of you know of any attempts to have the
kernel decode and display/interact with DMI type 15: System Event Log?

The event log I'm dealing with while cleaning up the "gsmi" driver
interacts with a log that is modeled after the System Event Log. I'm
wondering if there is any precedent for a clean way to expose the event
log, I'd like to use it (replacing the ioctls from my earlier patch
series send-out).

FYI, we use OEM specific headers and descriptors, which probably doesn't
help.

Do most folks that need access to this data rely on /dev/mem and
dmidecode? I'd like to avoid going that route if possible.

Lacking any better ideas though, I was thinking of something along the
lines of the following:

$ cat /sys/firmware/gsmi/eventlog
<offset> <boot number> <recorded time> <quoted reason> <optional data>
...

with a single event log entry per line.
<offset> would be the record number,
<boot number> is the recorded boot number
<recorded time> comes from each record,
<quoted reason> is the English translation of Event Log Types from
the DMTF standard + vendor extended types we use.
<optional data> is space separated values associated with <quoted reason>

We also have a interfaces for clearing a fraction of the log, which I'm
thinking is probably best expressed as a value of 0 through 100 written
to a file, maybe /sys/firmware/gsmi/clear_eventlog ?

As well, we need to export to userland a way to append data to the log.
I was thinking we could write a parser to take in an entry and ensure
it is well-formatted, but I'm a little hesitant to go this route as our
records embed a timestamp, which I'd rather not have to figure out from
within the kernel. Perhaps a raw (binary) interface to write records to
the log would suffice? /sys/firmware/gsmi/append_to_eventlog ?

If so, does /sys/firmware/gsmi/raw_eventlog make sense too?

Thanks,

Mike Waychison