All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, Joonsoo Kim <iamjoonsoo.kim@lge.com>
Subject: Re: [PATCH] mm: fix negative nr_isolated counts
Date: Wed, 11 Feb 2015 10:58:13 +0100	[thread overview]
Message-ID: <54DB27B5.9060207@suse.cz> (raw)
In-Reply-To: <alpine.LSU.2.11.1502102303040.13607@eggly.anvils>

On 02/11/2015 08:06 AM, Hugh Dickins wrote:
> The vmstat interfaces are good at hiding negative counts (at least
> when CONFIG_SMP); but if you peer behind the curtain, you find that
> nr_isolated_anon and nr_isolated_file soon go negative, and grow ever
> more negative: so they can absorb larger and larger numbers of isolated
> pages, yet still appear to be zero.
>
> I'm happy to avoid a congestion_wait() when too_many_isolated() myself;
> but I guess it's there for a good reason, in which case we ought to get
> too_many_isolated() working again.
>
> The imbalance comes from isolate_migratepages()'s ISOLATE_ABORT case:
> putback_movable_pages() decrements the NR_ISOLATED counts, but we forgot
> to call acct_isolated() to increment them.
>
> Fixes: edc2ca612496 ("mm, compaction: move pageblock checks up from isolate_migratepages_range()")

Ccing Joonsoo for completeness, as it seems he contributed to this part 
[1] (to fix another bug of mine, not trying to dismiss responsibility)

But yeah it looks correct. Thanks for finding and fixing!

Acked-by: Vlastimil Babka <vbabka@suse.cz>

[1] https://lkml.org/lkml/2014/9/29/60

> Signed-off-by: Hugh Dickins <hughd@google.com>
> Cc: stable@vger.kernel.org # v3.18+
> ---
>
>   mm/compaction.c |    4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
>
> --- v3.19/mm/compaction.c	2015-02-08 18:54:22.000000000 -0800
> +++ linux/mm/compaction.c	2015-02-10 22:25:04.613907871 -0800
> @@ -1015,8 +1015,10 @@ static isolate_migrate_t isolate_migrate
>   		low_pfn = isolate_migratepages_block(cc, low_pfn, end_pfn,
>   								isolate_mode);
>
> -		if (!low_pfn || cc->contended)
> +		if (!low_pfn || cc->contended) {
> +			acct_isolated(zone, cc);
>   			return ISOLATE_ABORT;
> +		}
>
>   		/*
>   		 * Either we isolated something and proceed with migration. Or
>

--
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>

  reply	other threads:[~2015-02-11  9:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-11  7:06 [PATCH] mm: fix negative nr_isolated counts Hugh Dickins
2015-02-11  9:58 ` Vlastimil Babka [this message]
2015-02-12  7:10   ` Joonsoo Kim
2015-02-11 21:09 ` Andrew Morton
2015-02-12  8:18   ` Vlastimil Babka
2015-02-12 15:12     ` Rik van Riel

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=54DB27B5.9060207@suse.cz \
    --to=vbabka@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=linux-mm@kvack.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.