From: Joonsoo Kim <iamjoonsoo.kim@lge.com>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Aaron Lu <aaron.lu@intel.com>,
linux-mm@kvack.org, Huang Ying <ying.huang@intel.com>,
Dave Hansen <dave.hansen@intel.com>,
Tim Chen <tim.c.chen@linux.intel.com>,
lkp@lists.01.org, Andrea Arcangeli <aarcange@redhat.com>,
David Rientjes <rientjes@google.com>
Subject: Re: hugepage compaction causes performance drop
Date: Mon, 23 Nov 2015 17:16:01 +0900 [thread overview]
Message-ID: <20151123081601.GA29397@js1304-P5Q-DELUXE> (raw)
In-Reply-To: <564EF0B6.10508@suse.cz>
On Fri, Nov 20, 2015 at 11:06:46AM +0100, Vlastimil Babka wrote:
> On 11/20/2015 10:33 AM, Aaron Lu wrote:
> >On 11/20/2015 04:55 PM, Aaron Lu wrote:
> >>On 11/19/2015 09:29 PM, Vlastimil Babka wrote:
> >>>+CC Andrea, David, Joonsoo
> >>>
> >>>On 11/19/2015 10:29 AM, Aaron Lu wrote:
> >>>>The vmstat and perf-profile are also attached, please let me know if you
> >>>>need any more information, thanks.
> >>>
> >>>Output from vmstat (the tool) isn't much useful here, a periodic "cat
> >>>/proc/vmstat" would be much better.
> >>
> >>No problem.
> >>
> >>>The perf profiles are somewhat weirdly sorted by children cost (?), but
> >>>I noticed a very high cost (46%) in pageblock_pfn_to_page(). This could
> >>>be due to a very large but sparsely populated zone. Could you provide
> >>>/proc/zoneinfo?
> >>
> >>Is a one time /proc/zoneinfo enough or also a periodic one?
> >
> >Please see attached, note that this is a new run so the perf profile is
> >a little different.
> >
> >Thanks,
> >Aaron
>
> Thanks.
>
> DMA32 is a bit sparse:
>
> Node 0, zone DMA32
> pages free 62829
> min 327
> low 408
> high 490
> scanned 0
> spanned 1044480
> present 495951
> managed 479559
>
> Since the other zones are much larger, probably this is not the
> culprit. But tracepoints should tell us more. I have a theory that
> updating free scanner's cached pfn doesn't happen if it aborts due
> to need_resched() during isolate_freepages(), before hitting a valid
> pageblock, if the zone has a large hole in it. But zoneinfo doesn't
> tell us if the large difference between "spanned" and
> "present"/"managed" is due to a large hole, or many smaller holes...
>
> compact_migrate_scanned 1982396
> compact_free_scanned 40576943
> compact_isolated 2096602
> compact_stall 9070
> compact_fail 6025
> compact_success 3045
>
> So it's struggling to find free pages, no wonder about that. I'm
Numbers looks fine to me. I guess this performance degradation is
caused by COMPACT_CLUSTER_MAX change (from 32 to 256). THP allocation
is async so should be aborted quickly. But, after isolating 256
migratable pages, it can't be aborted and will finish 256 pages
migration (at least, current implementation).
Aaron, please test again with setting COMPACT_CLUSTER_MAX to 32
(in swap.h)?
And, please attach always-always's vmstat numbers, too.
Thanks.
--
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:[~2015-11-23 8:15 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-19 9:29 Aaron Lu
2015-11-19 13:29 ` Vlastimil Babka
2015-11-20 8:55 ` Aaron Lu
2015-11-20 9:33 ` Aaron Lu
2015-11-20 10:06 ` Vlastimil Babka
2015-11-23 8:16 ` Joonsoo Kim [this message]
2015-11-23 8:33 ` Aaron Lu
2015-11-23 9:24 ` Joonsoo Kim
2015-11-24 3:40 ` Aaron Lu
2015-11-24 4:55 ` Joonsoo Kim
2015-11-24 7:27 ` Aaron Lu
2015-11-24 8:29 ` Joonsoo Kim
2015-11-25 12:44 ` Vlastimil Babka
2015-11-26 5:47 ` Aaron Lu
2015-11-24 2:45 ` Joonsoo Kim
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=20151123081601.GA29397@js1304-P5Q-DELUXE \
--to=iamjoonsoo.kim@lge.com \
--cc=aarcange@redhat.com \
--cc=aaron.lu@intel.com \
--cc=dave.hansen@intel.com \
--cc=linux-mm@kvack.org \
--cc=lkp@lists.01.org \
--cc=rientjes@google.com \
--cc=tim.c.chen@linux.intel.com \
--cc=vbabka@suse.cz \
--cc=ying.huang@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox