2020-06-29 19:02:19

by Hui Su

[permalink] [raw]
Subject: [PATCH] mm: remove the redundancy code

remove the redundancy code, the zone_start_pfn
is assigned from zone->zone_start_pfn
Signed-off-by: Su Hui <[email protected]>
---
mm/page_alloc.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 3c4eb750a199..3372a8c9fbc4 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -6215,8 +6215,6 @@ void __meminit init_currently_empty_zone(struct zone *zone,
if (zone_idx > pgdat->nr_zones)
pgdat->nr_zones = zone_idx;

- zone->zone_start_pfn = zone_start_pfn;
-
mminit_dprintk(MMINIT_TRACE, "memmap_init",
"Initialising map node %d zone %lu pfns %lu -> %lu\n",
pgdat->node_id,
--
2.25.1



2020-06-29 20:26:36

by Mike Rapoport

[permalink] [raw]
Subject: Re: [PATCH] mm: remove the redundancy code

On Mon, Jun 29, 2020 at 11:50:15AM -0700, David Rientjes wrote:
> On Tue, 30 Jun 2020, Su Hui wrote:
>
> > remove the redundancy code, the zone_start_pfn
> > is assigned from zone->zone_start_pfn
> > Signed-off-by: Su Hui <[email protected]>
>
> I don't think this is redundant, it's used by memory hotplug when onlining
> new memory.

Right, it is:

$ git grep -wn init_currently_empty_zone mm/memory_hotplug.c
mm/memory_hotplug.c:697: init_currently_empty_zone(zone, start_pfn, nr_pages);


> > ---
> > mm/page_alloc.c | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > index 3c4eb750a199..3372a8c9fbc4 100644
> > --- a/mm/page_alloc.c
> > +++ b/mm/page_alloc.c
> > @@ -6215,8 +6215,6 @@ void __meminit init_currently_empty_zone(struct zone *zone,
> > if (zone_idx > pgdat->nr_zones)
> > pgdat->nr_zones = zone_idx;
> >
> > - zone->zone_start_pfn = zone_start_pfn;
> > -
> > mminit_dprintk(MMINIT_TRACE, "memmap_init",
> > "Initialising map node %d zone %lu pfns %lu -> %lu\n",
> > pgdat->node_id,
>

--
Sincerely yours,
Mike.

2020-06-29 21:26:09

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] mm: remove the redundancy code

On Tue, 30 Jun 2020, Su Hui wrote:

> remove the redundancy code, the zone_start_pfn
> is assigned from zone->zone_start_pfn
> Signed-off-by: Su Hui <[email protected]>

I don't think this is redundant, it's used by memory hotplug when onlining
new memory.

> ---
> mm/page_alloc.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 3c4eb750a199..3372a8c9fbc4 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -6215,8 +6215,6 @@ void __meminit init_currently_empty_zone(struct zone *zone,
> if (zone_idx > pgdat->nr_zones)
> pgdat->nr_zones = zone_idx;
>
> - zone->zone_start_pfn = zone_start_pfn;
> -
> mminit_dprintk(MMINIT_TRACE, "memmap_init",
> "Initialising map node %d zone %lu pfns %lu -> %lu\n",
> pgdat->node_id,

2020-06-30 02:07:31

by David Rientjes

[permalink] [raw]
Subject: Re:Re: [PATCH] mm: remove the redundancy code

On Tue, 30 Jun 2020, ?ջ? wrote:

> I am sorry that i did not consider the memory hotplug case,
> and i think we should add a new param to distinguish two different cases.
>

No need, we can simply continue setting zone->zone_start_pfn unless there
is a bug to be fixed (and, if so, please send a bug report). Removing it
would not improve anything and would only increase risk.

2020-06-30 02:56:35

by Hui Su

[permalink] [raw]
Subject: Re:Re:Re: [PATCH] mm: remove the redundancy code

I did not find bug here, and i was just confused when I saw the code.<br/>Thanks.
At 2020-06-30 10:06:55, "David Rientjes" <[email protected]> wrote:
>On Tue, 30 Jun 2020, ?ջ? wrote:
>
>> I am sorry that i did not consider the memory hotplug case,
>> and i think we should add a new param to distinguish two different cases.
>>
>
>No need, we can simply continue setting zone->zone_start_pfn unless there
>is a bug to be fixed (and, if so, please send a bug report). Removing it
>would not improve anything and would only increase risk.

2020-06-30 10:39:17

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] mm: remove the redundancy code

Hi Su,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on mmotm/master]

url: https://github.com/0day-ci/linux/commits/Su-Hui/mm-remove-the-redundancy-code/20200630-013137
base: git://git.cmpxchg.org/linux-mmotm.git master
config: x86_64-allnoconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project cf1d04484344be52ada8178e41d18fd15a9b880c)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

^
case 1: ^include/linux/signal.h
:133:2: note: expanded from macro '_SIG_SET_BINOP'
case 2: ^
include/linux/signal.h:147:1: warning: unannotated fall-through between switch labels
include/linux/signal.h:137:2: note: expanded from macro '_SIG_SET_BINOP'
case 1: ^
include/linux/signal.h:177:1: warning: unannotated fall-through between switch labels
_SIG_SET_OP(signotset, _sig_not)
^
include/linux/signal.h:167:2: note: expanded from macro '_SIG_SET_OP'
case 2: = ^
include/linux/signal.h:177:1: warning: unannotated fall-through between switch labels
include/linux/signal.h:169:2: note: expanded from macro '_SIG_SET_OP'
case 1: = ^
>> include/linux/signal.h:150:1: warning: include/linux/signal.h:unannotated fall-through between switch labels warning: unannotated fall-through between switch labels
case 1: = 0;
--
^
__attribute__((fallthrough));
include/linux/signal.h:203:2: note: insert 'break;' to avoid fall-through
case 1: = -1;
^
break;
include/linux/signal.h:233:2: warning: unannotated fall-through between switch labels
case 1: ;
^
kernel//irq/handle.c:170:3: warning: unannotated fall-through between switch labels
case IRQ_HANDLED:
^
3kernel//irq/handle.cinclude/linux/signal.h:233:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 1: ;
^
__attribute__((fallthrough));
include/linux/signal.h:233:2: note: insert 'break;' to avoid fall-through
case 1: ;
^
break;
include/linux/signal.h:245:2: warning: unannotated fall-through between switch labels
case 1: ;
^
:170:3: note: insert '__attribute__((fallthrough));' to silence this warning
case IRQ_HANDLED:
^
__attribute__((fallthrough));
kernel//irq/handle.c:170:3: note: insert 'break;' to avoid fall-through
case IRQ_HANDLED:
^
break;
include/linux/signal.h:245:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 1: ;
^
__attribute__((fallthrough));
include/linux/signal.h:245:2: note: insert 'break;' to avoid fall-through
case 1: ;
^
break;
warnings generated.
In file included from kernel//events/core.c:24:
In file included from include/linux/ptrace.h:7:
In file included from include/linux/sched/signal.h:6:
include/linux/signal.h:147:1: warning: unannotated fall-through between switch labels
_SIG_SET_BINOP(sigorsets, _sig_or)
^
include/linux/signal.h:133:2: note: expanded from macro '_SIG_SET_BINOP'
case 2: ^
include/linux/signal.h:147:1: warning: unannotated fall-through between switch labels
include/linux/signal.h:137:2: note: expanded from macro '_SIG_SET_BINOP'
case 1: ^
include/linux/signal.h:150:1: warning: unannotated fall-through between switch labels
_SIG_SET_BINOP(sigandsets, _sig_and)
^
include/linux/signal.h:133:2: note: expanded from macro '_SIG_SET_BINOP'
case 2: ^
include/linux/signal.h:150:1: warning: unannotated fall-through between switch labels
include/linux/signal.h:137:2: note: expanded from macro '_SIG_SET_BINOP'
case 1: ^
include/linux/signal.h:153:1: warning: unannotated fall-through between switch labels
_SIG_SET_BINOP(sigandnsets, _sig_andn)
^
include/linux/signal.h:133:2: note: expanded from macro '_SIG_SET_BINOP'
case 2: ^
include/linux/signal.h:153:1: warning: unannotated fall-through between switch labels
include/linux/signal.h:137:2: note: expanded from macro '_SIG_SET_BINOP'
case 1: ^
include/linux/signal.h:177:1: warning: unannotated fall-through between switch labels
_SIG_SET_OP(signotset, _sig_not)
^
include/linux/signal.h:167:2: note: expanded from macro '_SIG_SET_OP'
case 2: = ^
include/linux/signal.h:177:1: warning: unannotated fall-through between switch labels
include/linux/signal.h:169:2: note: expanded from macro '_SIG_SET_OP'
case 1: = ^
include/linux/signal.h:190:2: warning: unannotated fall-through between switch labels
case 1: = 0;
^
include/linux/signal.h:190:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 1: = 0;
^
__attribute__((fallthrough));
include/linux/signal.h:190:2: note: insert 'break;' to avoid fall-through
case 1: = 0;
^
break;
include/linux/signal.h:203:2: warning: unannotated fall-through between switch labels
case 1: = -1;
^
In file included from kernel//locking/semaphore.c:34:
In file included from include/linux/ftrace.h:11:
In file included from include/linux/kallsyms.h:12:
include/linux/mm.h:162:2: warning: unannotated fall-through between switch labels
case 72:
^
In file included from kernel//time/time.c:33:
In file included from include/linux/syscalls.h:85:
In file included from include/trace/syscall.h:7:
In file included from include/linux/trace_events.h:6:
In file included from include/linux/ring_buffer.h:5:
>> include/linux/mm.h:162:2: warning: include/linux/signal.hunannotated fall-through between switch labels
: case 72:203
^:
2: note: insert '__attribute__((fallthrough));' to silence this warning
case 1: = -1;
^
__attribute__((fallthrough));
include/linux/signal.h:203:2: note: insert 'break;' to avoid fall-through
case 1: = -1;
^
break;
include/linux/signal.h:233:2: warning: unannotated fall-through between switch labels
case 1: ;
^
include/linux/signal.hinclude/linux/mm.h:162:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 72:
^
__attribute__((fallthrough));
include/linux/mm.h:162:2: note: insert 'break;' to avoid fall-through
case 72:
^
break;
include/linux/mm.h:164:2: warning: unannotated fall-through between switch labels
case 64:
^
include/linux/mm.h:164:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 64:
^
__attribute__((fallthrough));
include/linux/mm.h:164:2: note: insert 'break;' to avoid fall-through
case 64:
^
break;
include/linux/mm.h:166:2: warning: unannotated fall-through between switch labels
case 56:
^
:233:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 1: ;
^
__attribute__((fallthrough));
include/linux/signal.h:233:2: note: insert 'break;' to avoid fall-through
case 1: ;
^
break;
include/linux/signal.h:245:2: warning: unannotated fall-through between switch labels
case 1: ;
^
include/linux/mm.h:166:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 56:
^
__attribute__((fallthrough));
include/linux/mm.h:166:2: note: insert 'break;' to avoid fall-through
case 56:
^
break;
include/linux/mm.h:162:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 72:
^
__attribute__((fallthrough));
include/linux/mm.h:162:2: note: insert 'break;' to avoid fall-through
case 72:
^
break;
include/linux/mm.h:164:2: warning: unannotated fall-through between switch labels
case 64:
^
12 warnings generated.
include/linux/signal.h:245:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 1: ;
^
__attribute__((fallthrough));
include/linux/signal.h:245:2: note: insert 'break;' to avoid fall-through
case 1: ;
^
break;
1 warning generated.
include/linux/mm.h:164:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 64:
^
__attribute__((fallthrough));
include/linux/mm.h:164:2: note: insert 'break;' to avoid fall-through
case 64:
^
break;
include/linux/mm.h:166:2: warning: unannotated fall-through between switch labels
case 56:
^
In file included from kernel//sched/loadavg.c:9:
In file included from kernel//sched/sched.h:11:
In file included from include/linux/sched/cputime.h:5:
In file included from include/linux/sched/signal.h:6:
include/linux/signal.h:147:1: warning: unannotated fall-through between switch labels
_SIG_SET_BINOP(sigorsets, _sig_or)
^
include/linux/signal.h:133:2: note: expanded from macro '_SIG_SET_BINOP'
case 2: ^
include/linux/signal.h:147:1: warning: unannotated fall-through between switch labels
include/linux/signal.h:137:2: note: expanded from macro '_SIG_SET_BINOP'
case 1: ^
include/linux/signal.h:150:1: warning: unannotated fall-through between switch labels
_SIG_SET_BINOP(sigandsets, _sig_and)

vim +150 include/linux/signal.h

^1da177e4c3f41 Linus Torvalds 2005-04-16 148
^1da177e4c3f41 Linus Torvalds 2005-04-16 149 #define _sig_and(x,y) ((x) & (y))
^1da177e4c3f41 Linus Torvalds 2005-04-16 @150 _SIG_SET_BINOP(sigandsets, _sig_and)
^1da177e4c3f41 Linus Torvalds 2005-04-16 151

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (9.89 kB)
.config.gz (7.19 kB)
Download all attachments

2020-06-30 12:14:39

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] mm: remove the redundancy code

Hi Su,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on mmotm/master]

