Messages in this thread | | | Date | Tue, 24 Jan 2017 16:17:52 +0100 | From | Michal Hocko <> | Subject | Re: [PATCH 0/6 v3] kvmalloc |
| |
On Thu 12-01-17 16:37:11, Michal Hocko wrote: > Hi, > this has been previously posted as a single patch [1] but later on more > built on top. It turned out that there are users who would like to have > __GFP_REPEAT semantic. This is currently implemented for costly >64B > requests. Doing the same for smaller requests would require to redefine > __GFP_REPEAT semantic in the page allocator which is out of scope of > this series. > > There are many open coded kmalloc with vmalloc fallback instances in > the tree. Most of them are not careful enough or simply do not care > about the underlying semantic of the kmalloc/page allocator which means > that a) some vmalloc fallbacks are basically unreachable because the > kmalloc part will keep retrying until it succeeds b) the page allocator > can invoke a really disruptive steps like the OOM killer to move forward > which doesn't sound appropriate when we consider that the vmalloc > fallback is available. > > As it can be seen implementing kvmalloc requires quite an intimate > knowledge if the page allocator and the memory reclaim internals which > strongly suggests that a helper should be implemented in the memory > subsystem proper. > > Most callers I could find have been converted to use the helper instead. > This is patch 5. There are some more relying on __GFP_REPEAT in the > networking stack which I have converted as well but considering we do > not have a support for __GFP_REPEAT for requests smaller than 64kB I > have marked it RFC.
Are there any more comments? I would really appreciate to hear from networking folks before I resubmit the series.
Thanks!
> [1] http://lkml.kernel.org/r/20170102133700.1734-1-mhocko@kernel.org >
-- Michal Hocko SUSE Labs
| |