[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170112153717.28943-1-mhocko@kernel.org>
Date: Thu, 12 Jan 2017 16:37:11 +0100
From: Michal Hocko <mhocko@...nel.org>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Vlastimil Babka <vbabka@...e.cz>,
David Rientjes <rientjes@...gle.com>,
Mel Gorman <mgorman@...e.de>,
Johannes Weiner <hannes@...xchg.org>,
Al Viro <viro@...iv.linux.org.uk>, <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>,
Alexei Starovoitov <ast@...nel.org>,
Anatoly Stepanov <astepanov@...udlinux.com>,
Andreas Dilger <adilger@...ger.ca>,
Andreas Dilger <andreas.dilger@...el.com>,
Anton Vorontsov <anton@...msg.org>,
Ben Skeggs <bskeggs@...hat.com>,
Boris Ostrovsky <boris.ostrovsky@...cle.com>,
Colin Cross <ccross@...roid.com>,
Dan Williams <dan.j.williams@...el.com>,
David Sterba <dsterba@...e.com>,
Eric Dumazet <edumazet@...gle.com>,
Eric Dumazet <eric.dumazet@...il.com>,
Hariprasad S <hariprasad@...lsio.com>,
Heiko Carstens <heiko.carstens@...ibm.com>,
Herbert Xu <herbert@...dor.apana.org.au>,
Ilya Dryomov <idryomov@...il.com>,
Kees Cook <keescook@...omium.org>,
Kent Overstreet <kent.overstreet@...il.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
"Michael S. Tsirkin" <mst@...hat.com>,
Michal Hocko <mhocko@...e.com>,
Mike Snitzer <snitzer@...hat.com>,
Oleg Drokin <oleg.drokin@...el.com>,
Paolo Bonzini <pbonzini@...hat.com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Santosh Raspatur <santosh@...lsio.com>,
Tariq Toukan <tariqt@...lanox.com>,
"Theodore Ts'o" <tytso@....edu>, Tom Herbert <tom@...bertland.com>,
Tony Luck <tony.luck@...el.com>,
"Yan, Zheng" <zyan@...hat.com>, Yishai Hadas <yishaih@...lanox.com>
Subject: [PATCH 0/6 v3] kvmalloc
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.
[1] http://lkml.kernel.org/r/20170102133700.1734-1-mhocko@kernel.org
Powered by blists - more mailing lists