2020-03-11 01:19:51

by Baoquan He

[permalink] [raw]
Subject: [PATCH v2] x86/mm: Remove the redundant conditional check

In commit f70029bbaacb ("mm, memory_hotplug: drop CONFIG_MOVABLE_NODE"),
the dependency on CONFIG_MOVABLE_NODE was removed for N_MEMORY. Before
commit f70029bbaacb, CONFIG_HIGHMEM && !CONFIG_MOVABLE_NODE could make
(N_MEMORY == N_NORMAL_MEMORY) be true. After commit f70029bbaacb, N_MEMORY
doesn't have any chance to be equal to N_NORMAL_MEMORY. So the conditional
check in paging_init() doesn't make sense any more. Let's remove it.

Signed-off-by: Baoquan He <[email protected]>
---
v1->v2:
Update patch log to make the description clearer per Michal's
suggestion.

arch/x86/mm/init_64.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index abbdecb75fad..0a14711d3a93 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -818,8 +818,7 @@ void __init paging_init(void)
* will not set it back.
*/
node_clear_state(0, N_MEMORY);
- if (N_MEMORY != N_NORMAL_MEMORY)
- node_clear_state(0, N_NORMAL_MEMORY);
+ node_clear_state(0, N_NORMAL_MEMORY);

zone_sizes_init();
}
--
2.17.2


2020-03-11 09:29:11

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH v2] x86/mm: Remove the redundant conditional check

On Wed 11-03-20 09:18:23, Baoquan He wrote:
> In commit f70029bbaacb ("mm, memory_hotplug: drop CONFIG_MOVABLE_NODE"),
> the dependency on CONFIG_MOVABLE_NODE was removed for N_MEMORY. Before
> commit f70029bbaacb, CONFIG_HIGHMEM && !CONFIG_MOVABLE_NODE could make
> (N_MEMORY == N_NORMAL_MEMORY) be true. After commit f70029bbaacb, N_MEMORY
> doesn't have any chance to be equal to N_NORMAL_MEMORY. So the conditional
> check in paging_init() doesn't make sense any more. Let's remove it.
>
> Signed-off-by: Baoquan He <[email protected]>

Acked-by: Michal Hocko <[email protected]>
Thanks!

> ---
> v1->v2:
> Update patch log to make the description clearer per Michal's
> suggestion.
>
> arch/x86/mm/init_64.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> index abbdecb75fad..0a14711d3a93 100644
> --- a/arch/x86/mm/init_64.c
> +++ b/arch/x86/mm/init_64.c
> @@ -818,8 +818,7 @@ void __init paging_init(void)
> * will not set it back.
> */
> node_clear_state(0, N_MEMORY);
> - if (N_MEMORY != N_NORMAL_MEMORY)
> - node_clear_state(0, N_NORMAL_MEMORY);
> + node_clear_state(0, N_NORMAL_MEMORY);
>
> zone_sizes_init();
> }
> --
> 2.17.2

--
Michal Hocko
SUSE Labs

2020-03-15 02:11:05

by Wei Yang

[permalink] [raw]
Subject: Re: [PATCH v2] x86/mm: Remove the redundant conditional check

On Wed, Mar 11, 2020 at 09:18:23AM +0800, Baoquan He wrote:
>In commit f70029bbaacb ("mm, memory_hotplug: drop CONFIG_MOVABLE_NODE"),
>the dependency on CONFIG_MOVABLE_NODE was removed for N_MEMORY. Before
>commit f70029bbaacb, CONFIG_HIGHMEM && !CONFIG_MOVABLE_NODE could make
>(N_MEMORY == N_NORMAL_MEMORY) be true. After commit f70029bbaacb, N_MEMORY
>doesn't have any chance to be equal to N_NORMAL_MEMORY. So the conditional
>check in paging_init() doesn't make sense any more. Let's remove it.
>
>Signed-off-by: Baoquan He <[email protected]>

The change looks good. While I have one question, we set default value for
N_HIGH_MEMORY. Why we don't clear this too?

Reviewed-by: Wei Yang <[email protected]>

>---
>v1->v2:
> Update patch log to make the description clearer per Michal's
> suggestion.
>
> arch/x86/mm/init_64.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
>diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
>index abbdecb75fad..0a14711d3a93 100644
>--- a/arch/x86/mm/init_64.c
>+++ b/arch/x86/mm/init_64.c
>@@ -818,8 +818,7 @@ void __init paging_init(void)
> * will not set it back.
> */
> node_clear_state(0, N_MEMORY);
>- if (N_MEMORY != N_NORMAL_MEMORY)
>- node_clear_state(0, N_NORMAL_MEMORY);
>+ node_clear_state(0, N_NORMAL_MEMORY);
>
> zone_sizes_init();
> }
>--
>2.17.2

--
Wei Yang
Help you, Help me

2020-03-15 12:51:01

by Baoquan He

[permalink] [raw]
Subject: Re: [PATCH v2] x86/mm: Remove the redundant conditional check

On 03/14/20 at 03:10pm, Wei Yang wrote:
> On Wed, Mar 11, 2020 at 09:18:23AM +0800, Baoquan He wrote:
> >In commit f70029bbaacb ("mm, memory_hotplug: drop CONFIG_MOVABLE_NODE"),
> >the dependency on CONFIG_MOVABLE_NODE was removed for N_MEMORY. Before
> >commit f70029bbaacb, CONFIG_HIGHMEM && !CONFIG_MOVABLE_NODE could make
> >(N_MEMORY == N_NORMAL_MEMORY) be true. After commit f70029bbaacb, N_MEMORY
> >doesn't have any chance to be equal to N_NORMAL_MEMORY. So the conditional
> >check in paging_init() doesn't make sense any more. Let's remove it.
> >
> >Signed-off-by: Baoquan He <[email protected]>
>
> The change looks good. While I have one question, we set default value for
> N_HIGH_MEMORY. Why we don't clear this too?

This is for x86_64 only, there's no node_state for N_HIGH_MEMORY.

>
> Reviewed-by: Wei Yang <[email protected]>
>
> >---
> >v1->v2:
> > Update patch log to make the description clearer per Michal's
> > suggestion.
> >
> > arch/x86/mm/init_64.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> >diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> >index abbdecb75fad..0a14711d3a93 100644
> >--- a/arch/x86/mm/init_64.c
> >+++ b/arch/x86/mm/init_64.c
> >@@ -818,8 +818,7 @@ void __init paging_init(void)
> > * will not set it back.
> > */
> > node_clear_state(0, N_MEMORY);
> >- if (N_MEMORY != N_NORMAL_MEMORY)
> >- node_clear_state(0, N_NORMAL_MEMORY);
> >+ node_clear_state(0, N_NORMAL_MEMORY);
> >
> > zone_sizes_init();
> > }
> >--
> >2.17.2
>
> --
> Wei Yang
> Help you, Help me
>

2020-03-15 21:58:40

by Wei Yang

[permalink] [raw]
Subject: Re: [PATCH v2] x86/mm: Remove the redundant conditional check

On Sun, Mar 15, 2020 at 08:49:13PM +0800, Baoquan He wrote:
>On 03/14/20 at 03:10pm, Wei Yang wrote:
>> On Wed, Mar 11, 2020 at 09:18:23AM +0800, Baoquan He wrote:
>> >In commit f70029bbaacb ("mm, memory_hotplug: drop CONFIG_MOVABLE_NODE"),
>> >the dependency on CONFIG_MOVABLE_NODE was removed for N_MEMORY. Before
>> >commit f70029bbaacb, CONFIG_HIGHMEM && !CONFIG_MOVABLE_NODE could make
>> >(N_MEMORY == N_NORMAL_MEMORY) be true. After commit f70029bbaacb, N_MEMORY
>> >doesn't have any chance to be equal to N_NORMAL_MEMORY. So the conditional
>> >check in paging_init() doesn't make sense any more. Let's remove it.
>> >
>> >Signed-off-by: Baoquan He <[email protected]>
>>
>> The change looks good. While I have one question, we set default value for
>> N_HIGH_MEMORY. Why we don't clear this too?
>
>This is for x86_64 only, there's no node_state for N_HIGH_MEMORY.
>

Thanks, I see it in arch/x86/Kconfig.

--
Wei Yang
Help you, Help me

Subject: [tip: x86/mm] x86/mm: Remove the now redundant N_MEMORY check

