All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Huang, Ying" <ying.huang@intel.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: david@lang.hm, nigel@nigel.suspend2.net,
	Kexec Mailing List <kexec@lists.infradead.org>,
	linux-kernel@vger.kernel.org, "Rafael J. Wysocki" <rjw@sisk.pl>,
	Alan Stern <stern@rowland.harvard.edu>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-pm@lists.linux-foundation.org,
	Jeremy Maitin-Shepard <jbms@cmu.edu>
Subject: Re: [PATH 0/1] Kexec jump - v2 - the first step to kexec based hibernation
Date: Tue, 31 Jul 2007 17:25:24 +0800	[thread overview]
Message-ID: <1185873924.23149.86.camel@caritas-dev.intel.com> (raw)
In-Reply-To: <20070731091004.GA2022@elf.ucw.cz>

On Tue, 2007-07-31 at 11:10 +0200, Pavel Machek wrote:
> > Index: kexec-tools-1.101/kexec/arch/i386/crashdump-x86.c
> > ===================================================================
> > --- kexec-tools-1.101.orig/kexec/arch/i386/crashdump-x86.c	2007-07-08 23:00:25.000000000 +0800
> > +++ kexec-tools-1.101/kexec/arch/i386/crashdump-x86.c	2007-07-14 17:06:45.000000000 +0800
> > @@ -428,6 +428,29 @@
> >  	return 0;
> >  }
> >  
> > +/* 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);
> > +	return 0;
> > +}
> 
> This part did not apply for me -- it seems crashdump related and I did
> not have that applied. Is it critical?

This is needed for kexec_jump to work properly. Which version of
kexec-tools do you use? This patch is against 1.101. The kdump patch
must be applied before this patch is applied.

> > Index: kexec-tools-1.101/kexec/kexec.c
> > ===================================================================
> > --- kexec-tools-1.101.orig/kexec/kexec.c	2007-07-14 16:57:26.000000000 +0800
> > +++ kexec-tools-1.101/kexec/kexec.c	2007-07-14 21:04:51.000000000 +0800
> > @@ -660,6 +660,17 @@
> >  	return -1;
> >  }
> >  
> > +/*
> > + *	Jump to the new kernel
> > + */
> > +static int my_jump(void)
> > +{
> > +	int result;
> > +
> > +	result = kexec_jump();
> > +	return result;
> > +}
> > +
> >  static void version(void)
> >  {
> >  	printf("kexec " VERSION " released " RELEASE_DATE "\n");
> > @@ -683,6 +694,7 @@
> >  		" -p, --load-panic     Load the new kernel for use on panic.\n"
> >  		" -u, --unload         Unload the current kexec target kernel.\n"
> >  		" -e, --exec           Execute a currently loaded kernel.\n"
> > +		" -j, --jump           Jump to a currently loaded kernel or jump back to the previous kernel.\n"
> >  		" -t, --type=TYPE      Specify the new kernel is of this type.\n"
> >  		"     --mem-min=<addr> Specify the lowest memory addres to load code into.\n"
> >  		"     --mem-max=<addr> Specify the highest memory addres to load code into.\n"
> > @@ -715,6 +727,7 @@
> >  {
> >  	int do_load = 1;
> >  	int do_exec = 0;
> > +	int do_jump = 0;
> >  	int do_shutdown = 1;
> >  	int do_sync = 1;
> >  	int do_ifdown = 0;
> > @@ -768,6 +781,14 @@
> >  			do_ifdown = 1;
> >  			do_exec = 1;
> >  			break;
> > +		case OPT_JUMP:
> > +			do_load = 0;
> > +			do_shutdown = 0;
> > +			do_sync = 1;
> > +			do_ifdown = 0;
> > +			do_exec = 0;
> > +			do_jump = 1;
> > +			break;
> >  		case OPT_TYPE:
> >  			type = optarg;
> >  			break;
> > @@ -833,6 +854,9 @@
> >  	if ((result == 0) && do_exec) {
> >  		result = my_exec();
> >  	}
> > +	if ((result == 0) && do_jump) {
> > +		result = my_jump();
> > +	}
> >  
> 
> Well, it may be nice to print something to the user he. kexec
> -j does nothing, and does not print error message in case something is
> wrong...

Yes. At least some message should be printed in case something is wrong.
I will fix it in the next version.

Best Regards,
Huang Ying

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: "Huang, Ying" <ying.huang@intel.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: david@lang.hm, nigel@nigel.suspend2.net,
	Kexec Mailing List <kexec@lists.infradead.org>,
	linux-kernel@vger.kernel.org,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-pm@lists.linux-foundation.org,
	Jeremy Maitin-Shepard <jbms@cmu.edu>
Subject: Re: [PATH 0/1] Kexec jump - v2 - the first step to kexec based hibernation
Date: Tue, 31 Jul 2007 17:25:24 +0800	[thread overview]
Message-ID: <1185873924.23149.86.camel@caritas-dev.intel.com> (raw)
In-Reply-To: <20070731091004.GA2022@elf.ucw.cz>

On Tue, 2007-07-31 at 11:10 +0200, Pavel Machek wrote:
> > Index: kexec-tools-1.101/kexec/arch/i386/crashdump-x86.c
> > ===================================================================
> > --- kexec-tools-1.101.orig/kexec/arch/i386/crashdump-x86.c	2007-07-08 23:00:25.000000000 +0800
> > +++ kexec-tools-1.101/kexec/arch/i386/crashdump-x86.c	2007-07-14 17:06:45.000000000 +0800
> > @@ -428,6 +428,29 @@
> >  	return 0;
> >  }
> >  
> > +/* 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);
> > +	return 0;
> > +}
> 
> This part did not apply for me -- it seems crashdump related and I did
> not have that applied. Is it critical?

This is needed for kexec_jump to work properly. Which version of
kexec-tools do you use? This patch is against 1.101. The kdump patch
must be applied before this patch is applied.

> > Index: kexec-tools-1.101/kexec/kexec.c
> > ===================================================================
> > --- kexec-tools-1.101.orig/kexec/kexec.c	2007-07-14 16:57:26.000000000 +0800
> > +++ kexec-tools-1.101/kexec/kexec.c	2007-07-14 21:04:51.000000000 +0800
> > @@ -660,6 +660,17 @@
> >  	return -1;
> >  }
> >  
> > +/*
> > + *	Jump to the new kernel
> > + */
> > +static int my_jump(void)
> > +{
> > +	int result;
> > +
> > +	result = kexec_jump();
> > +	return result;
> > +}
> > +
> >  static void version(void)
> >  {
> >  	printf("kexec " VERSION " released " RELEASE_DATE "\n");
> > @@ -683,6 +694,7 @@
> >  		" -p, --load-panic     Load the new kernel for use on panic.\n"
> >  		" -u, --unload         Unload the current kexec target kernel.\n"
> >  		" -e, --exec           Execute a currently loaded kernel.\n"
> > +		" -j, --jump           Jump to a currently loaded kernel or jump back to the previous kernel.\n"
> >  		" -t, --type=TYPE      Specify the new kernel is of this type.\n"
> >  		"     --mem-min=<addr> Specify the lowest memory addres to load code into.\n"
> >  		"     --mem-max=<addr> Specify the highest memory addres to load code into.\n"
> > @@ -715,6 +727,7 @@
> >  {
> >  	int do_load = 1;
> >  	int do_exec = 0;
> > +	int do_jump = 0;
> >  	int do_shutdown = 1;
> >  	int do_sync = 1;
> >  	int do_ifdown = 0;
> > @@ -768,6 +781,14 @@
> >  			do_ifdown = 1;
> >  			do_exec = 1;
> >  			break;
> > +		case OPT_JUMP:
> > +			do_load = 0;
> > +			do_shutdown = 0;
> > +			do_sync = 1;
> > +			do_ifdown = 0;
> > +			do_exec = 0;
> > +			do_jump = 1;
> > +			break;
> >  		case OPT_TYPE:
> >  			type = optarg;
> >  			break;
> > @@ -833,6 +854,9 @@
> >  	if ((result == 0) && do_exec) {
> >  		result = my_exec();
> >  	}
> > +	if ((result == 0) && do_jump) {
> > +		result = my_jump();
> > +	}
> >  
> 
> Well, it may be nice to print something to the user he. kexec
> -j does nothing, and does not print error message in case something is
> wrong...

Yes. At least some message should be printed in case something is wrong.
I will fix it in the next version.

Best Regards,
Huang Ying

WARNING: multiple messages have this Message-ID (diff)
From: "Huang, Ying" <ying.huang@intel.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
	nigel@nigel.suspend2.net, "Rafael J. Wysocki" <rjw@sisk.pl>,
	Jeremy Maitin-Shepard <jbms@cmu.edu>,
	Alan Stern <stern@rowland.harvard.edu>,
	Andrew Morton <akpm@linux-foundation.org>,
	david@lang.hm, linux-kernel@vger.kernel.org,
	linux-pm@lists.linux-foundation.org,
	Kexec Mailing List <kexec@lists.infradead.org>
Subject: Re: [PATH 0/1] Kexec jump - v2 - the first step to kexec based hibernation
Date: Tue, 31 Jul 2007 17:25:24 +0800	[thread overview]
Message-ID: <1185873924.23149.86.camel@caritas-dev.intel.com> (raw)
In-Reply-To: <20070731091004.GA2022@elf.ucw.cz>

On Tue, 2007-07-31 at 11:10 +0200, Pavel Machek wrote:
> > Index: kexec-tools-1.101/kexec/arch/i386/crashdump-x86.c
> > ===================================================================
> > --- kexec-tools-1.101.orig/kexec/arch/i386/crashdump-x86.c	2007-07-08 23:00:25.000000000 +0800
> > +++ kexec-tools-1.101/kexec/arch/i386/crashdump-x86.c	2007-07-14 17:06:45.000000000 +0800
> > @@ -428,6 +428,29 @@
> >  	return 0;
> >  }
> >  
> > +/* 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);
> > +	return 0;
> > +}
> 
> This part did not apply for me -- it seems crashdump related and I did
> not have that applied. Is it critical?

This is needed for kexec_jump to work properly. Which version of
kexec-tools do you use? This patch is against 1.101. The kdump patch
must be applied before this patch is applied.

> > Index: kexec-tools-1.101/kexec/kexec.c
> > ===================================================================
> > --- kexec-tools-1.101.orig/kexec/kexec.c	2007-07-14 16:57:26.000000000 +0800
> > +++ kexec-tools-1.101/kexec/kexec.c	2007-07-14 21:04:51.000000000 +0800
> > @@ -660,6 +660,17 @@
> >  	return -1;
> >  }
> >  
> > +/*
> > + *	Jump to the new kernel
> > + */
> > +static int my_jump(void)
> > +{
> > +	int result;
> > +
> > +	result = kexec_jump();
> > +	return result;
> > +}
> > +
> >  static void version(void)
> >  {
> >  	printf("kexec " VERSION " released " RELEASE_DATE "\n");
> > @@ -683,6 +694,7 @@
> >  		" -p, --load-panic     Load the new kernel for use on panic.\n"
> >  		" -u, --unload         Unload the current kexec target kernel.\n"
> >  		" -e, --exec           Execute a currently loaded kernel.\n"
> > +		" -j, --jump           Jump to a currently loaded kernel or jump back to the previous kernel.\n"
> >  		" -t, --type=TYPE      Specify the new kernel is of this type.\n"
> >  		"     --mem-min=<addr> Specify the lowest memory addres to load code into.\n"
> >  		"     --mem-max=<addr> Specify the highest memory addres to load code into.\n"
> > @@ -715,6 +727,7 @@
> >  {
> >  	int do_load = 1;
> >  	int do_exec = 0;
> > +	int do_jump = 0;
> >  	int do_shutdown = 1;
> >  	int do_sync = 1;
> >  	int do_ifdown = 0;
> > @@ -768,6 +781,14 @@
> >  			do_ifdown = 1;
> >  			do_exec = 1;
> >  			break;
> > +		case OPT_JUMP:
> > +			do_load = 0;
> > +			do_shutdown = 0;
> > +			do_sync = 1;
> > +			do_ifdown = 0;
> > +			do_exec = 0;
> > +			do_jump = 1;
> > +			break;
> >  		case OPT_TYPE:
> >  			type = optarg;
> >  			break;
> > @@ -833,6 +854,9 @@
> >  	if ((result == 0) && do_exec) {
> >  		result = my_exec();
> >  	}
> > +	if ((result == 0) && do_jump) {
> > +		result = my_jump();
> > +	}
> >  
> 
> Well, it may be nice to print something to the user he. kexec
> -j does nothing, and does not print error message in case something is
> wrong...

Yes. At least some message should be printed in case something is wrong.
I will fix it in the next version.

Best Regards,
Huang Ying

  reply	other threads:[~2007-07-31  9:25 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-15  7:13 [PATH 0/1] Kexec jump - v2 - the first step to kexec based hibernation Huang, Ying
2007-07-15  7:13 ` Huang, Ying
2007-07-15  9:08 ` Nigel Cunningham
2007-07-15  9:08 ` Nigel Cunningham
2007-07-15  9:08   ` Nigel Cunningham
2007-07-15 10:09 ` Rafael J. Wysocki
2007-07-15 10:09   ` Rafael J. Wysocki
2007-07-15 10:09 ` Rafael J. Wysocki
2007-07-19  1:04 ` Andrew Morton
2007-07-19  1:04 ` Andrew Morton
2007-07-19  1:04   ` Andrew Morton
2007-07-19  2:15   ` Nigel Cunningham
2007-07-19  2:15     ` Nigel Cunningham
2007-07-19  2:15     ` Nigel Cunningham
2007-07-19  3:30     ` david
2007-07-19  3:30       ` david
2007-07-19  3:30     ` david
2007-07-19  6:43   ` Huang, Ying
2007-07-19  6:43   ` Huang, Ying
2007-07-19  6:43     ` Huang, Ying
2007-07-19  9:13     ` Rafael J. Wysocki
2007-07-19  9:13       ` Rafael J. Wysocki
2007-07-19  9:13     ` Rafael J. Wysocki
2007-07-31  9:10 ` Pavel Machek
2007-07-31  9:10 ` Pavel Machek
2007-07-31  9:10   ` Pavel Machek
2007-07-31  9:25   ` Huang, Ying [this message]
2007-07-31  9:25     ` Huang, Ying
2007-07-31  9:25     ` Huang, Ying
2007-07-31 10:52     ` Eric W. Biederman
2007-07-31 10:52       ` Eric W. Biederman
2007-07-31 10:52       ` Eric W. Biederman
2007-07-31 11:12       ` Pavel Machek
2007-07-31 11:12         ` Pavel Machek
2007-07-31 11:12         ` Pavel Machek
2007-08-01  1:16       ` Huang, Ying
2007-08-01  1:16         ` Huang, Ying
2007-08-01  1:16       ` Huang, Ying
2007-07-31 11:14     ` Pavel Machek
2007-07-31 11:14       ` Pavel Machek
2007-07-31 11:14     ` Pavel Machek
2007-07-31 11:04 ` Pavel Machek
2007-07-31 11:04 ` Pavel Machek
2007-07-31 11:04   ` Pavel Machek
2007-08-01  1:34   ` Huang, Ying
2007-08-01  1:34   ` Huang, Ying
2007-08-01  1:34     ` Huang, Ying
2007-08-05 18:55     ` Pavel Machek
2007-08-05 18:55     ` Pavel Machek
2007-08-05 18:55       ` Pavel Machek
2007-08-06  2:31       ` Huang, Ying
2007-08-06  2:31       ` Huang, Ying
2007-08-06  2:31         ` Huang, Ying
2007-08-06  9:02         ` Pavel Machek
2007-08-06  9:02           ` Pavel Machek
2007-08-06  9:02           ` Pavel Machek
2007-08-06 13:22           ` Huang, Ying
2007-08-06 13:22             ` Huang, Ying
2007-08-06 13:22           ` Huang, Ying
  -- strict thread matches above, loose matches on Subject: below --
2007-07-15  7:13 Huang, Ying

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1185873924.23149.86.camel@caritas-dev.intel.com \
    --to=ying.huang@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@lang.hm \
    --cc=ebiederm@xmission.com \
    --cc=jbms@cmu.edu \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=nigel@nigel.suspend2.net \
    --cc=pavel@ucw.cz \
    --cc=rjw@sisk.pl \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.