From: Minchan Kim <minchan@kernel.org>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Heesub Shin <heesub.shin@samsung.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Dongjun Shin <d.j.shin@samsung.com>,
Sunghwan Yun <sunghwan.yun@samsung.com>,
Mel Gorman <mgorman@suse.de>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
Michal Nazarewicz <mina86@mina86.com>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
Christoph Lameter <cl@linux.com>, Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 2/2] mm/compaction: cleanup isolate_freepages()
Date: Thu, 17 Apr 2014 09:07:45 +0900 [thread overview]
Message-ID: <20140417000745.GF27534@bbox> (raw)
In-Reply-To: <1397553507-15330-2-git-send-email-vbabka@suse.cz>
Hi Vlastimil,
Below just nitpicks.
On Tue, Apr 15, 2014 at 11:18:27AM +0200, Vlastimil Babka wrote:
> isolate_freepages() is currently somewhat hard to follow thanks to many
> different pfn variables. Especially misleading is the name 'high_pfn' which
> looks like it is related to the 'low_pfn' variable, but in fact it is not.
Indeed.
>
> This patch renames the 'high_pfn' variable to a hopefully less confusing name,
> and slightly changes its handling without a functional change. A comment made
> obsolete by recent changes is also updated.
It's clean up patch so if we do fixing, I'd like to do more.
>
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> Cc: Minchan Kim <minchan@kernel.org>
> Cc: Mel Gorman <mgorman@suse.de>
> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> Cc: Michal Nazarewicz <mina86@mina86.com>
> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> Cc: Christoph Lameter <cl@linux.com>
> Cc: Rik van Riel <riel@redhat.com>
> ---
> mm/compaction.c | 17 ++++++++---------
> 1 file changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 627dc2e..169c7b2 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -671,7 +671,7 @@ static void isolate_freepages(struct zone *zone,
> struct compact_control *cc)
> {
> struct page *page;
> - unsigned long high_pfn, low_pfn, pfn, z_end_pfn;
> + unsigned long pfn, low_pfn, next_free_pfn, z_end_pfn;
Could you add comment for each variable?
unsigned long pfn; /* scanning cursor */
unsigned long low_pfn; /* lowest pfn free scanner is able to scan */
unsigned long next_free_pfn; /* start pfn for scaning at next truen */
unsigned long z_end_pfn; /* zone's end pfn */
> int nr_freepages = cc->nr_freepages;
> struct list_head *freelist = &cc->freepages;
>
> @@ -688,11 +688,10 @@ static void isolate_freepages(struct zone *zone,
> low_pfn = ALIGN(cc->migrate_pfn + 1, pageblock_nr_pages);
>
> /*
> - * Take care that if the migration scanner is at the end of the zone
> - * that the free scanner does not accidentally move to the next zone
> - * in the next isolation cycle.
> + * Seed the value for max(next_free_pfn, pfn) updates. If there are
> + * none, the pfn < low_pfn check will kick in.
"none" what? I'd like to clear more.
> */
> - high_pfn = min(low_pfn, pfn);
> + next_free_pfn = 0;
>
> z_end_pfn = zone_end_pfn(zone);
>
> @@ -754,7 +753,7 @@ static void isolate_freepages(struct zone *zone,
> */
> if (isolated) {
> cc->finished_update_free = true;
> - high_pfn = max(high_pfn, pfn);
> + next_free_pfn = max(next_free_pfn, pfn);
> }
> }
>
> @@ -766,9 +765,9 @@ static void isolate_freepages(struct zone *zone,
> * so that compact_finished() may detect this
> */
> if (pfn < low_pfn)
> - cc->free_pfn = max(pfn, zone->zone_start_pfn);
> - else
> - cc->free_pfn = high_pfn;
> + next_free_pfn = max(pfn, zone->zone_start_pfn);
Why we need max operation?
IOW, what's the problem if we do (next_free_pfn = pfn)?
> +
> + cc->free_pfn = next_free_pfn;
> cc->nr_freepages = nr_freepages;
> }
>
> --
> 1.8.4.5
>
> --
> 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>
--
Kind regards,
Minchan Kim
--
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: Minchan Kim <minchan@kernel.org>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Heesub Shin <heesub.shin@samsung.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Dongjun Shin <d.j.shin@samsung.com>,
Sunghwan Yun <sunghwan.yun@samsung.com>,
Mel Gorman <mgorman@suse.de>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
Michal Nazarewicz <mina86@mina86.com>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
Christoph Lameter <cl@linux.com>, Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 2/2] mm/compaction: cleanup isolate_freepages()
Date: Thu, 17 Apr 2014 09:07:45 +0900 [thread overview]
Message-ID: <20140417000745.GF27534@bbox> (raw)
In-Reply-To: <1397553507-15330-2-git-send-email-vbabka@suse.cz>
Hi Vlastimil,
Below just nitpicks.
On Tue, Apr 15, 2014 at 11:18:27AM +0200, Vlastimil Babka wrote:
> isolate_freepages() is currently somewhat hard to follow thanks to many
> different pfn variables. Especially misleading is the name 'high_pfn' which
> looks like it is related to the 'low_pfn' variable, but in fact it is not.
Indeed.
>
> This patch renames the 'high_pfn' variable to a hopefully less confusing name,
> and slightly changes its handling without a functional change. A comment made
> obsolete by recent changes is also updated.
It's clean up patch so if we do fixing, I'd like to do more.
>
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> Cc: Minchan Kim <minchan@kernel.org>
> Cc: Mel Gorman <mgorman@suse.de>
> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> Cc: Michal Nazarewicz <mina86@mina86.com>
> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> Cc: Christoph Lameter <cl@linux.com>
> Cc: Rik van Riel <riel@redhat.com>
> ---
> mm/compaction.c | 17 ++++++++---------
> 1 file changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 627dc2e..169c7b2 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -671,7 +671,7 @@ static void isolate_freepages(struct zone *zone,
> struct compact_control *cc)
> {
> struct page *page;
> - unsigned long high_pfn, low_pfn, pfn, z_end_pfn;
> + unsigned long pfn, low_pfn, next_free_pfn, z_end_pfn;
Could you add comment for each variable?
unsigned long pfn; /* scanning cursor */
unsigned long low_pfn; /* lowest pfn free scanner is able to scan */
unsigned long next_free_pfn; /* start pfn for scaning at next truen */
unsigned long z_end_pfn; /* zone's end pfn */
> int nr_freepages = cc->nr_freepages;
> struct list_head *freelist = &cc->freepages;
>
> @@ -688,11 +688,10 @@ static void isolate_freepages(struct zone *zone,
> low_pfn = ALIGN(cc->migrate_pfn + 1, pageblock_nr_pages);
>
> /*
> - * Take care that if the migration scanner is at the end of the zone
> - * that the free scanner does not accidentally move to the next zone
> - * in the next isolation cycle.
> + * Seed the value for max(next_free_pfn, pfn) updates. If there are
> + * none, the pfn < low_pfn check will kick in.
"none" what? I'd like to clear more.
> */
> - high_pfn = min(low_pfn, pfn);
> + next_free_pfn = 0;
>
> z_end_pfn = zone_end_pfn(zone);
>
> @@ -754,7 +753,7 @@ static void isolate_freepages(struct zone *zone,
> */
> if (isolated) {
> cc->finished_update_free = true;
> - high_pfn = max(high_pfn, pfn);
> + next_free_pfn = max(next_free_pfn, pfn);
> }
> }
>
> @@ -766,9 +765,9 @@ static void isolate_freepages(struct zone *zone,
> * so that compact_finished() may detect this
> */
> if (pfn < low_pfn)
> - cc->free_pfn = max(pfn, zone->zone_start_pfn);
> - else
> - cc->free_pfn = high_pfn;
> + next_free_pfn = max(pfn, zone->zone_start_pfn);
Why we need max operation?
IOW, what's the problem if we do (next_free_pfn = pfn)?
> +
> + cc->free_pfn = next_free_pfn;
> cc->nr_freepages = nr_freepages;
> }
>
> --
> 1.8.4.5
>
> --
> 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>
--
Kind regards,
Minchan Kim
next prev parent reply other threads:[~2014-04-17 0:07 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-03 8:57 [PATCH 1/2] mm/compaction: clean up unused code lines Heesub Shin
2014-04-03 8:57 ` Heesub Shin
2014-04-03 8:57 ` [PATCH 2/2] mm/compaction: fix to initialize free scanner properly Heesub Shin
2014-04-03 8:57 ` Heesub Shin
2014-04-07 14:46 ` Vlastimil Babka
2014-04-07 14:46 ` Vlastimil Babka
2014-04-15 9:18 ` [PATCH 1/2] mm/compaction: make isolate_freepages start at pageblock boundary Vlastimil Babka
2014-04-15 9:18 ` Vlastimil Babka
2014-04-15 9:18 ` [PATCH 2/2] mm/compaction: cleanup isolate_freepages() Vlastimil Babka
2014-04-15 9:18 ` Vlastimil Babka
2014-04-16 1:53 ` Joonsoo Kim
2014-04-16 1:53 ` Joonsoo Kim
2014-04-16 15:49 ` Rik van Riel
2014-04-16 15:49 ` Rik van Riel
2014-04-17 0:07 ` Minchan Kim [this message]
2014-04-17 0:07 ` Minchan Kim
2014-04-21 19:41 ` Andrew Morton
2014-04-21 19:41 ` Andrew Morton
2014-04-21 21:43 ` Vlastimil Babka
2014-04-21 21:43 ` Vlastimil Babka
2014-04-21 23:53 ` Minchan Kim
2014-04-21 23:53 ` Minchan Kim
2014-04-22 6:33 ` Vlastimil Babka
2014-04-22 6:33 ` Vlastimil Babka
2014-04-22 6:52 ` Minchan Kim
2014-04-22 6:52 ` Minchan Kim
2014-04-22 13:17 ` Vlastimil Babka
2014-04-22 13:17 ` Vlastimil Babka
2014-04-23 2:58 ` Joonsoo Kim
2014-04-23 2:58 ` Joonsoo Kim
2014-04-23 7:30 ` Vlastimil Babka
2014-04-23 7:30 ` Vlastimil Babka
2014-04-23 13:54 ` Joonsoo Kim
2014-04-23 13:54 ` Joonsoo Kim
2014-04-23 14:31 ` Vlastimil Babka
2014-04-23 14:31 ` Vlastimil Babka
2014-04-25 8:29 ` Joonsoo Kim
2014-04-25 8:29 ` Joonsoo Kim
2014-04-29 8:40 ` Vlastimil Babka
2014-04-29 8:40 ` Vlastimil Babka
2014-05-01 1:58 ` Michal Nazarewicz
2014-04-16 1:52 ` [PATCH 1/2] mm/compaction: make isolate_freepages start at pageblock boundary Joonsoo Kim
2014-04-16 1:52 ` Joonsoo Kim
2014-04-16 15:47 ` Rik van Riel
2014-04-16 15:47 ` Rik van Riel
2014-04-16 23:43 ` Minchan Kim
2014-04-16 23:43 ` Minchan Kim
2014-04-07 14:40 ` [PATCH 1/2] mm/compaction: clean up unused code lines Vlastimil Babka
2014-04-07 14:40 ` 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=20140417000745.GF27534@bbox \
--to=minchan@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=b.zolnierkie@samsung.com \
--cc=cl@linux.com \
--cc=d.j.shin@samsung.com \
--cc=heesub.shin@samsung.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mina86@mina86.com \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=riel@redhat.com \
--cc=sunghwan.yun@samsung.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.