From: Vlastimil Babka <vbabka@suse.cz>
To: David Rientjes <rientjes@google.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [patch] mm, compaction: determine isolation mode only once
Date: Mon, 10 Mar 2014 16:29:10 +0100 [thread overview]
Message-ID: <531DDA46.5050803@suse.cz> (raw)
In-Reply-To: <alpine.DEB.2.02.1403070358120.13046@chino.kir.corp.google.com>
On 03/07/2014 01:01 PM, David Rientjes wrote:
> The conditions that control the isolation mode in
> isolate_migratepages_range() do not change during the iteration, so
> extract them out and only define the value once.
>
> This actually does have an effect, gcc doesn't optimize it itself because
> of cc->sync.
>
> Signed-off-by: David Rientjes <rientjes@google.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> mm/compaction.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -454,12 +454,13 @@ isolate_migratepages_range(struct zone *zone, struct compact_control *cc,
> unsigned long last_pageblock_nr = 0, pageblock_nr;
> unsigned long nr_scanned = 0, nr_isolated = 0;
> struct list_head *migratelist = &cc->migratepages;
> - isolate_mode_t mode = 0;
> struct lruvec *lruvec;
> unsigned long flags;
> bool locked = false;
> struct page *page = NULL, *valid_page = NULL;
> bool skipped_async_unsuitable = false;
> + const isolate_mode_t mode = (!cc->sync ? ISOLATE_ASYNC_MIGRATE : 0) |
> + (unevictable ? ISOLATE_UNEVICTABLE : 0);
>
> /*
> * Ensure that there are not too many pages isolated from the LRU
> @@ -592,12 +593,6 @@ isolate_migratepages_range(struct zone *zone, struct compact_control *cc,
> continue;
> }
>
> - if (!cc->sync)
> - mode |= ISOLATE_ASYNC_MIGRATE;
> -
> - if (unevictable)
> - mode |= ISOLATE_UNEVICTABLE;
> -
> lruvec = mem_cgroup_page_lruvec(page, zone);
>
> /* Try isolate the page */
>
--
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: David Rientjes <rientjes@google.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [patch] mm, compaction: determine isolation mode only once
Date: Mon, 10 Mar 2014 16:29:10 +0100 [thread overview]
Message-ID: <531DDA46.5050803@suse.cz> (raw)
In-Reply-To: <alpine.DEB.2.02.1403070358120.13046@chino.kir.corp.google.com>
On 03/07/2014 01:01 PM, David Rientjes wrote:
> The conditions that control the isolation mode in
> isolate_migratepages_range() do not change during the iteration, so
> extract them out and only define the value once.
>
> This actually does have an effect, gcc doesn't optimize it itself because
> of cc->sync.
>
> Signed-off-by: David Rientjes <rientjes@google.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> mm/compaction.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -454,12 +454,13 @@ isolate_migratepages_range(struct zone *zone, struct compact_control *cc,
> unsigned long last_pageblock_nr = 0, pageblock_nr;
> unsigned long nr_scanned = 0, nr_isolated = 0;
> struct list_head *migratelist = &cc->migratepages;
> - isolate_mode_t mode = 0;
> struct lruvec *lruvec;
> unsigned long flags;
> bool locked = false;
> struct page *page = NULL, *valid_page = NULL;
> bool skipped_async_unsuitable = false;
> + const isolate_mode_t mode = (!cc->sync ? ISOLATE_ASYNC_MIGRATE : 0) |
> + (unevictable ? ISOLATE_UNEVICTABLE : 0);
>
> /*
> * Ensure that there are not too many pages isolated from the LRU
> @@ -592,12 +593,6 @@ isolate_migratepages_range(struct zone *zone, struct compact_control *cc,
> continue;
> }
>
> - if (!cc->sync)
> - mode |= ISOLATE_ASYNC_MIGRATE;
> -
> - if (unevictable)
> - mode |= ISOLATE_UNEVICTABLE;
> -
> lruvec = mem_cgroup_page_lruvec(page, zone);
>
> /* Try isolate the page */
>
next prev parent reply other threads:[~2014-03-10 15:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-07 12:01 [patch] mm, compaction: determine isolation mode only once David Rientjes
2014-03-07 12:01 ` David Rientjes
2014-03-07 12:27 ` Rik van Riel
2014-03-07 12:27 ` Rik van Riel
2014-03-10 15:29 ` Vlastimil Babka [this message]
2014-03-10 15:29 ` Vlastimil Babka
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=531DDA46.5050803@suse.cz \
--to=vbabka@suse.cz \
--cc=akpm@linux-foundation.org \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=riel@redhat.com \
--cc=rientjes@google.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.