From: Aaron Lu <aaron.lu@intel.com>
To: Vlastimil Babka <vbabka@suse.cz>, Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Linux Memory Management List <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: Thu, 26 Nov 2015 13:47:24 +0800 [thread overview]
Message-ID: <56569CEC.1050809@intel.com> (raw)
In-Reply-To: <5655AD4A.4080001@suse.cz>
On 11/25/2015 08:44 PM, Vlastimil Babka wrote:
> On 11/24/2015 09:29 AM, Joonsoo Kim wrote:
>> On Tue, Nov 24, 2015 at 03:27:43PM +0800, Aaron Lu wrote:
>>
>> Thanks.
>>
>> Okay. Output proves the theory. pagetypeinfo shows that there are
>> too many unmovable pageblocks. isolate_freepages() should skip these
>> so it's not easy to meet proper pageblock until need_resched(). Hence,
>> updating cached pfn doesn't happen. (You can see unchanged free_pfn
>> with 'grep compaction_begin tracepoint-output')
>
> Hm to me it seems that the scanners meet a lot, so they restart at zone
> boundaries and that's fine. There's nothing to cache.
>
>> But, I don't think that updating cached pfn is enough to solve your problem.
>> More complex change would be needed, I guess.
>
> One factor is probably that THP only use async compaction and those don't result
> in deferred compaction, which should help here. It also means that
> pageblock_skip bits are not being reset except by kswapd...
>
> Oh and pageblock_pfn_to_page is done before checking the pageblock skip bits, so
> that's why it's prominent in the profiles. Although it was less prominent (9% vs
> 46% before) in the last data... was perf collected while tracing, thus
> generating extra noise?
The perf is always run during these test runs, it will start 25 seconds
later after the test starts to give it some time to eat the remaining
free memory so that when perf starts collection data, the swap out should
already start. The perf data is collected for 10 seconds.
I guess the test run under trace-cmd is slower before before, so the
perf is collecting data at a different time window.
Regards,
Aaron
--
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-26 5:47 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
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 [this message]
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=56569CEC.1050809@intel.com \
--to=aaron.lu@intel.com \
--cc=aarcange@redhat.com \
--cc=dave.hansen@intel.com \
--cc=iamjoonsoo.kim@lge.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