Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1562490
| From | John Hubbard <jhubbard@nvidia.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers |
| Date | 2017-01-19 10:20 +0100 |
| Message-ID | <t1h2V-83w-1@gated-at.bofh.it> (permalink) |
| References | (6 earlier) <t0wQq-4ey-7@gated-at.bofh.it> <t0RBv-oA-15@gated-at.bofh.it> <t0TN0-1Eh-17@gated-at.bofh.it> <t1gqe-7Ax-25@gated-at.bofh.it> <t1gTg-805-17@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 01/19/2017 12:45 AM, Michal Hocko wrote: > On Thu 19-01-17 00:37:08, John Hubbard wrote: >> >> >> On 01/18/2017 12:21 AM, Michal Hocko wrote: >>> On Tue 17-01-17 21:59:13, John Hubbard wrote: > [...] >>>> * Reclaim modifiers - __GFP_NORETRY and __GFP_NOFAIL should not be passed in. >>>> * Passing in __GFP_REPEAT is supported, but note that it is ignored for small >>>> * (<=64KB) allocations, during the kmalloc attempt. >>> >>>> __GFP_REPEAT is fully >>>> * honored for all allocation sizes during the second part: the vmalloc attempt. >>> >>> this is not true to be really precise because vmalloc doesn't respect >>> the given gfp mask all the way down (look at the pte initialization). >>> >> >> I'm having some difficulty in locating that pte initialization part, am I on >> the wrong code path? Here's what I checked, before making the claim about >> __GFP_REPEAT being honored: >> >> kvmalloc_node >> __vmalloc_node_flags >> __vmalloc_node >> __vmalloc_node_range >> __vmalloc_area_node > map_vm_area > vmap_page_range > vmap_page_range_noflush > vmap_pud_range > pud_alloc > __pud_alloc > pud_alloc_one > > pud will be allocated but the same pattern repeats on the pmd and pte > levels. This is btw. one of the reasons why vmalloc with gfp flags is > tricky! Yes, I see that now, thank you for explaining, much appreciated. The flags are left way behind in the code path. So that leaves us with maybe this for documentation? * Reclaim modifiers - __GFP_NORETRY and __GFP_NOFAIL should not be passed in. * Passing in __GFP_REPEAT is supported, and will cause the following behavior: * for larger (>64KB) allocations, the first part (kmalloc) will do some * retrying, before falling back to vmalloc. > > moreover >> alloc_pages_node > > this is order-0 request so... > >> __alloc_pages_node >> __alloc_pages >> __alloc_pages_nodemask >> __alloc_pages_slowpath >> >> >> ...and __alloc_pages_slowpath does the __GFP_REPEAT handling: >> >> /* >> * Do not retry costly high order allocations unless they are >> * __GFP_REPEAT >> */ >> if (order > PAGE_ALLOC_COSTLY_ORDER && !(gfp_mask & __GFP_REPEAT)) >> goto nopage; > > ... this doesn't apply > yes, true. thanks john h >
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers Michal Hocko <mhocko@kernel.org> - 2017-01-16 20:50 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers John Hubbard <jhubbard@nvidia.com> - 2017-01-16 22:30 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers Michal Hocko <mhocko@kernel.org> - 2017-01-16 22:50 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers John Hubbard <jhubbard@nvidia.com> - 2017-01-16 23:00 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers Michal Hocko <mhocko@kernel.org> - 2017-01-17 09:00 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers John Hubbard <jhubbard@nvidia.com> - 2017-01-18 07:10 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers Michal Hocko <mhocko@kernel.org> - 2017-01-18 09:30 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers John Hubbard <jhubbard@nvidia.com> - 2017-01-19 09:40 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers Michal Hocko <mhocko@kernel.org> - 2017-01-19 10:10 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers John Hubbard <jhubbard@nvidia.com> - 2017-01-19 10:20 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers Michal Hocko <mhocko@kernel.org> - 2017-01-19 11:00 +0100
Re: [PATCH 1/6] mm: introduce kv[mz]alloc helpers John Hubbard <jhubbard@nvidia.com> - 2017-01-19 22:30 +0100
csiph-web