All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org, corbet@lwn.net,
	linux-doc@vger.kernel.org
Subject: Re: [PATCH] mm/page_alloc: Deprecate kernelcore=nn and movable_core=
Date: Tue, 17 Jul 2018 22:24:43 +0800	[thread overview]
Message-ID: <20180717142443.GG1724@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20180717133109.GI7193@dhcp22.suse.cz>

Hi Michal,

On 07/17/18 at 03:31pm, Michal Hocko wrote:
> On Tue 17-07-18 21:18:37, Baoquan He wrote:
> > We can still use 'kernelcore=mirror' or 'movable_node' for the usage
> > of hotplug and movable zone. If somebody shows up with a valid usecase
> > we can reconsider.
> 
> Well this doesn't really explain why to deprecate this functionality.
> It is a rather ugly hack that has been originally introduced for large
> order allocations. But we do have compaction these days. Even though the
> compaction cannot solve all the fragmentation issues the zone movable is
> not a great answer as it introduces other issues (basically highmem kind
> of issues we used to have on 32b systems).
> The current code doesn't work with KASLR and the code is too subtle to
> work properly in other cases as well. E.g. movablecore range might cover
> already used memory (e.g. bootmem allocations) and therefore it doesn't
> comply with the basic assumption that the memory is movable and that
> confuses memory hotplug (e.g. 15c30bc09085 ("mm, memory_hotplug: make
> has_unmovable_pages more robust").
> 
> There are probably other issues I am not aware of but primarily the code
> adds a maintenance burden which would be better to get rid of.
> 
> I would also go further and remove all the code the feature is using at
> one go. If somebody really needs this functionality we would need to
> revert the whole thing anyway.

Thanks for these details. I can arrange your above saying and rewrite
patch log. Are you suggesting removing the code "kernelcore=nn" and
"movablecore=" are using? If yes, I can repost with these changes.

Just saw some deprecated codes are still there for future cleaning up.
So posted this v1 patch.

Thanks
Baoquan

> > ---
> >  Documentation/admin-guide/kernel-parameters.txt | 2 ++
> >  mm/page_alloc.c                                 | 3 +++
> >  2 files changed, 5 insertions(+)
> > 
> > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> > index efc7aa7a0670..1e22c49866a2 100644
> > --- a/Documentation/admin-guide/kernel-parameters.txt
> > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > @@ -1855,6 +1855,7 @@
> >  	keepinitrd	[HW,ARM]
> >  
> >  	kernelcore=	[KNL,X86,IA-64,PPC]
> > +			[Usage of kernelcore=nn[KMGTPE] | nn% is deprecated]
> >  			Format: nn[KMGTPE] | nn% | "mirror"
> >  			This parameter specifies the amount of memory usable by
> >  			the kernel for non-movable allocations.  The requested
> > @@ -2395,6 +2396,7 @@
> >  			reporting absolute coordinates, such as tablets
> >  
> >  	movablecore=	[KNL,X86,IA-64,PPC]
> > +			[Deprecated]
> >  			Format: nn[KMGTPE] | nn%
> >  			This parameter is the complement to kernelcore=, it
> >  			specifies the amount of memory used for migratable
> > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > index 1521100f1e63..86cf05f48b5f 100644
> > --- a/mm/page_alloc.c
> > +++ b/mm/page_alloc.c
> > @@ -6899,6 +6899,8 @@ static int __init cmdline_parse_kernelcore(char *p)
> >  		return 0;
> >  	}
> >  
> > +	pr_warn("Only kernelcore=mirror supported, "
> > +		"usage of kernelcore=nn[KMGTPE]|nn%% is deprecated.\n");
> >  	return cmdline_parse_core(p, &required_kernelcore,
> >  				  &required_kernelcore_percent);
> >  }
> > @@ -6909,6 +6911,7 @@ static int __init cmdline_parse_kernelcore(char *p)
> >   */
> >  static int __init cmdline_parse_movablecore(char *p)
> >  {
> > +	pr_warn("Option movablecore= is deprecated.\n");
> >  	return cmdline_parse_core(p, &required_movablecore,
> >  				  &required_movablecore_percent);
> >  }
> > -- 
> > 2.13.6
> 
> -- 
> Michal Hocko
> SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	akpm@linux-foundation.org, corbet@lwn.net,
	linux-doc@vger.kernel.org
Subject: Re: [PATCH] mm/page_alloc: Deprecate kernelcore=nn and movable_core=
Date: Tue, 17 Jul 2018 22:24:43 +0800	[thread overview]
Message-ID: <20180717142443.GG1724@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20180717133109.GI7193@dhcp22.suse.cz>

Hi Michal,

