Proposal for caching/buffering POST codes list for one boot process.

Tanous, Ed ed.tanous at intel.com
Tue Aug 28 16:09:37 AEST 2018


> Obvious another thing we would need to consider is performance. A host booting session could produce dozens or hundreds of POST codes depending on how 
> verbose the BIOS is, and we should be careful not to design something that creates too much DBus traffic. These embedded processors are not performance ?
> beasts by any means.

I would be really surprised if POST codes were ever a performance bottleneck even in with the worst implementation possible.  Hundreds of post codes in a minute is still orders of magnitude less data than the sensors are already pushing over DBus.

>On Mon, Aug 27, 2018 at 4:52 PM Kun Yi <kun.yi.731 at gmail.com> wrote:
>I think the choice of *where* to put such buffering warrants some thoughts and design. Going through what I have thought:

> 1. It's possible to implement host state detection and host POST code buffering all in a client daemon, which is a long-lived process that
> - keeps listening to POST codes published
> - keeps polling host state
> - when host power state toggled, write the POST codes received to a file on disk
This would mean that partial boots, or boots that have over current issues wouldn't be persisted at all.  It's a bit of an implementation detail at this point, but I suspect we're going to want to persist post codes more often than just every boot.

> Pros of this approach is that server daemons are kept simple. POST code server doesn't need to talk to host state daemon or even assume its existence.
> Pros of buffering on server side: potentially there will be more than one identities needing the list of POST codes. IPMI? Logging? It would really help if we can 
> identify some concrete use cases.
I think we also need to consider that the POST code saving mechanism should be up as soon as possible after boot to make sure that in the case where power restore policy is set to ON, we can capture as many post codes as possible from the host booting.  In previous implementations, this meant buffering in the kernel driver, and making the application a lightweight system for persisting POST codes, rather than actually capture them itself.



More information about the openbmc mailing list