Thread (7 messages) 7 messages, 6 authors, 2001-09-26

Re: Solutions for Fast Software Upgrade in Linux/PPC

From: Mark Hatle <hidden>
Date: 2001-09-25 15:42:34

Grant Erickson wrote:
I am embarking on a project in which there exists a requirement to take my
embedded system (Walnut board w/ PowerPC 405GP w/ raft of PCI devices) and
allow it to perform a near-zero downtime upgrade/downgrade of
software/firmware.

Of the belief that there are very few new problems, just solutions that
aren't widely known, I have to imagine that the telecommunications carrier
equipment people have solved this problem long ago--albeit probably not
with Linux.

Does anyone know of any commercial or public solutions addressing this
problem in Linux or Linux on the PowerPC?

Anyway, there are a few solution spaces I can envision:

1. Check point all of your driver and application state, reboot, and
   hope that you can warm-start with your check pointed state quickly.

   - This means massaging the boot code, the Linux kernel, the device
     drivers, and the applications to tweak their start-up time.

   - At best, you may just quell kernel printks and disable auto-boot
     countdown in the PROM, at most, buying you a few seconds, if that. If
     it's a few seconds out of five, great. If it's a few out of twenty,
     you've got a lot of work to do--maybe you'll get there...maybe not.
One note.. this has been discussed a lot on the linux kernel mailing
list (well a lot in the past at least.)  If all you will be doing is
maintaining the SAME kernel version till the end of time, and not
changing "critical" datastructures this "upgrade in place" can work.
However, even when moving minor versions of the kernel internal data
structures can change you you run into massive problems...  I would
suggest you scan the linux kernel mailing list (in addition to whatever
someone on this list suggests of course.)

--Mark

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help