url: https://github.com/0day-ci/linux/commits/Su-Hui/mm-remove-the-redundancy-code/20200630-013137
base: git://git.cmpxchg.org/linux-mmotm.git master
config: x86_64-allnoconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project cf1d04484344be52ada8178e41d18fd15a9b880c)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

^
include/linux/mm.h:162:2: note: insert 'break;' to avoid fall-throughinclude/linux/signal.h
case 72:
^
break; :
include/linux/mm.h:190164:2: warning: unannotated fall-through between switch labels
case 64::include/linux/mm.h:164:2: note: insert '__attribute__((fallthrough));' to silence this warning
>> case 64:2: warning: unannotated fall-through between switch labels
case 1: = 0;
^
include/linux/signal.h:190:2: note: insert '__attribute__((fallthrough));' to silence this warning
case 1: = 0;
^
__attribute__((fallthrough));
include/linux/signal.h:190:2: note: insert 'break;' to avoid fall-through
case 1: = 0;
^
break;
include/linux/signal.h:203:2: warning: unannotated fall-through between switch labels
case 1: = -1;
^

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (1.90 kB)
.config.gz (7.19 kB)
Download all attachments

2020-06-30 12:42:45

by David Hildenbrand

[permalink] [raw]
Subject: Re: [PATCH] mm: remove the redundancy code

On 29.06.20 19:30, Su Hui wrote:
> remove the redundancy code, the zone_start_pfn
> is assigned from zone->zone_start_pfn
> Signed-off-by: Su Hui <[email protected]>
> ---

Side note: You should really work on better patch subjects/descriptions.
+ casing, punctuation, empty line before Signed-off-by ...

"mm: remove the redundancy code" is as expressive as "mm: fix the bug"

--
Thanks,

David / dhildenb