The following commit has been merged into the x86/mm branch of tip:

Commit-ID: aa61ee7b9ee3cb84c0d3a842b0d17937bf024c46
Gitweb: https://git.kernel.org/tip/aa61ee7b9ee3cb84c0d3a842b0d17937bf024c46
Author: Baoquan He <[email protected]>
AuthorDate: Wed, 11 Mar 2020 09:18:23 +08:00
Committer: Borislav Petkov <[email protected]>
CommitterDate: Tue, 17 Mar 2020 19:12:39 +01:00

x86/mm: Remove the now redundant N_MEMORY check

In commit

f70029bbaacb ("mm, memory_hotplug: drop CONFIG_MOVABLE_NODE")

the dependency on CONFIG_MOVABLE_NODE was removed for N_MEMORY.
Before, CONFIG_HIGHMEM && !CONFIG_MOVABLE_NODE could make (N_MEMORY ==
N_NORMAL_MEMORY) be true.

After that commit, N_MEMORY cannot be equal to N_NORMAL_MEMORY. So the
conditional check in paging_init() is not needed anymore, remove it.

[ bp: Massage. ]

Signed-off-by: Baoquan He <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Reviewed-by: Wei Yang <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
arch/x86/mm/init_64.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index abbdecb..0a14711 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -818,8 +818,7 @@ void __init paging_init(void)
* will not set it back.
*/
node_clear_state(0, N_MEMORY);
- if (N_MEMORY != N_NORMAL_MEMORY)
- node_clear_state(0, N_NORMAL_MEMORY);
+ node_clear_state(0, N_NORMAL_MEMORY);

zone_sizes_init();
}

2020-03-18 02:50:26

by Baoquan He

[permalink] [raw]
Subject: Re: [tip: x86/mm] x86/mm: Remove the now redundant N_MEMORY check

Hi,

On 03/17/20 at 06:20pm, tip-bot2 for Baoquan He wrote:
> The following commit has been merged into the x86/mm branch of tip:
>
> Commit-ID: aa61ee7b9ee3cb84c0d3a842b0d17937bf024c46
> Gitweb: https://git.kernel.org/tip/aa61ee7b9ee3cb84c0d3a842b0d17937bf024c46
> Author: Baoquan He <[email protected]>
> AuthorDate: Wed, 11 Mar 2020 09:18:23 +08:00
> Committer: Borislav Petkov <[email protected]>
> CommitterDate: Tue, 17 Mar 2020 19:12:39 +01:00

Just a soft reminder, I also got a notice from Andrew that this was picked
into his -mm tree before. Maybe one can be dropped to avoid conflict
when sending to Linus.

Thanks for taking care of this.

>
> x86/mm: Remove the now redundant N_MEMORY check
>
> In commit
>
> f70029bbaacb ("mm, memory_hotplug: drop CONFIG_MOVABLE_NODE")
>
> the dependency on CONFIG_MOVABLE_NODE was removed for N_MEMORY.
> Before, CONFIG_HIGHMEM && !CONFIG_MOVABLE_NODE could make (N_MEMORY ==
> N_NORMAL_MEMORY) be true.
>
> After that commit, N_MEMORY cannot be equal to N_NORMAL_MEMORY. So the
> conditional check in paging_init() is not needed anymore, remove it.
>
> [ bp: Massage. ]
>
> Signed-off-by: Baoquan He <[email protected]>
> Signed-off-by: Borislav Petkov <[email protected]>
> Reviewed-by: Wei Yang <[email protected]>
> Acked-by: Michal Hocko <[email protected]>
> Link: https://lkml.kernel.org/r/[email protected]
> ---
> arch/x86/mm/init_64.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> index abbdecb..0a14711 100644
> --- a/arch/x86/mm/init_64.c
> +++ b/arch/x86/mm/init_64.c
> @@ -818,8 +818,7 @@ void __init paging_init(void)
> * will not set it back.
> */
> node_clear_state(0, N_MEMORY);
> - if (N_MEMORY != N_NORMAL_MEMORY)
> - node_clear_state(0, N_NORMAL_MEMORY);
> + node_clear_state(0, N_NORMAL_MEMORY);
>
> zone_sizes_init();
> }
>