[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180406060953.GA8286@dhcp22.suse.cz>
Date: Fri, 6 Apr 2018 08:09:53 +0200
From: Michal Hocko <mhocko@...nel.org>
To: Matthew Wilcox <willy@...radead.org>
Cc: LKML <linux-kernel@...r.kernel.org>, linux-mm@...ck.org,
Vlastimil Babka <vbabka@...e.cz>
Subject: Re: __GFP_LOW
On Thu 05-04-18 13:15:57, Matthew Wilcox wrote:
> On Thu, Apr 05, 2018 at 08:54:44PM +0200, Michal Hocko wrote:
[...]
> >From a "user guide" perspective:
>
> When allocating memory, you can choose:
OK, we already split the documentation into these categories. So we got
at least the structure right ;)
> - What kind of memory to allocate (DMA, NORMAL, HIGHMEM)
> - Where to get the pages from
> - Local node only (THISNODE)
> - Only in compliance with cpuset policy (HARDWALL)
> - Spread the pages between zones (WRITE)
> - The movable zone (MOVABLE)
> - The reclaimable zone (RECLAIMABLE)
> - What you are willing to do if no free memory is available:
> - Nothing at all (NOWAIT)
> - Use my own time to free memory (DIRECT_RECLAIM)
> - But only try once (NORETRY)
> - Can call into filesystems (FS)
> - Can start I/O (IO)
> - Can sleep (!ATOMIC)
> - Steal time from other processes to free memory (KSWAPD_RECLAIM)
What does that mean? If I drop the flag, do not steal? Well I do because
they will hit direct reclaim sooner...
> - Kill other processes to get their memory (!RETRY_MAYFAIL)
Not really for costly orders.
> - All of the above, and wait forever (NOFAIL)
> - Take from emergency reserves (HIGH)
> - ... but not the last parts of the regular reserves (LOW)
What does that mean and how it is different from NOWAIT? Is this about
the low watermark and if yes do we want to teach users about this and
make the whole thing even more complicated? Does it wake
kswapd? What is the eagerness ordering? LOW, NOWAIT, NORETRY,
RETRY_MAYFAIL, NOFAIL?
--
Michal Hocko
SUSE Labs
Powered by blists - more mailing lists