Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1390949
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 04/20] arm: get rid of superfluous __GFP_REPEAT |
| Date | 2016-04-29 11:50 +0200 |
| Message-ID | <rtddE-3Cj-11@gated-at.bofh.it> (permalink) |
| References | <rsUaZ-3LP-3@gated-at.bofh.it> <rsUkI-3Su-39@gated-at.bofh.it> <rsVA5-50h-1@gated-at.bofh.it> <rsVJM-5u4-17@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Thu 28-04-16 17:08:31, Michal Hocko wrote: > On Thu 28-04-16 15:55:45, Russell King - ARM Linux wrote: > > On Thu, Apr 28, 2016 at 03:23:50PM +0200, Michal Hocko wrote: > > > From: Michal Hocko <mhocko@suse.com> > > > > > > __GFP_REPEAT has a rather weak semantic but since it has been introduced > > > around 2.6.12 it has been ignored for low order allocations. > > > > > > PGALLOC_GFP uses __GFP_REPEAT but none of the allocation which uses > > > this flag is for more than order-2. This means that this flag has never > > > been actually useful here because it has always been used only for > > > PAGE_ALLOC_COSTLY requests. > > > > I'm unconvinced. Back in 2013, I was seeing a lot of failures, so: > > > > commit 8c65da6dc89ccb605d73773b1dd617e72982d971 > > Author: Russell King <rmk+kernel@arm.linux.org.uk> > > Date: Sat Nov 30 12:52:31 2013 +0000 > > > > ARM: pgd allocation: retry on failure > > > > Make pgd allocation retry on failure; we really need this to succeed > > otherwise fork() can trigger OOMs. > > > > Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> > > > > Maybe something has changed again in the MM layer which makes this flag > > unnecessary again, and it was a temporary blip around that time, I don't > > know. > > PAGE_ALLOC_COSTLY_ORDER is defined to order 3 since 2007 and even before > the code was doing > - if ((order <= 3) || (gfp_mask & __GFP_REPEAT)) > + if ((order <= PAGE_ALLOC_COSTLY_ORDER) || > + (gfp_mask & __GFP_REPEAT)) > do_retry = 1; > > So an order-2 allocation which is the case for this particular code now > will trigger the OOM killer and fail only when the current task is > killed by the OOM killer. Other than that order-2 is basically > GFP_NOFAIL. Have a look at __alloc_pages_slowpath() for more details. Does this explanation help? -- Michal Hocko SUSE Labs
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH 04/20] arm: get rid of superfluous __GFP_REPEAT Michal Hocko <mhocko@kernel.org> - 2016-04-28 15:40 +0200
Re: [PATCH 04/20] arm: get rid of superfluous __GFP_REPEAT Russell King - ARM Linux <linux@arm.linux.org.uk> - 2016-04-28 17:00 +0200
Re: [PATCH 04/20] arm: get rid of superfluous __GFP_REPEAT Michal Hocko <mhocko@kernel.org> - 2016-04-28 17:10 +0200
Re: [PATCH 04/20] arm: get rid of superfluous __GFP_REPEAT Michal Hocko <mhocko@kernel.org> - 2016-04-29 11:50 +0200
csiph-web