On 07/17/18 at 03:31pm, Michal Hocko wrote:
> On Tue 17-07-18 21:18:37, Baoquan He wrote:
> > We can still use 'kernelcore=mirror' or 'movable_node' for the usage
> > of hotplug and movable zone. If somebody shows up with a valid usecase
> > we can reconsider.
> 
> Well this doesn't really explain why to deprecate this functionality.
> It is a rather ugly hack that has been originally introduced for large
> order allocations. But we do have compaction these days. Even though the
> compaction cannot solve all the fragmentation issues the zone movable is
> not a great answer as it introduces other issues (basically highmem kind
> of issues we used to have on 32b systems).
> The current code doesn't work with KASLR and the code is too subtle to
> work properly in other cases as well. E.g. movablecore range might cover
> already used memory (e.g. bootmem allocations) and therefore it doesn't
> comply with the basic assumption that the memory is movable and that
> confuses memory hotplug (e.g. 15c30bc09085 ("mm, memory_hotplug: make
> has_unmovable_pages more robust").
> 
> There are probably other issues I am not aware of but primarily the code
> adds a maintenance burden which would be better to get rid of.
> 
> I would also go further and remove all the code the feature is using at
> one go. If somebody really needs this functionality we would need to
> revert the whole thing anyway.

Thanks for these details. I can arrange your above saying and rewrite
patch log. Are you suggesting removing the code "kernelcore=nn" and
"movablecore=" are using? If yes, I can repost with these changes.

Just saw some deprecated codes are still there for future cleaning up.
So posted this v1 patch.

Thanks
Baoquan

> > ---
> >  Documentation/admin-guide/kernel-parameters.txt | 2 ++
> >  mm/page_alloc.c                                 | 3 +++
> >  2 files changed, 5 insertions(+)
> > 
> > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> > index efc7aa7a0670..1e22c49866a2 100644
> > --- a/Documentation/admin-guide/kernel-parameters.txt
> > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > @@ -1855,6 +1855,7 @@
> >  	keepinitrd	[HW,ARM]
> >  
> >  	kernelcore=	[KNL,X86,IA-64,PPC]
> > +			[Usage of kernelcore=nn[KMGTPE] | nn% is deprecated]
> >  			Format: nn[KMGTPE] | nn% | "mirror"
> >  			This parameter specifies the amount of memory usable by
> >  			the kernel for non-movable allocations.  The requested
> > @@ -2395,6 +2396,7 @@
> >  			reporting absolute coordinates, such as tablets
> >  
> >  	movablecore=	[KNL,X86,IA-64,PPC]
> > +			[Deprecated]
> >  			Format: nn[KMGTPE] | nn%
> >  			This parameter is the complement to kernelcore=, it
> >  			specifies the amount of memory used for migratable
> > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > index 1521100f1e63..86cf05f48b5f 100644
> > --- a/mm/page_alloc.c
> > +++ b/mm/page_alloc.c
> > @@ -6899,6 +6899,8 @@ static int __init cmdline_parse_kernelcore(char *p)
> >  		return 0;
> >  	}
> >  
> > +	pr_warn("Only kernelcore=mirror supported, "
> > +		"usage of kernelcore=nn[KMGTPE]|nn%% is deprecated.\n");
> >  	return cmdline_parse_core(p, &required_kernelcore,
> >  				  &required_kernelcore_percent);
> >  }
> > @@ -6909,6 +6911,7 @@ static int __init cmdline_parse_kernelcore(char *p)
> >   */
> >  static int __init cmdline_parse_movablecore(char *p)
> >  {
> > +	pr_warn("Option movablecore= is deprecated.\n");
> >  	return cmdline_parse_core(p, &required_movablecore,
> >  				  &required_movablecore_percent);
> >  }
> > -- 
> > 2.13.6
> 
> -- 
> Michal Hocko
> SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2018-07-17 14:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-17 13:18 [PATCH] mm/page_alloc: Deprecate kernelcore=nn and movable_core= Baoquan He
2018-07-17 13:18 ` Baoquan He
2018-07-17 13:31 ` Michal Hocko
2018-07-17 13:31   ` Michal Hocko
2018-07-17 14:24   ` Baoquan He [this message]
2018-07-17 14:24     ` Baoquan He
2018-07-17 14:28     ` Michal Hocko
2018-07-17 14:28       ` Michal Hocko
2018-07-17 20:46 ` David Rientjes
2018-07-17 20:46   ` David Rientjes
2018-07-17 23:31   ` Baoquan He
2018-07-17 23:31     ` Baoquan He
2018-07-18 20:16     ` David Rientjes
2018-07-18 20:16       ` David Rientjes
2018-07-18 15:10   ` Michal Hocko
2018-07-18 15:10     ` Michal Hocko

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=20180717142443.GG1724@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=corbet@lwn.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    /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.