All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mel Gorman <mgorman@suse.de>
To: Michal Hocko <mhocko@kernel.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>,
	Hillf Danton <hdanton@sina.com>, Vlastimil Babka <vbabka@suse.cz>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Johannes Weiner <hannes@cmpxchg.org>
Subject: Re: [Question] Should direct reclaim time be bounded?
Date: Fri, 12 Jul 2019 10:49:19 +0100	[thread overview]
Message-ID: <20190712094919.GI13484@suse.de> (raw)
In-Reply-To: <20190711071245.GB29483@dhcp22.suse.cz>

On Thu, Jul 11, 2019 at 09:12:45AM +0200, Michal Hocko wrote:
> On Wed 10-07-19 16:36:58, Mike Kravetz wrote:
> > On 7/10/19 12:44 PM, Michal Hocko wrote:
> > > On Wed 10-07-19 11:42:40, Mike Kravetz wrote:
> > > [...]
> > >> As Michal suggested, I'm going to do some testing to see what impact
> > >> dropping the __GFP_RETRY_MAYFAIL flag for these huge page allocations
> > >> will have on the number of pages allocated.
> > > 
> > > Just to clarify. I didn't mean to drop __GFP_RETRY_MAYFAIL from the
> > > allocation request. I meant to drop the special casing of the flag in
> > > should_continue_reclaim. I really have hard time to argue for this
> > > special casing TBH. The flag is meant to retry harder but that shouldn't
> > > be reduced to a single reclaim attempt because that alone doesn't really
> > > help much with the high order allocation. It is more about compaction to
> > > be retried harder.
> > 
> > Thanks Michal.  That is indeed what you suggested earlier.  I remembered
> > incorrectly.  Sorry.
> > 
> > Removing the special casing for __GFP_RETRY_MAYFAIL in should_continue_reclaim
> > implies that it will return false if nothing was reclaimed (nr_reclaimed == 0)
> > in the previous pass.
> > 
> > When I make such a modification and test, I see long stalls as a result
> > of should_compact_retry returning true too often.  On a system I am currently
> > testing, should_compact_retry has returned true 36000000 times.  My guess
> > is that this may stall forever.  Vlastmil previously asked about this behavior,
> > so I am capturing the reason.  Like before [1], should_compact_retry is
> > returning true mostly because compaction_withdrawn() returns COMPACT_DEFERRED.
> 
> This smells like a problem to me. But somebody more familiar with
> compaction should comment.
> 

Examine in should_compact_retry if it's retrying because
compaction_zonelist_suitable is true. Looking at it now, it would not
necessarily do the right thing because any non-skipped zone would make
it eligible which is too strong a condition as COMPACT_SKIPPED is not
reliably set. If that function is the case, it would be reasonable
remove "ret = compaction_zonelist_suitable(ac, order, alloc_flags);" and
the implementation of compaction_zonelist_suitable entirely as part of
your fix.

-- 
Mel Gorman
SUSE Labs


  reply	other threads:[~2019-07-12  9:49 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-23  4:07 [Question] Should direct reclaim time be bounded? Mike Kravetz
2019-04-23  7:19 ` Michal Hocko
2019-04-23 16:39   ` Mike Kravetz
2019-04-24 14:35     ` Vlastimil Babka
2019-06-28 18:20       ` Mike Kravetz
2019-07-01  8:59         ` Mel Gorman
2019-07-02  3:15           ` Mike Kravetz
2019-07-08  5:19             ` Hillf Danton
2019-07-03  9:43             ` Mel Gorman
2019-07-03 23:54               ` Mike Kravetz
2019-07-04 11:09                 ` Michal Hocko
2019-07-04 15:11                   ` Mike Kravetz
2019-07-10 18:42             ` Mike Kravetz
2019-07-10 19:44               ` Michal Hocko
2019-07-10 23:36                 ` Mike Kravetz
2019-07-11  7:12                   ` Michal Hocko
2019-07-12  9:49                     ` Mel Gorman [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-07-11 15:44 Hillf Danton
2019-07-12  5:47 Hillf Danton
2019-07-13  1:11 ` Mike Kravetz

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=20190712094919.GI13484@suse.de \
    --to=mgorman@suse.de \
    --cc=hannes@cmpxchg.org \
    --cc=hdanton@sina.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=mike.kravetz@oracle.com \
    --cc=vbabka@suse.cz \
    /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.