Re: [v2 PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-23 Thread Michal Hocko
On Mon 23-05-16 09:42:00, Shi, Yang wrote: > On 5/23/2016 12:31 AM, Michal Hocko wrote: > > On Fri 20-05-16 08:41:09, Shi, Yang wrote: > > > On 5/20/2016 6:16 AM, Michal Hocko wrote: > > > > On Thu 19-05-16 15:13:26, Yang Shi wrote: > > > > [...] > > > > > diff --git a/init/main.c b/init/main.c > >

Re: [v2 PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-23 Thread Shi, Yang
On 5/23/2016 12:31 AM, Michal Hocko wrote: On Fri 20-05-16 08:41:09, Shi, Yang wrote: On 5/20/2016 6:16 AM, Michal Hocko wrote: On Thu 19-05-16 15:13:26, Yang Shi wrote: [...] diff --git a/init/main.c b/init/main.c index b3c6e36..2075faf 100644 --- a/init/main.c +++ b/init/main.c @@ -606,7 +60

Re: [v2 PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-23 Thread Michal Hocko
On Fri 20-05-16 08:41:09, Shi, Yang wrote: > On 5/20/2016 6:16 AM, Michal Hocko wrote: > > On Thu 19-05-16 15:13:26, Yang Shi wrote: > > [...] > > > diff --git a/init/main.c b/init/main.c > > > index b3c6e36..2075faf 100644 > > > --- a/init/main.c > > > +++ b/init/main.c > > > @@ -606,7 +606,6 @@ a

Re: [v2 PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-20 Thread Shi, Yang
On 5/20/2016 6:16 AM, Michal Hocko wrote: On Thu 19-05-16 15:13:26, Yang Shi wrote: [...] diff --git a/init/main.c b/init/main.c index b3c6e36..2075faf 100644 --- a/init/main.c +++ b/init/main.c @@ -606,7 +606,6 @@ asmlinkage __visible void __init start_kernel(void) initrd_start

Re: [v2 PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-20 Thread Michal Hocko
On Thu 19-05-16 15:13:26, Yang Shi wrote: [...] > diff --git a/init/main.c b/init/main.c > index b3c6e36..2075faf 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -606,7 +606,6 @@ asmlinkage __visible void __init start_kernel(void) > initrd_start = 0; > } > #endif > - pa

Re: [PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-19 Thread Shi, Yang
On 5/19/2016 4:21 PM, Andrew Morton wrote: On Thu, 19 May 2016 15:35:15 -0700 "Shi, Yang" wrote: On 5/19/2016 3:30 PM, Andrew Morton wrote: On Thu, 19 May 2016 14:29:05 -0700 Yang Shi wrote: When DEFERRED_STRUCT_PAGE_INIT is enabled, just a subset of memmap at boot are initialized, then th

Re: [PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-19 Thread Andrew Morton
On Thu, 19 May 2016 15:35:15 -0700 "Shi, Yang" wrote: > On 5/19/2016 3:30 PM, Andrew Morton wrote: > > On Thu, 19 May 2016 14:29:05 -0700 Yang Shi wrote: > > > >> When DEFERRED_STRUCT_PAGE_INIT is enabled, just a subset of memmap at boot > >> are initialized, then the rest are initialized in par

[v2 PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-19 Thread Yang Shi
When DEFERRED_STRUCT_PAGE_INIT is enabled, just a subset of memmap at boot are initialized, then the rest are initialized in parallel by starting one-off "pgdatinitX" kernel thread for each node X. If page_ext_init is called before it, some pages will not have valid extension, this may lead the be

Re: [PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-19 Thread Shi, Yang
On 5/19/2016 3:30 PM, Andrew Morton wrote: On Thu, 19 May 2016 14:29:05 -0700 Yang Shi wrote: When DEFERRED_STRUCT_PAGE_INIT is enabled, just a subset of memmap at boot are initialized, then the rest are initialized in parallel by starting one-off "pgdatinitX" kernel thread for each node X. I

Re: [PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-19 Thread Andrew Morton
On Thu, 19 May 2016 14:29:05 -0700 Yang Shi wrote: > When DEFERRED_STRUCT_PAGE_INIT is enabled, just a subset of memmap at boot > are initialized, then the rest are initialized in parallel by starting one-off > "pgdatinitX" kernel thread for each node X. > > If page_ext_init is called before it,

[PATCH] mm: move page_ext_init after all struct pages are initialized

2016-05-19 Thread Yang Shi
When DEFERRED_STRUCT_PAGE_INIT is enabled, just a subset of memmap at boot are initialized, then the rest are initialized in parallel by starting one-off "pgdatinitX" kernel thread for each node X. If page_ext_init is called before it, some pages will not have valid extension, so move page_ext_ini