Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-14 Thread Pasha Tatashin
On 08/14/2017 07:43 AM, Michal Hocko wrote: register_page_bootmem_info register_page_bootmem_info_node get_page_bootmem .. setting fields here .. such as: page->freelist = (void *)type; free_all_bootmem() free_low_memory_core_early() for_each_reserved_mem_region()

Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-14 Thread Pasha Tatashin
On 08/14/2017 07:43 AM, Michal Hocko wrote: register_page_bootmem_info register_page_bootmem_info_node get_page_bootmem .. setting fields here .. such as: page->freelist = (void *)type; free_all_bootmem() free_low_memory_core_early() for_each_reserved_mem_region()

Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-14 Thread Michal Hocko
On Fri 11-08-17 11:39:41, Pasha Tatashin wrote: > >AFAIU register_page_bootmem_info_node is only about struct pages backing > >pgdat, usemap and memmap. Those should be in reserved memblocks and we > >do not initialize those at later times, they are not relevant to the > >deferred initialization

Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-14 Thread Michal Hocko
On Fri 11-08-17 11:39:41, Pasha Tatashin wrote: > >AFAIU register_page_bootmem_info_node is only about struct pages backing > >pgdat, usemap and memmap. Those should be in reserved memblocks and we > >do not initialize those at later times, they are not relevant to the > >deferred initialization

Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-11 Thread Pasha Tatashin
AFAIU register_page_bootmem_info_node is only about struct pages backing pgdat, usemap and memmap. Those should be in reserved memblocks and we do not initialize those at later times, they are not relevant to the deferred initialization as your changelog suggests so the ordering with

Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-11 Thread Pasha Tatashin
AFAIU register_page_bootmem_info_node is only about struct pages backing pgdat, usemap and memmap. Those should be in reserved memblocks and we do not initialize those at later times, they are not relevant to the deferred initialization as your changelog suggests so the ordering with

Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-11 Thread Michal Hocko
[CC Mel - 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:36, Pavel Tatashin wrote: > Without deferred struct page feature (CONFIG_DEFERRED_STRUCT_PAGE_INIT), > flags and other fields in "struct page"es are never

Re: [v6 02/15] x86/mm: setting fields in deferred pages

2017-08-11 Thread Michal Hocko
[CC Mel - 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:36, Pavel Tatashin wrote: > Without deferred struct page feature (CONFIG_DEFERRED_STRUCT_PAGE_INIT), > flags and other fields in "struct page"es are never

[v6 02/15] x86/mm: setting fields in deferred pages

2017-08-07 Thread Pavel Tatashin
Without deferred struct page feature (CONFIG_DEFERRED_STRUCT_PAGE_INIT), flags and other fields in "struct page"es are never changed prior to first initializing struct pages by going through __init_single_page(). With deferred struct page feature enabled there is a case where we set some fields

[v6 02/15] x86/mm: setting fields in deferred pages

2017-08-07 Thread Pavel Tatashin
Without deferred struct page feature (CONFIG_DEFERRED_STRUCT_PAGE_INIT), flags and other fields in "struct page"es are never changed prior to first initializing struct pages by going through __init_single_page(). With deferred struct page feature enabled there is a case where we set some fields