From: Jan Stancek <jstancek@redhat.com>
To: linux-mm@kvack.org
Cc: lwoodman <lwoodman@redhat.com>, Rafael Aquini <aquini@redhat.com>,
Andrea Arcangeli <aarcange@redhat.com>
Subject: [bug?] mallocstress poor performance with THP on arm64 system
Date: Wed, 14 Feb 2018 18:05:01 -0500 (EST) [thread overview]
Message-ID: <1847959563.1954032.1518649501357.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <1523287676.1950020.1518648233654.JavaMail.zimbra@redhat.com>
Hi,
mallocstress[1] LTP testcase takes ~5+ minutes to complete
on some arm64 systems (e.g. 4 node, 64 CPU, 256GB RAM):
real 7m58.089s
user 0m0.513s
sys 24m27.041s
But if I turn off THP ("transparent_hugepage=never") it's a lot faster:
real 0m4.185s
user 0m0.298s
sys 0m13.954s
Perf suggests, that most time is spent in clear_page().
- 94.25% 94.24% mallocstress [kernel.kallsyms] [k] clear_page
94.24% thread_start
start_thread
alloc_mem
allocate_free
- malloc
- 94.24% _int_malloc
- 94.24% sysmalloc
el0_da
do_mem_abort
do_translation_fault
do_page_fault
handle_mm_fault
- __handle_mm_fault
- 94.22% do_huge_pmd_anonymous_page
- __do_huge_pmd_anonymous_page
- 94.21% clear_huge_page
clear_page
Percent│
│
│
│ Disassembly of section load0:
│
│ ffff0000087f0540 <load0>:
0.00 │ mrs x1, dczid_el0
0.00 │ and w1, w1, #0xf
│ mov x2, #0x4 // #4
│ lsl x1, x2, x1
100.00 │10: dc zva, x0
│ add x0, x0, x1
│ tst x0, #0xffff
│ ↑ b.ne 10
│ ← ret
# uname -r
4.15.3
# grep HUGE -r .config
CONFIG_CGROUP_HUGETLB=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
# grep _PAGE -r .config
CONFIG_ARM64_PAGE_SHIFT=16
CONFIG_PAGE_COUNTER=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
# CONFIG_ARM64_4K_PAGES is not set
# CONFIG_ARM64_16K_PAGES is not set
CONFIG_ARM64_64K_PAGES=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_HUGETLB_PAGE=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
# CONFIG_PAGE_OWNER is not set
# CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
# cat /proc/meminfo | grep Huge
Hugepagesize: 524288 kB
# numactl -H
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
node 0 size: 65308 MB
node 0 free: 64892 MB
node 1 cpus: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
node 1 size: 65404 MB
node 1 free: 62804 MB
node 2 cpus: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
node 2 size: 65404 MB
node 2 free: 62847 MB
node 3 cpus: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
node 3 size: 65402 MB
node 3 free: 64671 MB
node distances:
node 0 1 2 3
0: 10 15 20 20
1: 15 10 20 20
2: 20 20 10 15
3: 20 20 15 10
Regards,
Jan
[1] https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/mem/mtest07/mallocstress.c
--
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 parent reply other threads:[~2018-02-14 23:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1523287676.1950020.1518648233654.JavaMail.zimbra@redhat.com>
2018-02-14 23:05 ` Jan Stancek [this message]
2018-02-15 9:02 ` Kirill A. Shutemov
2018-02-16 17:30 ` Punit Agrawal
2018-02-15 18:40 ` Punit Agrawal
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=1847959563.1954032.1518649501357.JavaMail.zimbra@redhat.com \
--to=jstancek@redhat.com \
--cc=aarcange@redhat.com \
--cc=aquini@redhat.com \
--cc=linux-mm@kvack.org \
--cc=lwoodman@redhat.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