All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Young <dyoung@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, kexec@lists.infradead.org,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Neil Horman <nhorman@redhat.com>, Ingo Molnar <mingo@kernel.org>,
	Vivek Goyal <vgoyal@redhat.com>, Tony Luck <tony.luck@intel.com>,
	Anton Vorontsov <avorontsov@ru.mvista.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Hari Bathini <hbathini@linux.vnet.ibm.com>,
	dzickus@redhat.com, bhe@redhat.com
Subject: Re: [PATCH] kdump: add default crashkernel reserve kernel config options
Date: Fri, 25 May 2018 10:43:39 +0800	[thread overview]
Message-ID: <20180525024339.GA2720@dhcp-128-65.nay.redhat.com> (raw)
In-Reply-To: <87bmd53t0p.fsf@xmission.com>

Hi Eric,

On 05/24/18 at 11:41am, Eric W. Biederman wrote:
> Dave Young <dyoung@redhat.com> writes:
> 
> > Hi Eric,
> > On 05/23/18 at 10:53am, Eric W. Biederman wrote:
> >> Dave Young <dyoung@redhat.com> writes:
> >> 
> >> > [snip]
> >> >
> >> >> >  
> >> >> > +config CRASHKERNEL_DEFAULT_THRESHOLD_MB
> >> >> > +	int "System memory size threshold for kdump memory default reserving"
> >> >> > +	depends on CRASH_CORE
> >> >> > +	default 0
> >> >> > +	help
> >> >> > +	  CRASHKERNEL_DEFAULT_MB is used as default crashkernel value if
> >> >> > +	  the system memory size is equal or bigger than the threshold.
> >> >> 
> >> >> "the threshold" is rather vague.  Can it be clarified?
> >> >> 
> >> >> In fact I'm really struggling to understand the logic here....
> >> >> 
> >> >> 
> >> >> > +config CRASHKERNEL_DEFAULT_MB
> >> >> > +	int "Default crashkernel memory size reserved for kdump"
> >> >> > +	depends on CRASH_CORE
> >> >> > +	default 0
> >> >> > +	help
> >> >> > +	  This is used as the default kdump reserved memory size in MB.
> >> >> > +	  crashkernel=X kernel cmdline can overwrite this value.
> >> >> > +
> >> >> >  config HAVE_IMA_KEXEC
> >> >> >  	bool
> >> >> >  
> >> >> > @@ -143,6 +144,24 @@ static int __init parse_crashkernel_simp
> >> >> >  	return 0;
> >> >> >  }
> >> >> >  
> >> >> > +static int __init get_crashkernel_default(unsigned long long system_ram,
> >> >> > +					  unsigned long long *size)
> >> >> > +{
> >> >> > +	unsigned long long sz = CONFIG_CRASHKERNEL_DEFAULT_MB;
> >> >> > +	unsigned long long thres = CONFIG_CRASHKERNEL_DEFAULT_THRESHOLD_MB;
> >> >> > +
> >> >> > +	thres *= SZ_1M;
> >> >> > +	sz *= SZ_1M;
> >> >> > +
> >> >> > +	if (sz >= system_ram || system_ram < thres) {
> >> >> > +		pr_debug("crashkernel default size can not be used.\n");
> >> >> > +		return -EINVAL;
> >> >> 
> >> >> In other words,
> >> >> 
> >> >> 	if (system_ram <= CONFIG_CRASHKERNEL_DEFAULT_MB ||
> >> >> 	    system_ram < CONFIG_CRASHKERNEL_DEFAULT_THRESHOLD_MB)
> >> >> 		fail;
> >> >> 
> >> >> yes?
> >> >> 
> >> >> How come?  What's happening here?  Perhaps a (good) explanatory comment
> >> >> is needed.  And clearer Kconfig text.
> >> >> 
> >> >> All confused :(
> >> >
> >> > Andrew, I tuned it a bit, removed the check of sz >= system_ram, so if
> >> > the size is too large and kernel can not find enough memory it will
> >> > still fail in latter code.
> >> >
> >> > Is below version looks clearer?
> >> 
> >> What is the advantage of providing this in a kconfig option rather
> >> than on the kernel command line as we can now?
> >
> > It is not a replacement of the cmdline, this can be a supplement to
> > the crashkernel command line.  For a lot of common use cases if we have
> > the auto reservation user just do not need to manually set the cmdline
> > for example on a virtual machine and usual setup (except of the
> > comlicate storage and very large machines).  The crashkernel=auto
> > has been used for long time, Red Hat QE tested it on a lot of different
> > lab machines and proved it works well.  Kdump usually just works so admin
> > do little work to enable kdump.
> >
> > But the crashkernel=auto implementation has some drawbacks that is it
> > is more like embed policy in the code and it is not flexible like a
> > config option.
> 
> Have you considered using the builtin command line aka CONFIG_CMDLINE?
> If as you are reserving a fixed amount of memory as your patch does that
> should be sufficient, and doable without any kernel changes.

Hmm, even in builtin cmdline it is same as a explict used crashkernel=.
If we think from a distribution point of view, it will be hard to
differentiate the builtin provided param and bootloader provided
params. It looks odd to see two crashkernel= when `cat /proc/cmdline`,
it will confuse people and there could cause compatibility problems
because it is explict value visible in kernel cmdline. 

Thanks
Dave

WARNING: multiple messages have this Message-ID (diff)
From: Dave Young <dyoung@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: dzickus@redhat.com, Neil Horman <nhorman@redhat.com>,
	Tony Luck <tony.luck@intel.com>,
	bhe@redhat.com, Michael Ellerman <mpe@ellerman.id.au>,
	kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
	Hari Bathini <hbathini@linux.vnet.ibm.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Anton Vorontsov <avorontsov@ru.mvista.com>,
	Ingo Molnar <mingo@kernel.org>, Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [PATCH] kdump: add default crashkernel reserve kernel config options
Date: Fri, 25 May 2018 10:43:39 +0800	[thread overview]
Message-ID: <20180525024339.GA2720@dhcp-128-65.nay.redhat.com> (raw)
In-Reply-To: <87bmd53t0p.fsf@xmission.com>

Hi Eric,

On 05/24/18 at 11:41am, Eric W. Biederman wrote:
> Dave Young <dyoung@redhat.com> writes:
> 
> > Hi Eric,
> > On 05/23/18 at 10:53am, Eric W. Biederman wrote:
> >> Dave Young <dyoung@redhat.com> writes:
> >> 
> >> > [snip]
> >> >
> >> >> >  
> >> >> > +config CRASHKERNEL_DEFAULT_THRESHOLD_MB
> >> >> > +	int "System memory size threshold for kdump memory default reserving"
> >> >> > +	depends on CRASH_CORE
> >> >> > +	default 0
> >> >> > +	help
> >> >> > +	  CRASHKERNEL_DEFAULT_MB is used as default crashkernel value if
> >> >> > +	  the system memory size is equal or bigger than the threshold.
> >> >> 
> >> >> "the threshold" is rather vague.  Can it be clarified?
> >> >> 
> >> >> In fact I'm really struggling to understand the logic here....
> >> >> 
> >> >> 
> >> >> > +config CRASHKERNEL_DEFAULT_MB
> >> >> > +	int "Default crashkernel memory size reserved for kdump"
> >> >> > +	depends on CRASH_CORE
> >> >> > +	default 0
> >> >> > +	help
> >> >> > +	  This is used as the default kdump reserved memory size in MB.
> >> >> > +	  crashkernel=X kernel cmdline can overwrite this value.
> >> >> > +
> >> >> >  config HAVE_IMA_KEXEC
> >> >> >  	bool
> >> >> >  
> >> >> > @@ -143,6 +144,24 @@ static int __init parse_crashkernel_simp
> >> >> >  	return 0;
> >> >> >  }
> >> >> >  
> >> >> > +static int __init get_crashkernel_default(unsigned long long system_ram,
> >> >> > +					  unsigned long long *size)
> >> >> > +{
> >> >> > +	unsigned long long sz = CONFIG_CRASHKERNEL_DEFAULT_MB;
> >> >> > +	unsigned long long thres = CONFIG_CRASHKERNEL_DEFAULT_THRESHOLD_MB;
> >> >> > +
> >> >> > +	thres *= SZ_1M;
> >> >> > +	sz *= SZ_1M;
> >> >> > +
> >> >> > +	if (sz >= system_ram || system_ram < thres) {
> >> >> > +		pr_debug("crashkernel default size can not be used.\n");
> >> >> > +		return -EINVAL;
> >> >> 
> >> >> In other words,
> >> >> 
> >> >> 	if (system_ram <= CONFIG_CRASHKERNEL_DEFAULT_MB ||
> >> >> 	    system_ram < CONFIG_CRASHKERNEL_DEFAULT_THRESHOLD_MB)
> >> >> 		fail;
> >> >> 
> >> >> yes?
> >> >> 
> >> >> How come?  What's happening here?  Perhaps a (good) explanatory comment
> >> >> is needed.  And clearer Kconfig text.
> >> >> 
> >> >> All confused :(
> >> >
> >> > Andrew, I tuned it a bit, removed the check of sz >= system_ram, so if
> >> > the size is too large and kernel can not find enough memory it will
> >> > still fail in latter code.
> >> >
> >> > Is below version looks clearer?
> >> 
> >> What is the advantage of providing this in a kconfig option rather
> >> than on the kernel command line as we can now?
> >
> > It is not a replacement of the cmdline, this can be a supplement to
> > the crashkernel command line.  For a lot of common use cases if we have
> > the auto reservation user just do not need to manually set the cmdline
> > for example on a virtual machine and usual setup (except of the
> > comlicate storage and very large machines).  The crashkernel=auto
> > has been used for long time, Red Hat QE tested it on a lot of different
> > lab machines and proved it works well.  Kdump usually just works so admin
> > do little work to enable kdump.
> >
> > But the crashkernel=auto implementation has some drawbacks that is it
> > is more like embed policy in the code and it is not flexible like a
> > config option.
> 
> Have you considered using the builtin command line aka CONFIG_CMDLINE?
> If as you are reserving a fixed amount of memory as your patch does that
> should be sufficient, and doable without any kernel changes.

Hmm, even in builtin cmdline it is same as a explict used crashkernel=.
If we think from a distribution point of view, it will be hard to
differentiate the builtin provided param and bootloader provided
params. It looks odd to see two crashkernel= when `cat /proc/cmdline`,
it will confuse people and there could cause compatibility problems
because it is explict value visible in kernel cmdline. 

Thanks
Dave

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

  reply	other threads:[~2018-05-25  2:43 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-21  2:53 [PATCH] kdump: add default crashkernel reserve kernel config options Dave Young
2018-05-21  2:53 ` Dave Young
2018-05-21 19:02 ` Andrew Morton
2018-05-21 19:02   ` Andrew Morton
2018-05-22  1:43   ` Dave Young
2018-05-22  1:43     ` Dave Young
2018-05-22  1:48   ` Dave Young
2018-05-22  1:48     ` Dave Young
2018-05-23  7:06   ` Dave Young
2018-05-23  7:06     ` Dave Young
2018-05-23 15:53     ` Eric W. Biederman
2018-05-23 15:53       ` Eric W. Biederman
2018-05-23 20:22       ` Petr Tesarik
2018-05-23 20:22         ` Petr Tesarik
2018-05-24  1:49         ` Dave Young
2018-05-24  1:49           ` Dave Young
2018-05-24  6:57           ` Petr Tesarik
2018-05-24  6:57             ` Petr Tesarik
2018-05-24  7:26             ` Dave Young
2018-05-24  7:26               ` Dave Young
2018-05-24  7:39               ` Dave Young
2018-05-24  7:39                 ` Dave Young
2018-05-24  7:56               ` Dave Young
2018-05-24  7:56                 ` Dave Young
2018-05-24  8:29                 ` Baoquan He
2018-05-24  8:29                   ` Baoquan He
2018-05-24  9:02               ` Petr Tesarik
2018-05-24  9:02                 ` Petr Tesarik
2018-05-24  7:31             ` Baoquan He
2018-05-24  7:31               ` Baoquan He
2018-05-24 16:34             ` Eric W. Biederman
2018-05-24 16:34               ` Eric W. Biederman
2018-05-25  4:59               ` Petr Tesarik
2018-05-25  4:59                 ` Petr Tesarik
2018-05-25 20:00                 ` Eric W. Biederman
2018-05-25 20:00                   ` Eric W. Biederman
2018-05-28 12:34                   ` Petr Tesarik
2018-05-28 12:34                     ` Petr Tesarik
2018-05-29 12:19                     ` Eric W. Biederman
2018-05-29 12:19                       ` Eric W. Biederman
2018-05-24  1:42       ` Dave Young
2018-05-24  1:42         ` Dave Young
2018-05-24 16:41         ` Eric W. Biederman
2018-05-24 16:41           ` Eric W. Biederman
2018-05-25  2:43           ` Dave Young [this message]
2018-05-25  2:43             ` Dave Young

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=20180525024339.GA2720@dhcp-128-65.nay.redhat.com \
    --to=dyoung@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=avorontsov@ru.mvista.com \
    --cc=benh@kernel.crashing.org \
    --cc=bhe@redhat.com \
    --cc=dzickus@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=hbathini@linux.vnet.ibm.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=nhorman@redhat.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=tony.luck@intel.com \
    --cc=vgoyal@redhat.com \
    --cc=xiyou.wangcong@gmail.com \
    /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.