Adding support for custom SEL records

Vernon Mauery vernon.mauery at linux.intel.com
Tue Oct 25 09:56:04 AEDT 2022


On 24-Oct-2022 03:03 PM, Brad Bishop wrote:
>This is helpful, thanks Ed.
>
>On Mon, Oct 24, 2022 at 10:59:51AM -0700, Ed Tanous wrote:
>>From what I recall, the requirements were:
>>- Ability to store 4000 logs in a rotating buffer (original desire was
>>10,000, but 4000 was picked as a middle-ground that could be
>>implemented).
>
>A DBus object based implementation could meet this requirement, right?
>
>>- Ability to log 100+ entries per second, including when buffers get
>>overwritten.
>
>I guess I would not be shocked if DBus objects + serialization might 
>not be able to sustain this rate of incoming logs.  Maybe it depends 
>on the filesystem or how the data is serialized in the filesystem.  
>The DBus approach creates many files.  Obviously the syslog approach 
>is only using a couple of files.
>
>Do you think this kind of requirement is typical?  Quoting Patrick 
>from another thread here:
>
>>don't think anyone is intending to create 10k events in the span of
>>a minute
>
>100/s is only 6k in a minute but that is getting pretty close...

I think 100/s is a pretty high rate. Actually creating events at that 
rate seems like a signal that the system is in a bit of distress. 
Really, I think the gating factor is how fast they get processed at boot 
time. If loading the events onto D-Bus as objects at boot time is the 
same cost as creating them to start with, 100/s is insufficient for a 
large number of log entries.

>>- (abstract) Log storage should be aware of hardware limitations (SPI
>>flash cell write endurance) and allow writing N logs per minute for
>>the lifetime of the machine without hardware failure.  (I forget the
>>value of N).
>
>Do you think the rsyslog implementation does better at this?  Why?

One file with jffs2 uses fewer bytes than many files. When we were 
trying to figure out how to do a file-based implementation to start 
with, we tried individual files and found we ran out of space quickly 
even though the total size of the files was not that great. We even 
tried using empty files, encoding the data into the filenames themselves 
in hopes to only use inodes but that seemed to suffer the same issue. A 
single file that held all the entries was fast, small, and easy to 
handle.

>>- "ipmitool sensor list" should return the results from a full sel log
>>in less than 1 second (renegotiated from 200ms, the faster the
>>better).
>
>Ok, again I would not be shocked if DBus objects weren't able to 
>deliver on this.

I imagine dbus-broker could handle it, especially on a dual-core system. 
I am not sure the systemd dbus daemon was able to handle it on the 
ast2500.

>>- The logging implementation should be able to support a well-formed,
>>version controlled, Redfish MessageRegistry to the DMTF
>>specifications.
>
>Do you think a DBus object based implementation could meet this 
>requirement?
>
>>- The logging implementation should be able to implement a
>>well-formed, stable, and ACID compliant IPMI SEL command
>>implementation.
>
>Do you think a DBus object based implementation could meet this 
>requirement?
>
>>
>>I don't believe the current DBus implementation can meet the previous
>>requirements,
>
>The motivation of my questions above is to understand which 
>requirements cannot be met by something based on DBus objects.

I think it is possible to come up with a dbus interface that supports 
the various requirements in this thread. I don't believe that the 
current implementation is sufficient though.


--Vernon


More information about the openbmc mailing list