Persistence



next up previous
Next: Servers Up: The Fairisle Network Console Previous: Protocol

Persistence

If a port crashes in such a way that the networking code is rendered inoperable, the diagnostic information about that crash cannot be sent over the network console connection. To avoid loosing this console information, the network console code attempts to keep a persistent buffer of pending output across kernel instances.

This buffer is kept in the last page of RAM, which is acquired specifically for this purpose from the VM system. A checksum is kept of the control fields in this buffer so that when the next network console starts it can check the validity of the buffer and forward any pending output from the previous instance.

It is interesting to note that the DRAMs decay sufficiently slowly that it is usually possible to recover the console log of a machine even if it has been switched off and on again, provided the power outage is only a few seconds.

At the time of writing, the boot roms in the FPC3 systems implement this protocol, but do not implement persistence. This usually means that any buffered output from a kernel will be forwarded and printed at the next occasion that a new kernel is booted, and not when the next console output is received from that machine. This can confuse the naïve user.



Richard Black