From: Hush Bensen <hush.bensen@gmail.com>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: linux-mm@kvack.org, Mel Gorman <mgorman@suse.de>,
Rik van Riel <riel@redhat.com>, Hugh Dickins <hughd@google.com>,
Richard Davies <richard@arachsys.com>,
Shaohua Li <shli@kernel.org>, Rafael Aquini <aquini@redhat.com>
Subject: Re: [PATCH 05/10] mm: compaction: don't require high order pages below min wmark
Date: Wed, 17 Jul 2013 04:13:04 -0400 [thread overview]
Message-ID: <51E65210.6040103@gmail.com> (raw)
In-Reply-To: <1373982114-19774-6-git-send-email-aarcange@redhat.com>
On 07/16/2013 09:41 AM, Andrea Arcangeli wrote:
> The min wmark should be satisfied with just 1 hugepage. And the other
> wmarks should be adjusted accordingly. We need to succeed the low
> wmark check if there's some significant amount of 0 order pages, but
> we don't need plenty of high order pages because the PF_MEMALLOC paths
> don't require those. Creating a ton of high order pages that cannot be
> allocated by the high order allocation paths (no PF_MEMALLOC) is quite
> wasteful because they can be splitted in lower order pages before
> anybody has a chance to allocate them.
>
> Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
> ---
> mm/page_alloc.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index db8fb66..d94503d 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1643,6 +1643,23 @@ static bool __zone_watermark_ok(struct zone *z, int order, unsigned long mark,
>
> if (free_pages - free_cma <= min + lowmem_reserve)
> return false;
> + if (!order)
> + return true;
> +
> + /*
> + * Don't require any high order page under the min
> + * wmark. Invoking compaction to create lots of high order
> + * pages below the min wmark is wasteful because those
> + * hugepages cannot be allocated without PF_MEMALLOC and the
> + * PF_MEMALLOC paths must not depend on high order allocations
> + * to succeed.
> + */
> + min = mark - z->watermark[WMARK_MIN];
> + WARN_ON(min < 0);
> + if (alloc_flags & ALLOC_HIGH)
> + min -= min / 2;
> + if (alloc_flags & ALLOC_HARDER)
> + min -= min / 4;
__zone_watermark_ok has these operations for mark, why do it again?
> for (o = 0; o < order; o++) {
> /* At the next order, this order's pages become unavailable */
> free_pages -= z->free_area[o].nr_free << o;
--
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>
next prev parent reply other threads:[~2013-07-17 8:13 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-16 13:41 [PATCH 00/10] adding compaction to zone_reclaim_mode > 0 #2 Andrea Arcangeli
2013-07-16 13:41 ` [PATCH 01/10] mm: zone_reclaim: remove ZONE_RECLAIM_LOCKED Andrea Arcangeli
2013-07-16 23:45 ` Wanpeng Li
2013-07-16 23:45 ` Wanpeng Li
2013-07-16 13:41 ` [PATCH 02/10] mm: zone_reclaim: compaction: scan all memory with /proc/sys/vm/compact_memory Andrea Arcangeli
2013-07-16 23:29 ` Wanpeng Li
2013-07-16 23:29 ` Wanpeng Li
2013-07-16 13:41 ` [PATCH 03/10] mm: zone_reclaim: compaction: don't depend on kswapd to invoke reset_isolation_suitable Andrea Arcangeli
2013-07-16 23:32 ` Wanpeng Li
2013-07-16 23:32 ` Wanpeng Li
2013-07-16 13:41 ` [PATCH 04/10] mm: zone_reclaim: compaction: reset before initializing the scan cursors Andrea Arcangeli
2013-07-16 23:31 ` Wanpeng Li
2013-07-16 23:31 ` Wanpeng Li
2013-07-16 13:41 ` [PATCH 05/10] mm: compaction: don't require high order pages below min wmark Andrea Arcangeli
2013-07-17 8:13 ` Hush Bensen [this message]
2013-07-17 17:15 ` Andrea Arcangeli
2013-07-16 13:41 ` [PATCH 06/10] mm: zone_reclaim: compaction: increase the high order pages in the watermarks Andrea Arcangeli
2013-07-16 13:41 ` [PATCH 07/10] mm: zone_reclaim: compaction: export compact_zone_order() Andrea Arcangeli
2013-07-16 13:41 ` [PATCH 08/10] mm: zone_reclaim: only run zone_reclaim in the fast path Andrea Arcangeli
2013-07-16 13:41 ` [PATCH 09/10] mm: zone_reclaim: after a successful zone_reclaim check the min watermark Andrea Arcangeli
2013-07-16 13:41 ` [PATCH 10/10] mm: zone_reclaim: compaction: add compaction to zone_reclaim_mode Andrea Arcangeli
2013-07-17 8:20 ` Hush Bensen
2013-07-17 17:20 ` Andrea Arcangeli
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=51E65210.6040103@gmail.com \
--to=hush.bensen@gmail.com \
--cc=aarcange@redhat.com \
--cc=aquini@redhat.com \
--cc=hughd@google.com \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=richard@arachsys.com \
--cc=riel@redhat.com \
--cc=shli@kernel.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.