All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Hugh Dickins <hughd@google.com>, Michal Hocko <mhocko@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: mmotm woes, mainly compaction
Date: Tue, 12 Apr 2016 11:14:26 +0200	[thread overview]
Message-ID: <570CBC72.9020003@suse.cz> (raw)
In-Reply-To: <570CB9CE.1070408@suse.cz>

On 04/12/2016 11:03 AM, Vlastimil Babka wrote:
> On 04/12/2016 09:18 AM, Hugh Dickins wrote:
>> 3. /proc/sys/vm/stat_refresh warns nr_isolated_anon and nr_isolated_file
>>      go increasingly negative under compaction: which would add delay when
>>      should be none, or no delay when should delay.  putback_movable_pages()
>>      decrements the NR_ISOLATED counts which acct_isolated() increments,
>>      so isolate_migratepages_block() needs to acct before putback in that
>>      special case, and isolate_migratepages_range() can always do the acct
>>      itself, leaving migratepages putback to caller like most other places.
>
> The isolate_migratepages_block() part is mmotm-specific, so I'll split
> it out in this patch. Thanks for catching it and the lack of reset for
> cc->nr_migratepages which wasn't mentioned in changelog so I added it.
>
>> 5. It's easier to track the life of cc->migratepages if we don't assign
>>      it to a migratelist variable.
>
> This is also included here.
>
> This is a -fix for:
> mm-compaction-skip-blocks-where-isolation-fails-in-async-direct-compaction.patch
>
> ----8<----
>  From 59a0075b6cf85045aa2dc5cee1f27797bcd0b3d2 Mon Sep 17 00:00:00 2001
> From: Hugh Dickins <hughd@google.com>
> Date: Tue, 12 Apr 2016 10:51:20 +0200
> Subject: [PATCH] mm, compaction: prevent nr_isolated_* from going negative
>
> /proc/sys/vm/stat_refresh warns nr_isolated_anon and nr_isolated_file
> go increasingly negative under compaction: which would add delay when
> should be none, or no delay when should delay.  putback_movable_pages()
> decrements the NR_ISOLATED counts which acct_isolated() increments,
> so isolate_migratepages_block() needs to acct before putback in that
> special case. It's also useful to reset cc->nr_migratepages after putback
> so we don't needlessly return too early on the COMPACT_CLUSTER_MAX check.
>
> Also it's easier to track the life of cc->migratepages if we don't assign
> it to a migratelist variable.

