LWN.net Logo

my kexec experience

my kexec experience

Posted May 5, 2004 19:20 UTC (Wed) by tjw.org (guest, #20716)
Parent article: Reboot Linux faster using kexec (developerWorks)

I've been using the kexec patches for a few months now with pretty good success.

I was able to upgrade from 2.6.2 -> 2.6.3 -> 2.6.4 -> 2.6.5 using
Randy Dunlap's patches:
http://developer.osdl.org/rddunlap/kexec/

That is to say I was able to install a new kernel and reboot my workstation without going all the way down to the BIOS/SCSI BIOS.

In my opinion there are still a lot of things that need fixing before this makes it into the mainline.

1) Video Mode Selection and Frame Buffer Console are broken. You need to use the default console or you'll get a mangled (or blank) console after
doing a kexec reboot.
2) The e100 ethernet driver doesn't work after kexec reboot "e100: eth%d: e100_eeprom_load: EEPROM corrupted". However, the compatible Becker driver eepro100 works fine on my system.
3) Sometimes all console messages get printed to every vitural tty after kexec reboot.
4) Nobody seems to be maintaining kexec-tools so you still have to hack the latest version to use the correct syscall number.

Also it would be great if there were some way skip probing new devices and instead maintain a known device table (as Randy mentioned in a recent [fastboot] mailing list post). Hell, if this could be implemented just for the SCSI drivers, I'de call it good enough since over half my reboot time is waiting for the SCSI driver to probe IDs.


(Log in to post comments)

my kexec experience

Posted May 6, 2004 17:37 UTC (Thu) by hildeb (subscriber, #6532) [Link]

Could you please post a patch for the syscall?

my kexec experience

Posted May 7, 2004 15:02 UTC (Fri) by tjw.org (guest, #20716) [Link]

diff -urN kexec-tools-1.8.orig/kexec/kexec-syscall.c kexec-tools-1.8/kexec/kexec-syscall.c
--- kexec-tools-1.8.orig/kexec/kexec-syscall.c  2002-11-18 00:58:05.000000000 -0600
+++ kexec-tools-1.8/kexec/kexec-syscall.c       2004-02-12 11:29:01.000000000 -0600
@@ -22,7 +22,7 @@
 #define LINUX_REBOOT_CMD_KEXEC         0x45584543
 
 
-#define __NR_kexec_load 259
+#define __NR_kexec_load 274
 _syscall4(int, reboot, int, magic1, int, magic2, int, cmd, void*, arg);
 _syscall4(long, kexec_load, void *, entry, unsigned long, nr_segments, struct kexec_segment *, segments, unsigned long, flags);

still getting errors compiling kexec-tools 1.8

Posted May 13, 2004 15:44 UTC (Thu) by cyberic (guest, #21568) [Link]

I try to compile it with gcc version 3.3.3 (Debian 20040429)

And I get these errors:
gcc -Wall -g -O2 -fno-strict-aliasing -I./util_lib/include -DVERSION='"1.8"' -DRELEASE_DATE='"01 December 2002"' -o objdir/kexec/kexec-syscall.o -c kexec/kexec-syscall.c
kexec/kexec-syscall.c: In function `reboot':
kexec/kexec-syscall.c:26: error: invalid register name `r0' for register variable
kexec/kexec-syscall.c:26: error: invalid register name `r1' for register variable
kexec/kexec-syscall.c:26: error: invalid register name `r2' for register variable
kexec/kexec-syscall.c:26: error: invalid register name `r3' for register variable
kexec/kexec-syscall.c:26: error: invalid register name `r0' for register variable
kexec/kexec-syscall.c:26: error: unknown register name `lr' in `asm'
kexec/kexec-syscall.c: In function `kexec_load':
kexec/kexec-syscall.c:27: error: invalid register name `r0' for register variable
kexec/kexec-syscall.c:27: error: invalid register name `r1' for register variable
kexec/kexec-syscall.c:27: error: invalid register name `r2' for register variable
kexec/kexec-syscall.c:27: error: invalid register name `r3' for register variable
kexec/kexec-syscall.c:27: error: invalid register name `r0' for register variable
kexec/kexec-syscall.c:27: error: unknown register name `lr' in `asm'
make: *** [objdir/kexec/kexec-syscall.o] Error 1

any help?

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds