Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-17 Thread Pasha Tatashin
Hi Michal, While working on a bug that was reported to me by "kernel test robot". unable to handle kernel NULL pointer dereference at (null) The issue was that page_to_pfn() on that configuration was looking for a section inside flags fields in "struct page". So, reserved but

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-17 Thread Pasha Tatashin
Hi Michal, While working on a bug that was reported to me by "kernel test robot". unable to handle kernel NULL pointer dereference at (null) The issue was that page_to_pfn() on that configuration was looking for a section inside flags fields in "struct page". So, reserved but

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-14 Thread Michal Hocko
Let's CC Hpa on this one. I am still not sure it is correct. The full series is here http://lkml.kernel.org/r/1502138329-123460-1-git-send-email-pasha.tatas...@oracle.com On Mon 07-08-17 16:38:35, Pavel Tatashin wrote: > Struct pages are initialized by going through __init_single_page(). Since >

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-14 Thread Michal Hocko
Let's CC Hpa on this one. I am still not sure it is correct. The full series is here http://lkml.kernel.org/r/1502138329-123460-1-git-send-email-pasha.tatas...@oracle.com On Mon 07-08-17 16:38:35, Pavel Tatashin wrote: > Struct pages are initialized by going through __init_single_page(). Since >

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-14 Thread Pasha Tatashin
Correct, the pgflags asserts were triggered when we were setting reserved flags to struct page for PFN 0 in which was never initialized through __init_single_page(). The reason they were triggered is because we set all uninitialized memory to ones in one of the debug patches. And why don't we

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-14 Thread Pasha Tatashin
Correct, the pgflags asserts were triggered when we were setting reserved flags to struct page for PFN 0 in which was never initialized through __init_single_page(). The reason they were triggered is because we set all uninitialized memory to ones in one of the debug patches. And why don't we

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-14 Thread Michal Hocko
On Fri 11-08-17 11:24:55, Pasha Tatashin wrote: [...] > >>In this patchset we will stop zeroing struct page memory during allocation. > >>Therefore, this bug must be fixed in order to avoid random assert failures > >>caused by CONFIG_DEBUG_VM_PGFLAGS triggers. > >> > >>The fix is to reserve memory

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-14 Thread Michal Hocko
On Fri 11-08-17 11:24:55, Pasha Tatashin wrote: [...] > >>In this patchset we will stop zeroing struct page memory during allocation. > >>Therefore, this bug must be fixed in order to avoid random assert failures > >>caused by CONFIG_DEBUG_VM_PGFLAGS triggers. > >> > >>The fix is to reserve memory

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-11 Thread Pasha Tatashin
Struct pages are initialized by going through __init_single_page(). Since the existing physical memory in memblock is represented in memblock.memory list, struct page for every page from this list goes through __init_single_page(). By a page _from_ this list you mean struct pages backing the

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-11 Thread Pasha Tatashin
Struct pages are initialized by going through __init_single_page(). Since the existing physical memory in memblock is represented in memblock.memory list, struct page for every page from this list goes through __init_single_page(). By a page _from_ this list you mean struct pages backing the

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-11 Thread Michal Hocko
On Mon 07-08-17 16:38:35, Pavel Tatashin wrote: > Struct pages are initialized by going through __init_single_page(). Since > the existing physical memory in memblock is represented in memblock.memory > list, struct page for every page from this list goes through > __init_single_page(). By a page

Re: [v6 01/15] x86/mm: reserve only exiting low pages

2017-08-11 Thread Michal Hocko
On Mon 07-08-17 16:38:35, Pavel Tatashin wrote: > Struct pages are initialized by going through __init_single_page(). Since > the existing physical memory in memblock is represented in memblock.memory > list, struct page for every page from this list goes through > __init_single_page(). By a page

[v6 01/15] x86/mm: reserve only exiting low pages

2017-08-07 Thread Pavel Tatashin
Struct pages are initialized by going through __init_single_page(). Since the existing physical memory in memblock is represented in memblock.memory list, struct page for every page from this list goes through __init_single_page(). The second memblock list: memblock.reserved, manages the

[v6 01/15] x86/mm: reserve only exiting low pages

2017-08-07 Thread Pavel Tatashin
Struct pages are initialized by going through __init_single_page(). Since the existing physical memory in memblock is represented in memblock.memory list, struct page for every page from this list goes through __init_single_page(). The second memblock list: memblock.reserved, manages the