Forgot
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>   mm/compaction.c | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 67f886ecd773..ab649fba3d88 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -638,7 +638,6 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>   {
>   	struct zone *zone = cc->zone;
>   	unsigned long nr_scanned = 0, nr_isolated = 0;
> -	struct list_head *migratelist = &cc->migratepages;
>   	struct lruvec *lruvec;
>   	unsigned long flags = 0;
>   	bool locked = false;
> @@ -817,7 +816,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>   		del_page_from_lru_list(page, lruvec, page_lru(page));
>
>   isolate_success:
> -		list_add(&page->lru, migratelist);
> +		list_add(&page->lru, &cc->migratepages);
>   		cc->nr_migratepages++;
>   		nr_isolated++;
>
> @@ -851,9 +850,11 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>   				spin_unlock_irqrestore(&zone->lru_lock,	flags);
>   				locked = false;
>   			}
> -			putback_movable_pages(migratelist);
> -			nr_isolated = 0;
> +			acct_isolated(zone, cc);
> +			putback_movable_pages(&cc->migratepages);
> +			cc->nr_migratepages = 0;
>   			cc->last_migrated_pfn = 0;
> +			nr_isolated = 0;
>   		}
>
>   		if (low_pfn < next_skip_pfn) {
>

--
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: Hugh Dickins <hughd@google.com>, Michal Hocko <mhocko@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: mmotm woes, mainly compaction
Date: Tue, 12 Apr 2016 11:14:26 +0200	[thread overview]
Message-ID: <570CBC72.9020003@suse.cz> (raw)
In-Reply-To: <570CB9CE.1070408@suse.cz>

On 04/12/2016 11:03 AM, Vlastimil Babka wrote:
> On 04/12/2016 09:18 AM, Hugh Dickins wrote:
>> 3. /proc/sys/vm/stat_refresh warns nr_isolated_anon and nr_isolated_file
>>      go increasingly negative under compaction: which would add delay when
>>      should be none, or no delay when should delay.  putback_movable_pages()
>>      decrements the NR_ISOLATED counts which acct_isolated() increments,
>>      so isolate_migratepages_block() needs to acct before putback in that
>>      special case, and isolate_migratepages_range() can always do the acct
>>      itself, leaving migratepages putback to caller like most other places.
>
> The isolate_migratepages_block() part is mmotm-specific, so I'll split
> it out in this patch. Thanks for catching it and the lack of reset for
> cc->nr_migratepages which wasn't mentioned in changelog so I added it.
>
>> 5. It's easier to track the life of cc->migratepages if we don't assign
>>      it to a migratelist variable.
>
> This is also included here.
>
> This is a -fix for:
> mm-compaction-skip-blocks-where-isolation-fails-in-async-direct-compaction.patch
>
> ----8<----
>  From 59a0075b6cf85045aa2dc5cee1f27797bcd0b3d2 Mon Sep 17 00:00:00 2001
> From: Hugh Dickins <hughd@google.com>
> Date: Tue, 12 Apr 2016 10:51:20 +0200
> Subject: [PATCH] mm, compaction: prevent nr_isolated_* from going negative
>
> /proc/sys/vm/stat_refresh warns nr_isolated_anon and nr_isolated_file
> go increasingly negative under compaction: which would add delay when
> should be none, or no delay when should delay.  putback_movable_pages()
> decrements the NR_ISOLATED counts which acct_isolated() increments,
> so isolate_migratepages_block() needs to acct before putback in that
> special case. It's also useful to reset cc->nr_migratepages after putback
> so we don't needlessly return too early on the COMPACT_CLUSTER_MAX check.
>
> Also it's easier to track the life of cc->migratepages if we don't assign
> it to a migratelist variable.

Forgot
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>   mm/compaction.c | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 67f886ecd773..ab649fba3d88 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -638,7 +638,6 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>   {
>   	struct zone *zone = cc->zone;
>   	unsigned long nr_scanned = 0, nr_isolated = 0;
> -	struct list_head *migratelist = &cc->migratepages;
>   	struct lruvec *lruvec;
>   	unsigned long flags = 0;
>   	bool locked = false;
> @@ -817,7 +816,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>   		del_page_from_lru_list(page, lruvec, page_lru(page));
>
>   isolate_success:
> -		list_add(&page->lru, migratelist);
> +		list_add(&page->lru, &cc->migratepages);
>   		cc->nr_migratepages++;
>   		nr_isolated++;
>
> @@ -851,9 +850,11 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
>   				spin_unlock_irqrestore(&zone->lru_lock,	flags);
>   				locked = false;
>   			}
> -			putback_movable_pages(migratelist);
> -			nr_isolated = 0;
> +			acct_isolated(zone, cc);
> +			putback_movable_pages(&cc->migratepages);
> +			cc->nr_migratepages = 0;
>   			cc->last_migrated_pfn = 0;
> +			nr_isolated = 0;
>   		}
>
>   		if (low_pfn < next_skip_pfn) {
>

  reply	other threads:[~2016-04-12  9:14 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-12  7:18 mmotm woes, mainly compaction Hugh Dickins
2016-04-12  7:18 ` Hugh Dickins
2016-04-12  8:03 ` Vlastimil Babka
2016-04-12  8:03   ` Vlastimil Babka
2016-04-12  9:03 ` Vlastimil Babka
2016-04-12  9:03   ` Vlastimil Babka
2016-04-12  9:14   ` Vlastimil Babka [this message]
2016-04-12  9:14     ` Vlastimil Babka
2016-04-12  9:31 ` Vlastimil Babka
2016-04-12  9:31   ` Vlastimil Babka
2016-04-12  9:38 ` Vlastimil Babka
2016-04-12  9:38   ` Vlastimil Babka
2016-04-12 12:10 ` Michal Hocko
2016-04-12 12:10   ` Michal Hocko
2016-04-12 14:51   ` Michal Hocko
2016-04-12 14:51     ` Michal Hocko
2016-04-14 20:15   ` Hugh Dickins
2016-04-14 20:15     ` Hugh Dickins
2016-04-14 23:24     ` Vlastimil Babka
2016-04-14 23:24       ` Vlastimil Babka
2016-04-15  1:00       ` Hugh Dickins
2016-04-15  1:00         ` Hugh Dickins
2016-04-18 19:14       ` Vlastimil Babka
2016-04-18 19:14         ` Vlastimil Babka
2016-04-15  8:42     ` Michal Hocko
2016-04-15  8:42       ` 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=570CBC72.9020003@suse.cz \
    --to=vbabka@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=mhocko@suse.com \
    /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.