void kexec_hot_swap()
{
void *kern = load_kernel_into_mem();
syscall_queue(ENABLE); /* queue all sys calls */
irq_queue(ENABLE); /* queue all irqs */
/* bring new kernel's state inline with current one's.
this includes all data structures, module hooks, etc.
this needs to be very fast as irqs will be pending... */
synch_kernel(kern);
kernel_start(kern); /* fire in the hole... */
}
at this point the new kernel would know it is being started as a
hot swap throught a flag or something, and dequeue the irq's
that are pending, followed by the sys calls that are waiting.
if this goes how i think it should, a user running on the system
wont even know the kernel was swapped.
what do you think? is it do-able?
=====
Main Entry: anom·a·lous
1 : inconsistent with or deviating from what is usual, normal, or expected: IRREGULAR, UNUSUAL
2 (a) : of uncertain nature or classification (b) : marked by incongruity or contradiction : PARADOXICAL
synonym see IRREGULAR
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/