[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: hot patching



Pratap Chakravarthy wrote (pratap.chakravarthy@xxxxxxxxx):

> Can you please tell me the feasibility of hot patching in an operating
> system like linux and if possible please provide me with any details or
> pointers on that.  I saw in the sun's web site that they have provided
> hot patching in their solaris 8. How far it is reliable.

Reliability of hot patching is questionable. I've seen solaris "panic" after a
hotpatch. I would not hotfix a busy running system, planned downtime sounds
safer. But that does not mean that hot patching is a bad idea anyway.

> what is hot patching ?
>  It is nothing but replacing a function present in the memory "on fly".In
>  usual cases suppose there is  a  bug in the kernel code, that bug has to be
>  removed and then compiled and linked to get the image [kernel image],which
>  is then booted. Here in hot patching the debuged function has to be
>  compiled. Then it is linked with the kernel without rebooting the system,
>  on the fly.

> I dont know whether this facility is really required for linux. But for any
> OS developer, this tool is a required one.

Possible solutions for an OS developer who does not want to reboot -

* Whenever possible, compile your code as a kernel module. You can load/unload
  your code without rebooting.
* Run/debug the kernel you're developing in user mode. See "use mode linux".
* Rewrite the linux kernel in erlang (just kidding...)

The closest linux ever came to restarting without rebooting (in the
Ctrl+Alt+Del sense) was with the "two kernel monte". This invloves restarting
with a new kernel without rebooting the machine.
Note: You will kill all processes as a result, so this is probably not what
you want.

Due to its modular design, hotpatching is easier with micro-kernel
implementations like the Hurd. Even then, there may be seveal bugs which
cannot be hotpatched.

- Raja