Hi! Looks interesting... but I was feeling strange dejavu reading this... and that's because you pasted the changelog twice :-). > Kexec base hibernation has some potential advantages over uswsusp and > suspend2. Some most obvious advantages are: > > 1. The hibernation image size can exceed half of memory size easily. Yes. > 2. The hibernation image can be written to and read from almost > anywhere, such as USB disk, NFS. We could do USB disk with uswsusp... NFS would be harder. How fast can kexec boot secondary kernel? > This patch implements the functionality of "jumping from kexeced > kernel to original kernel". That is, the following sequence is > possible: > > 1. Boot a kernel A > 2. Work under kernel A > 3. Kexec another kernel B in kernel A > 4. Work under kernel B > 5. Jump from kernel B to kernel A > 6. Continue work under kernel A Nice! > 2. Compile the kexec-tools with kdump and kjump patches added, the > kdump patch can be found at: > > http://lse.sourceforge.net/kdump/patches/kexec-tools-1.101-dkump10.patch I got 404 error :-(. > 3. Boot compiled kernel, the reserved crash kernel memory region must > be added to kernel command line as following: > > crashkernel=<XX>M@<XX>M > > Where, <XX> should be replaced by the real memory size and position. How much memory do you suggest to reserve? 64M? > 7. In the kexec booted kernel, trigger the jumping back with following > shell command. > > echo <a>:<b> > /sys/power/resume > > Where <a> and <b> is non-negative integer, at least one of them must > be non-zero. What does a and b mean? [Was it more than three copies? If they were non-identical, assume I read some random one]. > +/* Adds the kexec_backup= command line parameter to command line. */ > +static int cmdline_add_backup(char *cmdline, unsigned long addr) > +{ > + int cmdlen, len, align = 1024; > + char str[30], *ptr; > + > + /* Passing in kexec_backup=xxxK format. Saves space required in cmdline. > + * Ensure 1K alignment*/ > + if (addr%align) > + return -1; > + addr = addr/align; > + ptr = str; > + strcpy(str, " kexec_backup="); > + ptr += strlen(str); > + ultoa(addr, ptr); > + strcat(str, "K"); > + len = strlen(str); > + cmdlen = strlen(cmdline) + len; > + if (cmdlen > (COMMAND_LINE_SIZE - 1)) > + die("Command line overflow\n"); > + strcat(cmdline, str); > +#if 0 > + printf("Command line after adding backup\n"); > + printf("%s\n", cmdline); > +#endif > + return 0; > +} printf()? ...and please remove out commented code. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm