From: Vlastimil Babka <vbabka@suse.cz>
To: Michal Hocko <mhocko@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Mel Gorman <mgorman@suse.de>,
David Rientjes <rientjes@google.com>,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
Joonsoo Kim <js1304@gmail.com>,
Hillf Danton <hillf.zj@alibaba-inc.com>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 09/11] mm, compaction: Abstract compaction feedback to helpers
Date: Tue, 12 Apr 2016 13:53:47 +0200 [thread overview]
Message-ID: <570CE1CB.7070106@suse.cz> (raw)
In-Reply-To: <20160411151410.GL23157@dhcp22.suse.cz>
On 04/11/2016 05:14 PM, Michal Hocko wrote:
> On Mon 11-04-16 16:39:21, Vlastimil Babka wrote:
>> On 04/05/2016 01:25 PM, Michal Hocko wrote:
> [...]
>>> +/* Compaction has failed and it doesn't make much sense to keep retrying. */
>>> +static inline bool compaction_failed(enum compact_result result)
>>> +{
>>> + /* All zones where scanned completely and still not result. */
>>
>> Hmm given that try_to_compact_pages() uses a max() on results, then in fact
>> it takes only one zone to get this. Others could have been also SKIPPED or
>> DEFERRED. Is that what you want?
>
> In short I didn't find any better way and still guarantee a some
> guarantee of convergence. COMPACT_COMPLETE means that at least one zone
> was completely scanned and led to no result. That zone would be
> compact_suitable by definition. If I made DEFERRED or SKIPPED more
> priorite (aka higher in the enum) then I could easily end up in a state
> where all zones would return COMPACT_COMPLETE and few remaining would
> just alternate returning their DEFFERED resp. SKIPPED. So while this
> might sound like giving up too early I couldn't come up with anything
> more specific that would lead to reliable results.
>
> I am open to any suggestions of course.
I guess you would have to track each zone separately and make sure
you've seen COMPACT_COMPLETE in all of them, although not necessary
during the same zonelist attempt. But then do the same for reclaim, as
you would also have to match COMPAT_SKIPPED and inability of reclaim...
and that gets uglier and uglier, and also against the move to node-based
reclaim...
So there's a danger that you'll see COMPACT_COMPLETE on a small ZONE_DMA
early on, before the larger zones even stop being deferred, but I don't
see an easy solution.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Vlastimil Babka <vbabka@suse.cz>
To: Michal Hocko <mhocko@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Mel Gorman <mgorman@suse.de>,
David Rientjes <rientjes@google.com>,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
Joonsoo Kim <js1304@gmail.com>,
Hillf Danton <hillf.zj@alibaba-inc.com>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 09/11] mm, compaction: Abstract compaction feedback to helpers
Date: Tue, 12 Apr 2016 13:53:47 +0200 [thread overview]
Message-ID: <570CE1CB.7070106@suse.cz> (raw)
In-Reply-To: <20160411151410.GL23157@dhcp22.suse.cz>
On 04/11/2016 05:14 PM, Michal Hocko wrote:
> On Mon 11-04-16 16:39:21, Vlastimil Babka wrote:
>> On 04/05/2016 01:25 PM, Michal Hocko wrote:
> [...]
>>> +/* Compaction has failed and it doesn't make much sense to keep retrying. */
>>> +static inline bool compaction_failed(enum compact_result result)
>>> +{
>>> + /* All zones where scanned completely and still not result. */
>>
>> Hmm given that try_to_compact_pages() uses a max() on results, then in fact
>> it takes only one zone to get this. Others could have been also SKIPPED or
>> DEFERRED. Is that what you want?
>
> In short I didn't find any better way and still guarantee a some
> guarantee of convergence. COMPACT_COMPLETE means that at least one zone
> was completely scanned and led to no result. That zone would be
> compact_suitable by definition. If I made DEFERRED or SKIPPED more
> priorite (aka higher in the enum) then I could easily end up in a state
> where all zones would return COMPACT_COMPLETE and few remaining would
> just alternate returning their DEFFERED resp. SKIPPED. So while this
> might sound like giving up too early I couldn't come up with anything
> more specific that would lead to reliable results.
>
> I am open to any suggestions of course.
I guess you would have to track each zone separately and make sure
you've seen COMPACT_COMPLETE in all of them, although not necessary
during the same zonelist attempt. But then do the same for reclaim, as
you would also have to match COMPAT_SKIPPED and inability of reclaim...
and that gets uglier and uglier, and also against the move to node-based
reclaim...
So there's a danger that you'll see COMPACT_COMPLETE on a small ZONE_DMA
early on, before the larger zones even stop being deferred, but I don't
see an easy solution.
next prev parent reply other threads:[~2016-04-12 11:53 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-05 11:25 [PATCH 00/11] oom detection rework v5 Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-05 11:25 ` [PATCH 01/11] mm, oom: rework oom detection Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-05 11:25 ` [PATCH 02/11] mm: throttle on IO only when there are too many dirty and writeback pages Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-05 11:25 ` [PATCH 03/11] mm, compaction: change COMPACT_ constants into enum Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-05 11:25 ` [PATCH 04/11] mm, compaction: cover all compaction mode in compact_zone Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-05 11:25 ` [PATCH 05/11] mm, compaction: distinguish COMPACT_DEFERRED from COMPACT_SKIPPED Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-11 11:02 ` Vlastimil Babka
2016-04-11 11:02 ` Vlastimil Babka
2016-04-11 11:24 ` Michal Hocko
2016-04-11 11:24 ` Michal Hocko
2016-04-05 11:25 ` [PATCH 06/11] mm, compaction: distinguish between full and partial COMPACT_COMPLETE Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-11 12:10 ` Vlastimil Babka
2016-04-11 12:10 ` Vlastimil Babka
2016-04-11 12:46 ` Michal Hocko
2016-04-11 12:46 ` Michal Hocko
2016-04-11 12:53 ` Vlastimil Babka
2016-04-11 12:53 ` Vlastimil Babka
2016-04-11 13:27 ` Michal Hocko
2016-04-11 13:27 ` Michal Hocko
2016-04-11 13:42 ` Vlastimil Babka
2016-04-11 13:42 ` Vlastimil Babka
2016-04-11 13:46 ` Michal Hocko
2016-04-11 13:46 ` Michal Hocko
2016-04-05 11:25 ` [PATCH 07/11] mm, compaction: Update compaction_result ordering Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-11 12:16 ` Vlastimil Babka
2016-04-11 12:16 ` Vlastimil Babka
2016-04-05 11:25 ` [PATCH 08/11] mm, compaction: Simplify __alloc_pages_direct_compact feedback interface Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-11 13:48 ` Vlastimil Babka
2016-04-11 13:48 ` Vlastimil Babka
2016-04-05 11:25 ` [PATCH 09/11] mm, compaction: Abstract compaction feedback to helpers Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-05 23:58 ` Andrew Morton
2016-04-05 23:58 ` Andrew Morton
2016-04-06 0:55 ` Hugh Dickins
2016-04-06 0:55 ` Hugh Dickins
2016-04-06 9:26 ` Michal Hocko
2016-04-06 9:26 ` Michal Hocko
2016-04-06 17:46 ` Andrew Morton
2016-04-06 17:46 ` Andrew Morton
2016-04-11 14:39 ` Vlastimil Babka
2016-04-11 14:39 ` Vlastimil Babka
2016-04-11 15:14 ` Michal Hocko
2016-04-11 15:14 ` Michal Hocko
2016-04-11 15:33 ` Michal Hocko
2016-04-11 15:33 ` Michal Hocko
2016-04-12 11:53 ` Vlastimil Babka [this message]
2016-04-12 11:53 ` Vlastimil Babka
2016-04-12 12:23 ` Michal Hocko
2016-04-12 12:23 ` Michal Hocko
2016-04-11 15:40 ` Michal Hocko
2016-04-11 15:40 ` Michal Hocko
2016-04-11 16:07 ` [RFC PATCH] mm: use compaction feedback for thp backoff conditions Michal Hocko
2016-04-11 16:07 ` Michal Hocko
2016-04-12 11:54 ` [PATCH 09/11] mm, compaction: Abstract compaction feedback to helpers Vlastimil Babka
2016-04-12 11:54 ` Vlastimil Babka
2016-04-05 11:25 ` [PATCH 10/11] mm, oom: protect !costly allocations some more Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-06 0:06 ` Andrew Morton
2016-04-06 0:06 ` Andrew Morton
2016-04-06 9:28 ` Michal Hocko
2016-04-06 9:28 ` Michal Hocko
2016-04-11 14:48 ` Vlastimil Babka
2016-04-11 14:48 ` Vlastimil Babka
2016-04-05 11:25 ` [PATCH 11/11] mm: consider compaction feedback also for costly allocation Michal Hocko
2016-04-05 11:25 ` Michal Hocko
2016-04-05 12:46 ` Michal Hocko
2016-04-11 15:07 ` Vlastimil Babka
2016-04-11 15:07 ` Vlastimil Babka
2016-04-05 12:47 ` [PATCH 00/11] oom detection rework v5 Michal Hocko
2016-04-05 12:47 ` Michal Hocko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=570CE1CB.7070106@suse.cz \
--to=vbabka@suse.cz \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hillf.zj@alibaba-inc.com \
--cc=js1304@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mhocko@kernel.org \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=rientjes@google.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.