Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1710860 > unrolled thread
| Started by | Michal Hocko <mhocko@kernel.org> |
|---|---|
| First post | 2017-08-14 13:50 +0200 |
| Last post | 2017-08-14 15:40 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [v6 02/15] x86/mm: setting fields in deferred pages Michal Hocko <mhocko@kernel.org> - 2017-08-14 13:50 +0200
Re: [v6 02/15] x86/mm: setting fields in deferred pages Pasha Tatashin <pasha.tatashin@oracle.com> - 2017-08-14 15:40 +0200
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2017-08-14 13:50 +0200 |
| Subject | Re: [v6 02/15] x86/mm: setting fields in deferred pages |
| Message-ID | <uem2B-3DE-7@gated-at.bofh.it> |
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 as your changelog suggests so the ordering with > >get_page_bootmem shouldn't matter. Or am I missing something here? > > The pages for pgdata, usemap, and memmap are part of reserved, and thus > getting initialized when free_all_bootmem() is called. > > So, we have something like this in mem_init() > > 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() > reserve_bootmem_region() > init_reserved_page() <- Only if this is deferred reserved page > __init_single_pfn() > __init_single_page() > memset(0) <-- Loose the set fields here! OK, I have missed that part. Please make it explicit in the changelog. It is quite easy to get lost in the deep call chains. -- Michal Hocko SUSE Labs
[toc] | [next] | [standalone]
| From | Pasha Tatashin <pasha.tatashin@oracle.com> |
|---|---|
| Date | 2017-08-14 15:40 +0200 |
| Message-ID | <uenL4-4Jh-15@gated-at.bofh.it> |
| In reply to | #1710860 |
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() >> reserve_bootmem_region() >> init_reserved_page() <- Only if this is deferred reserved page >> __init_single_pfn() >> __init_single_page() >> memset(0) <-- Loose the set fields here! > OK, I have missed that part. Please make it explicit in the changelog. > It is quite easy to get lost in the deep call chains. Ok, will update comment.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web