Re: [linus:master] [mm] cacded5e42: aim9.brk_test.ops_per_sec -5.0% regression
From: Oliver Sang
Date: Wed Oct 16 2024 - 22:59:18 EST
hi, Lorenzo,
On Tue, Oct 15, 2024 at 08:56:28PM +0100, Lorenzo Stoakes wrote:
> On Fri, Oct 11, 2024 at 08:26:37AM +0100, Lorenzo Stoakes wrote:
> [snip]
>
> > Thanks for testing this suffices to rule this one out... I will try to get a
> > functional and reliable performance environment locally so I can properly
> > address this and then we can try something else.
> >
> > Thanks!
> > Lorenzo
> >
>
> OK Oliver, could you try the below patch? I have got aim9.brk up and
> running locally and for me this seems to address the issue.
>
> This is against Andrew's tree [0] in the mm-unstable branch. It should
> hopefully apply cleanly to -next also.
I found the patch still be able to applied to cacded5e42 cleanly, so below data
still based on this applyment.
$ git log --oneline 9cecc5dc893886
9cecc5dc893886 mm: add expand-only VMA merge mode and optimise do_brk_flags()
cacded5e42b960 mm: avoid using vma_merge() for new VMAs
fc21959f74bc11 mm: abstract vma_expand() to use vma_merge_struct
...
again, if some patches in mm-unstable or -next have some impacts, please let me
know then I can re-apply the patch and do the tests again. thanks
by this patch, we do see performance recovery but not fully.
e.g. for
model: Granite Rapids
nr_node: 1
nr_cpu: 240
memory: 192G
we got better score from the patch than cacded5e42b960, but still 2.0%
regression than fc21959f74bc11 (the parent of cacded5e42b960)
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-gnr-1ap1/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
3220697 -6.0% 3028867 -2.0% 3156931 aim9.brk_test.ops_per_sec
similar results on other platforms, full data is attached as
fc21959f74bc11-cacded5e42b960-9cecc5dc893886
for
model: Emerald Rapids
nr_node: 4
nr_cpu: 256
memory: 256G
brand: INTEL(R) XEON(R) PLATINUM 8592+
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-emr-2sp1/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
3669298 -6.5% 3430070 -2.7% 3571699 aim9.brk_test.ops_per_sec
for
model: Sapphire Rapids
nr_node: 2
nr_cpu: 224
memory: 512G
brand: Intel(R) Xeon(R) Platinum 8480CTDX
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-spr-2sp4/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
3540976 -6.4% 3314159 -2.6% 3449384 aim9.brk_test.ops_per_sec
for
model: Ice Lake
nr_node: 2
nr_cpu: 64
memory: 256G
brand: Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-icl-2sp9/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
2667734 -5.6% 2518021 -1.0% 2640850 aim9.brk_test.ops_per_sec
for
test machine: 48 threads 2 sockets Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz (Ivy Bridge-EP) with 64G memory
which we made the original report
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-ivb-2ep2/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
1322908 -5.0% 1256536 -1.6% 1301387 aim9.brk_test.ops_per_sec
>
> Very much appreciated, thanks!
>
> [0]:https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/
>
> ----8<----
> From cee7f4196247de0da2b7632838fd36aee8b77e13 Mon Sep 17 00:00:00 2001
> From: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
> Date: Tue, 15 Oct 2024 20:16:32 +0100
> Subject: [PATCH] mm: add expand-only VMA merge mode and optimise
> do_brk_flags()
>
> We know in advance that do_brk_flags() wants only to perform a VMA
> expansion (if the prior VMA is compatible), and that we assume no mergeable
> VMA follows it.
>
> These are the semantics of this function prior to the recent rewrite of the
> VMA merging logic, however we are now doing more work than necessary -
> positioning the VMA iterator at the prior VMA and performing tasks that are
> not required.
>
> Add a new field to the vmg struct to permit merge flags and add a new merge
> flag VMG_FLAG_JUST_EXPAND which implies this behaviour, and have
> do_brk_flags() use this.
>
> This fixes a reported performance regression in a brk() benchmarking suite.
> ---
> mm/mmap.c | 3 ++-
> mm/vma.c | 23 +++++++++++++++--------
> mm/vma.h | 16 ++++++++++++++++
> 3 files changed, 33 insertions(+), 9 deletions(-)
>
> diff --git a/mm/mmap.c b/mm/mmap.c
> index 02f7b45c3076..b99ba4cac9fe 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -1741,7 +1741,8 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma,
> VMG_STATE(vmg, mm, vmi, addr, addr + len, flags, PHYS_PFN(addr));
>
> vmg.prev = vma;
> - vma_iter_next_range(vmi);
> + /* vmi is positioned at prev, which this mode expects. */
> + vmg.merge_flags = VMG_FLAG_JUST_EXPAND;
>
> if (vma_merge_new_range(&vmg))
> goto out;
> diff --git a/mm/vma.c b/mm/vma.c
> index 749c4881fd60..69ce9e07ab11 100644
> --- a/mm/vma.c
> +++ b/mm/vma.c
> @@ -562,6 +562,7 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
> pgoff_t pgoff = vmg->pgoff;
> pgoff_t pglen = PHYS_PFN(end - start);
> bool can_merge_left, can_merge_right;
> + bool just_expand = vmg->merge_flags & VMG_FLAG_JUST_EXPAND;
>
> mmap_assert_write_locked(vmg->mm);
> VM_WARN_ON(vmg->vma);
> @@ -575,7 +576,7 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
> return NULL;
>
> can_merge_left = can_vma_merge_left(vmg);
> - can_merge_right = can_vma_merge_right(vmg, can_merge_left);
> + can_merge_right = !just_expand && can_vma_merge_right(vmg, can_merge_left);
>
> /* If we can merge with the next VMA, adjust vmg accordingly. */
> if (can_merge_right) {
> @@ -590,7 +591,11 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
> vmg->vma = prev;
> vmg->pgoff = prev->vm_pgoff;
>
> - vma_prev(vmg->vmi); /* Equivalent to going to the previous range */
> + /* In expand-only case we are already positioned here. */
> + if (!just_expand) {
> + /* Equivalent to going to the previous range. */
> + vma_prev(vmg->vmi);
> + }
> }
>
> /*
> @@ -604,12 +609,14 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
> }
>
> /* If expansion failed, reset state. Allows us to retry merge later. */
> - vmg->vma = NULL;
> - vmg->start = start;
> - vmg->end = end;
> - vmg->pgoff = pgoff;
> - if (vmg->vma == prev)
> - vma_iter_set(vmg->vmi, start);
> + if (!just_expand) {
> + vmg->vma = NULL;
> + vmg->start = start;
> + vmg->end = end;
> + vmg->pgoff = pgoff;
> + if (vmg->vma == prev)
> + vma_iter_set(vmg->vmi, start);
> + }
>
> return NULL;
> }
> diff --git a/mm/vma.h b/mm/vma.h
> index 82354fe5edd0..8f8548958e41 100644
> --- a/mm/vma.h
> +++ b/mm/vma.h
> @@ -59,6 +59,19 @@ enum vma_merge_state {
> VMA_MERGE_SUCCESS,
> };
>
> +typedef unsigned long vma_merge_flags_t;
> +
> + /*
> + * If we can expand, simply do so. We know there is nothing to merge to the
> + * right.
> + *
> + * Does not reset state upon failure to merge.
> + *
> + * IMPORTANT: The VMA iterator is assumed to be positioned at the previous VMA,
> + * rather than at the gap.
> + */
> +#define VMG_FLAG_JUST_EXPAND (1 << 0)
> +
> /* Represents a VMA merge operation. */
> struct vma_merge_struct {
> struct mm_struct *mm;
> @@ -75,6 +88,7 @@ struct vma_merge_struct {
> struct mempolicy *policy;
> struct vm_userfaultfd_ctx uffd_ctx;
> struct anon_vma_name *anon_name;
> + vma_merge_flags_t merge_flags;
> enum vma_merge_state state;
> };
>
> @@ -99,6 +113,7 @@ static inline pgoff_t vma_pgoff_offset(struct vm_area_struct *vma,
> .flags = flags_, \
> .pgoff = pgoff_, \
> .state = VMA_MERGE_START, \
> + .merge_flags = 0, \
> }
>
> #define VMG_VMA_STATE(name, vmi_, prev_, vma_, start_, end_) \
> @@ -118,6 +133,7 @@ static inline pgoff_t vma_pgoff_offset(struct vm_area_struct *vma,
> .uffd_ctx = vma_->vm_userfaultfd_ctx, \
> .anon_name = anon_vma_name(vma_), \
> .state = VMA_MERGE_START, \
> + .merge_flags = 0, \
> }
>
> #ifdef CONFIG_DEBUG_VM_MAPLE_TREE
> --
> 2.46.2
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-gnr-1ap1/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
3220697 -6.0% 3028867 -2.0% 3156931 aim9.brk_test.ops_per_sec
24.58 -3.9% 23.63 +0.5% 24.71 time.user_time
119459 -3.2% 115601 -0.5% 118822 proc-vmstat.nr_active_anon
120943 -3.2% 117079 -0.5% 120301 proc-vmstat.nr_shmem
119459 -3.2% 115601 -0.5% 118822 proc-vmstat.nr_zone_active_anon
26.78 ± 11% +3.2% 27.63 ± 29% +36.7% 36.60 ± 20% sched_debug.cfs_rq:/.removed.load_avg.stddev
13.45 ± 11% +4.4% 14.04 ± 30% +36.7% 18.39 ± 20% sched_debug.cfs_rq:/.removed.runnable_avg.stddev
13.44 ± 11% +4.5% 14.04 ± 30% +36.8% 18.39 ± 20% sched_debug.cfs_rq:/.removed.util_avg.stddev
0.02 ±120% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
3.27 ± 5% +5112.4% 170.40 ±218% +5108.0% 170.26 ±218% perf-sched.sch_delay.max.ms.__cond_resched.__wait_for_common.affine_move_task.__set_cpus_allowed_ptr.__sched_setaffinity
0.20 ±188% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.02 ±120% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.20 ±188% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
1.767e+09 +4.2% 1.841e+09 -0.5% 1.757e+09 perf-stat.i.branch-instructions
0.45 -6.2% 0.42 -1.0% 0.44 perf-stat.i.cpi
8.347e+09 +6.6% 8.9e+09 +0.9% 8.426e+09 perf-stat.i.instructions
2.27 +6.6% 2.42 +1.3% 2.30 perf-stat.i.ipc
0.03 ± 4% -2.0% 0.03 ± 3% -5.4% 0.03 ± 2% perf-stat.overall.MPKI
0.44 -5.9% 0.42 -1.5% 0.44 perf-stat.overall.cpi
2.25 +6.2% 2.39 +1.6% 2.29 perf-stat.overall.ipc
1.761e+09 +4.2% 1.834e+09 -0.5% 1.752e+09 perf-stat.ps.branch-instructions
8.319e+09 +6.6% 8.87e+09 +1.0% 8.398e+09 perf-stat.ps.instructions
2.519e+12 +6.4% 2.68e+12 +1.3% 2.552e+12 perf-stat.total.instructions
7.07 -7.1 0.00 -7.1 0.00 perf-profile.calltrace.cycles-pp.mas_store_prealloc.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
6.30 -6.3 0.00 -6.3 0.00 perf-profile.calltrace.cycles-pp.mas_preallocate.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
18.35 -1.0 17.36 -0.7 17.68 perf-profile.calltrace.cycles-pp.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
16.40 -0.9 15.47 -0.6 15.83 perf-profile.calltrace.cycles-pp.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64
10.17 -0.8 9.36 -0.4 9.76 perf-profile.calltrace.cycles-pp.perf_event_mmap_output.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags
11.92 -0.8 11.12 -0.4 11.48 perf-profile.calltrace.cycles-pp.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
5.07 ± 3% -0.2 4.84 ± 2% -0.1 4.94 perf-profile.calltrace.cycles-pp.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
5.40 ± 3% -0.2 5.18 ± 2% -0.0 5.35 perf-profile.calltrace.cycles-pp.check_brk_limits.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
3.66 ± 2% -0.2 3.50 ± 2% -0.0 3.61 ± 2% perf-profile.calltrace.cycles-pp.thp_get_unmapped_area_vmflags.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64
1.66 ± 2% -0.1 1.56 ± 3% -0.0 1.64 ± 4% perf-profile.calltrace.cycles-pp.up_write.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.68 ± 3% -0.1 0.60 ± 5% -0.1 0.60 ± 8% perf-profile.calltrace.cycles-pp.kfree.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
5.91 ± 2% -0.1 5.85 +0.4 6.34 perf-profile.calltrace.cycles-pp.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
4.23 ± 2% -0.0 4.21 +0.2 4.47 ± 2% perf-profile.calltrace.cycles-pp.mas_walk.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.37 ± 70% +0.3 0.67 ± 4% +0.3 0.64 ± 5% perf-profile.calltrace.cycles-pp.strlen.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
0.49 ± 44% +0.5 1.02 ± 5% +0.6 1.04 ± 4% perf-profile.calltrace.cycles-pp.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
83.74 +0.5 84.28 +0.1 83.83 perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.6 0.60 ± 6% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_next_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.7 0.65 ± 7% +0.7 0.72 ± 7% perf-profile.calltrace.cycles-pp.mas_wr_slot_store.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +0.7 0.68 ± 4% +0.7 0.70 ± 3% perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.7 0.68 ± 2% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_next_slot.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
80.24 +0.7 80.95 +0.1 80.38 perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.7 0.74 ± 2% +0.8 0.82 ± 4% perf-profile.calltrace.cycles-pp.vma_adjust_trans_huge.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +0.8 0.75 ± 4% +0.6 0.56 ± 4% perf-profile.calltrace.cycles-pp.can_vma_merge_after.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.8 0.81 ± 3% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.8 0.84 ± 5% +0.9 0.89 ± 2% perf-profile.calltrace.cycles-pp.__anon_vma_interval_tree_remove.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +1.3 1.30 ± 5% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev_slot.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +1.4 1.35 ± 4% +2.0 2.03 ± 3% perf-profile.calltrace.cycles-pp.up_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.6 1.60 ± 4% +1.7 1.66 ± 3% perf-profile.calltrace.cycles-pp.up_write.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +1.8 1.76 ± 2% +1.8 1.82 ± 3% perf-profile.calltrace.cycles-pp.mas_leaf_max_gap.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range
0.00 +1.8 1.78 ± 2% +2.0 1.99 ± 2% perf-profile.calltrace.cycles-pp.init_multi_vma_prep.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +2.0 2.03 +2.1 2.13 ± 2% perf-profile.calltrace.cycles-pp.down_write.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +2.1 2.06 ± 3% +2.0 2.04 ± 3% perf-profile.calltrace.cycles-pp.down_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +2.3 2.29 ± 3% +2.3 2.26 ± 3% perf-profile.calltrace.cycles-pp.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
53.64 +2.6 56.21 +0.7 54.36 perf-profile.calltrace.cycles-pp.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +3.1 3.14 ± 2% +3.3 3.27 ± 2% perf-profile.calltrace.cycles-pp.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +3.2 3.25 +3.4 3.43 perf-profile.calltrace.cycles-pp.mas_wr_store_type.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +3.8 3.84 +4.1 4.05 ± 2% perf-profile.calltrace.cycles-pp.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +5.3 5.31 ± 2% +5.6 5.56 perf-profile.calltrace.cycles-pp.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +6.1 6.07 +6.2 6.24 ± 2% perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +27.7 27.74 +29.5 29.50 perf-profile.calltrace.cycles-pp.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +32.4 32.43 +31.6 31.64 perf-profile.calltrace.cycles-pp.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
18.49 -1.0 17.47 -0.7 17.81 perf-profile.children.cycles-pp.perf_event_mmap
6.54 -1.0 5.54 ± 2% -0.7 5.82 perf-profile.children.cycles-pp.mas_preallocate
7.40 -1.0 6.40 ± 2% -0.8 6.56 perf-profile.children.cycles-pp.mas_store_prealloc
5.68 -1.0 4.72 -0.1 5.54 ± 2% perf-profile.children.cycles-pp.up_write
16.88 -0.9 15.93 -0.6 16.27 perf-profile.children.cycles-pp.perf_event_mmap_event
10.35 -0.8 9.53 -0.4 9.92 perf-profile.children.cycles-pp.perf_event_mmap_output
12.16 -0.8 11.35 -0.4 11.73 perf-profile.children.cycles-pp.perf_iterate_sb
4.02 ± 2% -0.7 3.32 -0.5 3.50 perf-profile.children.cycles-pp.mas_wr_store_type
2.97 -0.6 2.37 ± 3% -0.6 2.35 ± 3% perf-profile.children.cycles-pp.mas_update_gap
1.36 ± 8% -0.6 0.80 ± 4% -0.8 0.61 ± 5% perf-profile.children.cycles-pp.can_vma_merge_after
2.26 ± 2% -0.5 1.80 ± 2% -0.4 1.87 ± 3% perf-profile.children.cycles-pp.mas_leaf_max_gap
3.71 ± 2% -0.3 3.44 -0.1 3.58 ± 2% perf-profile.children.cycles-pp.vma_complete
5.62 ± 3% -0.2 5.40 ± 2% -0.1 5.57 perf-profile.children.cycles-pp.check_brk_limits
3.83 ± 2% -0.2 3.65 ± 2% -0.0 3.78 ± 2% perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
0.66 ± 7% -0.1 0.55 ± 9% -0.1 0.53 ± 6% perf-profile.children.cycles-pp.may_expand_vm
0.78 ± 3% -0.1 0.69 ± 4% -0.1 0.70 ± 6% perf-profile.children.cycles-pp.kfree
0.15 ± 12% -0.1 0.08 ± 13% -0.1 0.08 ± 8% perf-profile.children.cycles-pp.arch_vma_name
6.23 ± 2% -0.1 6.17 +0.4 6.65 perf-profile.children.cycles-pp.mas_find
4.32 ± 2% -0.0 4.30 +0.2 4.56 ± 2% perf-profile.children.cycles-pp.mas_walk
0.23 ± 7% +0.0 0.24 ± 18% +0.0 0.26 ± 2% perf-profile.children.cycles-pp.hrtimer_interrupt
0.24 ± 7% +0.0 0.24 ± 18% +0.0 0.27 ± 2% perf-profile.children.cycles-pp.__sysvec_apic_timer_interrupt
0.81 ± 6% +0.0 0.83 ± 3% +0.1 0.91 ± 4% perf-profile.children.cycles-pp.vma_adjust_trans_huge
0.54 ± 5% +0.0 0.58 ± 12% +0.1 0.59 ± 4% perf-profile.children.cycles-pp.sysvec_apic_timer_interrupt
0.57 ± 4% +0.0 0.62 ± 12% +0.1 0.63 ± 3% perf-profile.children.cycles-pp.asm_sysvec_apic_timer_interrupt
0.58 ± 7% +0.1 0.66 ± 7% +0.1 0.73 ± 7% perf-profile.children.cycles-pp.mas_wr_slot_store
0.19 ± 10% +0.1 0.31 ± 10% +0.1 0.32 ± 10% perf-profile.children.cycles-pp.rb_next
0.50 ± 4% +0.1 0.62 ± 7% +0.1 0.61 ± 9% perf-profile.children.cycles-pp.mas_wr_store_entry
0.40 ± 6% +0.1 0.53 ± 6% +0.1 0.47 ± 10% perf-profile.children.cycles-pp.strnlen
0.58 ± 13% +0.2 0.75 ± 4% +0.1 0.72 ± 5% perf-profile.children.cycles-pp.strlen
0.96 ± 6% +0.2 1.14 ± 3% +0.2 1.20 ± 4% perf-profile.children.cycles-pp.rcu_all_qs
0.68 ± 3% +0.3 0.98 ± 5% +0.4 1.05 ± 3% perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
1.77 ± 4% +0.3 2.09 +0.4 2.14 ± 3% perf-profile.children.cycles-pp.__cond_resched
0.00 +0.4 0.36 ± 9% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_setup
0.36 ± 8% +0.4 0.76 ± 3% +0.4 0.78 ± 4% perf-profile.children.cycles-pp.percpu_counter_add_batch
0.48 ± 7% +0.4 0.90 ± 6% -0.0 0.47 ± 7% perf-profile.children.cycles-pp.mas_prev_setup
0.67 ± 9% +0.6 1.24 ± 4% +0.6 1.29 ± 3% perf-profile.children.cycles-pp.__vm_enough_memory
3.81 +0.6 4.39 +0.7 4.48 perf-profile.children.cycles-pp.down_write
80.98 +0.7 81.64 +0.1 81.13 perf-profile.children.cycles-pp.__do_sys_brk
1.05 ± 4% +0.7 1.72 ± 3% -0.0 1.00 ± 4% perf-profile.children.cycles-pp.mas_next_slot
0.00 +0.7 0.70 ± 6% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_range
1.11 ± 4% +1.0 2.10 ± 3% -0.0 1.11 ± 4% perf-profile.children.cycles-pp.mas_prev
2.82 ± 3% +1.2 4.07 +1.5 4.30 ± 2% perf-profile.children.cycles-pp.vma_prepare
1.54 ± 4% +1.3 2.88 ± 3% -0.0 1.53 ± 6% perf-profile.children.cycles-pp.mas_prev_slot
54.97 +1.6 56.61 -0.2 54.72 perf-profile.children.cycles-pp.do_brk_flags
0.00 +28.6 28.64 +30.4 30.44 perf-profile.children.cycles-pp.vma_expand
0.00 +32.9 32.91 +32.0 31.95 perf-profile.children.cycles-pp.vma_merge_new_range
5.90 ± 2% -3.5 2.37 ± 4% -3.5 2.44 ± 3% perf-profile.self.cycles-pp.do_brk_flags
5.36 ± 2% -1.0 4.38 -0.1 5.21 ± 2% perf-profile.self.cycles-pp.up_write
10.18 -0.8 9.36 -0.4 9.74 perf-profile.self.cycles-pp.perf_event_mmap_output
3.86 ± 2% -0.7 3.18 -0.5 3.33 perf-profile.self.cycles-pp.mas_wr_store_type
1.28 ± 7% -0.5 0.74 ± 4% -0.7 0.55 ± 7% perf-profile.self.cycles-pp.can_vma_merge_after
3.02 ± 2% -0.5 2.52 ± 4% -0.4 2.57 ± 2% perf-profile.self.cycles-pp.mas_store_prealloc
2.19 ± 2% -0.4 1.78 ± 2% -0.4 1.82 ± 3% perf-profile.self.cycles-pp.mas_leaf_max_gap
5.03 -0.4 4.67 +0.1 5.09 perf-profile.self.cycles-pp.__do_sys_brk
2.60 ± 4% -0.3 2.27 ± 5% -0.2 2.40 ± 2% perf-profile.self.cycles-pp.mas_preallocate
1.89 ± 4% -0.3 1.59 ± 4% -0.3 1.55 ± 5% perf-profile.self.cycles-pp.perf_event_mmap_event
1.71 ± 4% -0.2 1.53 ± 3% -0.1 1.59 ± 6% perf-profile.self.cycles-pp.entry_SYSCALL_64
0.74 ± 3% -0.2 0.57 ± 7% -0.2 0.52 ± 6% perf-profile.self.cycles-pp.mas_update_gap
1.89 ± 4% -0.2 1.73 ± 2% +0.0 1.90 perf-profile.self.cycles-pp.init_multi_vma_prep
1.58 ± 4% -0.1 1.47 ± 3% -0.1 1.50 ± 5% perf-profile.self.cycles-pp.perf_event_mmap
1.27 ± 2% -0.1 1.16 ± 2% -0.1 1.22 ± 4% perf-profile.self.cycles-pp.vma_complete
0.69 ± 2% -0.1 0.61 ± 4% -0.1 0.61 ± 7% perf-profile.self.cycles-pp.kfree
4.24 ± 2% -0.0 4.20 +0.2 4.48 ± 2% perf-profile.self.cycles-pp.mas_walk
1.02 +0.0 1.05 ± 4% +0.2 1.21 ± 4% perf-profile.self.cycles-pp.mas_find
0.55 ± 7% +0.0 0.59 ± 8% +0.1 0.65 ± 6% perf-profile.self.cycles-pp.mas_wr_slot_store
0.18 ± 16% +0.0 0.23 ± 14% +0.1 0.24 ± 5% perf-profile.self.cycles-pp.cap_vm_enough_memory
0.15 ± 10% +0.1 0.24 ± 11% +0.1 0.23 ± 10% perf-profile.self.cycles-pp.rb_next
0.58 ± 8% +0.1 0.68 ± 5% +0.2 0.74 ± 3% perf-profile.self.cycles-pp.rcu_all_qs
0.37 ± 5% +0.1 0.50 ± 7% +0.1 0.45 ± 10% perf-profile.self.cycles-pp.strnlen
0.54 ± 13% +0.2 0.68 ± 4% +0.1 0.66 ± 6% perf-profile.self.cycles-pp.strlen
1.01 ± 6% +0.2 1.17 ± 2% +0.2 1.17 ± 4% perf-profile.self.cycles-pp.__cond_resched
0.66 ± 6% +0.2 0.83 ± 2% +0.2 0.87 ± 5% perf-profile.self.cycles-pp.vma_prepare
0.46 ± 6% +0.2 0.67 ± 7% +0.3 0.74 ± 5% perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
0.34 ± 12% +0.2 0.54 ± 3% +0.2 0.58 ± 6% perf-profile.self.cycles-pp.__vm_enough_memory
0.00 +0.3 0.29 ± 10% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_setup
0.32 ± 11% +0.3 0.62 ± 7% +0.0 0.32 ± 5% perf-profile.self.cycles-pp.mas_prev_setup
0.23 ± 7% +0.3 0.55 ± 6% +0.3 0.55 ± 3% perf-profile.self.cycles-pp.percpu_counter_add_batch
0.00 +0.4 0.35 ± 7% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_range
2.65 ± 3% +0.4 3.00 ± 2% +0.4 3.07 perf-profile.self.cycles-pp.down_write
0.64 ± 5% +0.6 1.21 ± 3% -0.0 0.62 ± 5% perf-profile.self.cycles-pp.mas_prev
0.89 ± 5% +0.7 1.54 ± 3% -0.0 0.85 ± 5% perf-profile.self.cycles-pp.mas_next_slot
1.46 ± 4% +1.3 2.72 ± 3% -0.0 1.45 ± 6% perf-profile.self.cycles-pp.mas_prev_slot
0.00 +1.3 1.33 ± 2% +0.9 0.86 ± 4% perf-profile.self.cycles-pp.vma_merge_new_range
0.00 +3.5 3.54 ± 3% +3.7 3.73 perf-profile.self.cycles-pp.vma_expand
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-emr-2sp1/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
3669298 -6.5% 3430070 -2.7% 3571699 aim9.brk_test.ops_per_sec
23.53 -4.9% 22.38 -2.0% 23.06 time.user_time
491107 ± 5% -7.2% 455906 ± 6% -5.1% 466069 ± 4% meminfo.Active
491011 ± 5% -7.2% 455810 ± 6% -5.1% 465957 ± 4% meminfo.Active(anon)
505666 ± 5% -7.0% 470410 ± 5% -5.0% 480514 ± 4% meminfo.Shmem
10118 ± 40% -61.8% 3861 ± 40% -24.4% 7653 ± 61% numa-vmstat.node1.nr_slab_reclaimable
121015 ± 6% -7.3% 112196 ± 6% -18.6% 98460 ± 20% numa-vmstat.node3.nr_active_anon
121371 ± 6% -7.3% 112537 ± 6% -18.6% 98831 ± 20% numa-vmstat.node3.nr_shmem
121015 ± 6% -7.3% 112196 ± 6% -18.6% 98460 ± 20% numa-vmstat.node3.nr_zone_active_anon
40474 ± 40% -61.8% 15444 ± 40% -24.4% 30612 ± 61% numa-meminfo.node1.KReclaimable
40474 ± 40% -61.8% 15444 ± 40% -24.4% 30612 ± 61% numa-meminfo.node1.SReclaimable
484115 ± 6% -7.3% 448760 ± 6% -18.7% 393817 ± 20% numa-meminfo.node3.Active
484083 ± 6% -7.3% 448760 ± 6% -18.7% 393798 ± 20% numa-meminfo.node3.Active(anon)
485577 ± 6% -7.3% 450224 ± 6% -18.6% 395333 ± 20% numa-meminfo.node3.Shmem
122753 ± 5% -7.1% 113979 ± 6% -5.1% 116468 ± 4% proc-vmstat.nr_active_anon
899298 -1.0% 890515 -0.7% 892993 proc-vmstat.nr_file_pages
126417 ± 5% -6.9% 117634 ± 5% -5.0% 120109 ± 4% proc-vmstat.nr_shmem
122753 ± 5% -7.1% 113979 ± 6% -5.1% 116468 ± 4% proc-vmstat.nr_zone_active_anon
595.50 ± 22% +53.6% 914.50 ± 12% +34.1% 798.50 ± 37% proc-vmstat.numa_hint_faults_local
17958 -4.3% 17188 ± 2% -5.1% 17041 ± 2% proc-vmstat.pgactivate
0.01 ± 52% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.01 ± 15% +7.0% 0.01 ± 16% -100.0% 0.00 perf-sched.sch_delay.avg.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
0.06 ± 69% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.01 ± 17% -3.8% 0.01 ± 21% -100.0% 0.00 perf-sched.sch_delay.max.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
400.06 +0.0% 400.07 -100.0% 0.00 perf-sched.wait_and_delay.avg.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
10.00 +0.0% 10.00 -100.0% 0.00 perf-sched.wait_and_delay.count.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
999.53 -0.0% 999.38 -100.0% 0.00 perf-sched.wait_and_delay.max.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
0.01 ± 52% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
400.05 +0.0% 400.06 -100.0% 0.00 perf-sched.wait_time.avg.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
0.06 ± 69% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
999.52 -0.0% 999.37 -100.0% 0.00 perf-sched.wait_time.max.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
2.071e+09 +2.8% 2.128e+09 -1.5% 2.04e+09 perf-stat.i.branch-instructions
0.48 -4.2% 0.46 +1.4% 0.48 ± 2% perf-stat.i.cpi
4.717e+09 -0.7% 4.686e+09 -0.9% 4.676e+09 perf-stat.i.cpu-cycles
9.794e+09 +5.1% 1.03e+10 -0.1% 9.787e+09 perf-stat.i.instructions
2.15 +5.8% 2.28 +0.5% 2.16 perf-stat.i.ipc
0.34 ± 3% -0.0 0.33 -0.0 0.33 ± 3% perf-stat.overall.branch-miss-rate%
0.48 -5.5% 0.46 -0.8% 0.48 perf-stat.overall.cpi
2.08 +5.8% 2.20 +0.8% 2.09 perf-stat.overall.ipc
2.063e+09 +2.8% 2.12e+09 -1.5% 2.032e+09 perf-stat.ps.branch-instructions
4.703e+09 -0.7% 4.672e+09 -0.9% 4.662e+09 perf-stat.ps.cpu-cycles
9.758e+09 +5.1% 1.026e+10 -0.1% 9.751e+09 perf-stat.ps.instructions
2.944e+12 +5.5% 3.106e+12 +0.4% 2.957e+12 perf-stat.total.instructions
6.54 ± 2% -6.5 0.00 -6.5 0.00 perf-profile.calltrace.cycles-pp.mas_store_prealloc.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
6.22 -6.2 0.00 -6.2 0.00 perf-profile.calltrace.cycles-pp.mas_preallocate.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
9.69 ± 2% -0.6 9.07 +0.3 10.01 perf-profile.calltrace.cycles-pp.perf_event_mmap_output.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags
11.30 ± 2% -0.6 10.71 +0.5 11.80 perf-profile.calltrace.cycles-pp.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
15.57 -0.5 15.05 +0.6 16.16 perf-profile.calltrace.cycles-pp.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64
3.61 ± 5% -0.2 3.38 ± 4% -0.3 3.33 ± 3% perf-profile.calltrace.cycles-pp.thp_get_unmapped_area_vmflags.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64
2.76 -0.1 2.62 ± 3% -0.1 2.67 ± 2% perf-profile.calltrace.cycles-pp.userfaultfd_unmap_complete.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.58 ± 3% -0.1 0.44 ± 44% -0.2 0.34 ± 70% perf-profile.calltrace.cycles-pp.syscall_return_via_sysret.brk
0.84 ± 4% -0.1 0.74 ± 8% -0.1 0.75 ± 4% perf-profile.calltrace.cycles-pp.security_vm_enough_memory_mm.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.12 ± 5% +0.2 1.29 ± 3% +0.1 1.27 ± 3% perf-profile.calltrace.cycles-pp.sized_strscpy.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
0.65 ± 6% +0.4 1.07 ± 5% +0.5 1.11 ± 5% perf-profile.calltrace.cycles-pp.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.5 0.54 ± 4% +0.6 0.56 ± 6% perf-profile.calltrace.cycles-pp.mas_wr_slot_store.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +0.5 0.55 ± 4% +0.2 0.18 ±141% perf-profile.calltrace.cycles-pp.mas_wr_store_entry.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +0.7 0.66 ± 4% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_next_slot.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.7 0.68 ± 9% +0.7 0.68 ± 4% perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.7 0.68 ± 4% +0.7 0.66 ± 3% perf-profile.calltrace.cycles-pp.can_vma_merge_after.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.8 0.76 ± 2% +0.8 0.76 ± 3% perf-profile.calltrace.cycles-pp.vma_adjust_trans_huge.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +0.8 0.80 ± 3% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.8 0.82 ± 3% +0.9 0.88 ± 4% perf-profile.calltrace.cycles-pp.__anon_vma_interval_tree_remove.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
77.52 +1.0 78.50 +0.7 78.17 perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +1.3 1.26 ± 3% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev_slot.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +1.3 1.35 ± 3% +1.9 1.89 ± 2% perf-profile.calltrace.cycles-pp.up_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.6 1.56 ± 2% +1.6 1.59 ± 3% perf-profile.calltrace.cycles-pp.up_write.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +1.7 1.72 ± 3% +1.8 1.85 ± 3% perf-profile.calltrace.cycles-pp.init_multi_vma_prep.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.9 1.87 ± 4% +2.1 2.08 ± 3% perf-profile.calltrace.cycles-pp.mas_leaf_max_gap.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range
0.00 +2.1 2.07 ± 2% +2.1 2.08 ± 5% perf-profile.calltrace.cycles-pp.down_write.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +2.1 2.14 ± 2% +2.1 2.12 ± 2% perf-profile.calltrace.cycles-pp.down_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +2.4 2.37 ± 2% +2.7 2.72 ± 2% perf-profile.calltrace.cycles-pp.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
51.80 +2.9 54.66 +2.0 53.75 perf-profile.calltrace.cycles-pp.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +3.0 3.02 ± 2% +2.9 2.90 ± 3% perf-profile.calltrace.cycles-pp.mas_wr_store_type.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +3.1 3.06 +3.1 3.10 ± 2% perf-profile.calltrace.cycles-pp.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +3.9 3.86 +3.9 3.92 ± 2% perf-profile.calltrace.cycles-pp.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +5.0 5.01 +4.9 4.88 perf-profile.calltrace.cycles-pp.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +5.9 5.88 +6.3 6.35 perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +27.1 27.13 +28.6 28.60 perf-profile.calltrace.cycles-pp.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +31.6 31.63 +30.9 30.88 perf-profile.calltrace.cycles-pp.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
6.46 -1.2 5.24 -1.4 5.11 perf-profile.children.cycles-pp.mas_preallocate
5.54 -0.9 4.64 -0.3 5.27 ± 2% perf-profile.children.cycles-pp.up_write
3.99 -0.9 3.10 ± 2% -1.0 2.98 ± 3% perf-profile.children.cycles-pp.mas_wr_store_type
9.85 ± 2% -0.6 9.22 +0.3 10.18 perf-profile.children.cycles-pp.perf_event_mmap_output
6.82 ± 2% -0.6 6.22 -0.1 6.70 perf-profile.children.cycles-pp.mas_store_prealloc
1.33 ± 5% -0.6 0.75 ± 4% -0.6 0.73 ± 4% perf-profile.children.cycles-pp.can_vma_merge_after
11.53 ± 2% -0.6 10.96 +0.5 12.04 perf-profile.children.cycles-pp.perf_iterate_sb
16.03 -0.5 15.50 +0.6 16.61 perf-profile.children.cycles-pp.perf_event_mmap_event
2.65 ± 3% -0.2 2.40 ± 3% +0.2 2.82 ± 2% perf-profile.children.cycles-pp.mas_update_gap
2.18 ± 2% -0.2 1.94 ± 3% -0.0 2.15 ± 2% perf-profile.children.cycles-pp.mas_leaf_max_gap
3.72 ± 6% -0.2 3.48 ± 4% -0.3 3.44 ± 4% perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
3.52 -0.1 3.38 ± 2% -0.1 3.41 ± 2% perf-profile.children.cycles-pp.vma_complete
0.62 ± 7% -0.1 0.48 ± 9% -0.1 0.53 ± 3% perf-profile.children.cycles-pp.may_expand_vm
1.92 ± 2% -0.1 1.79 ± 3% -0.0 1.92 ± 4% perf-profile.children.cycles-pp.init_multi_vma_prep
0.40 ± 6% -0.1 0.35 ± 9% -0.0 0.40 ± 3% perf-profile.children.cycles-pp.syscall_exit_to_user_mode_prepare
0.35 ± 2% -0.0 0.33 ± 7% -0.1 0.29 ± 9% perf-profile.children.cycles-pp.brk_test
0.07 ± 18% -0.0 0.06 ± 45% -0.0 0.05 ± 7% perf-profile.children.cycles-pp.elf_load
0.18 ± 7% -0.0 0.17 ± 23% +0.1 0.28 ± 10% perf-profile.children.cycles-pp.khugepaged_enter_vma
0.44 ± 4% -0.0 0.44 ± 5% +0.0 0.46 ± 2% perf-profile.children.cycles-pp.mas_destroy
0.11 ± 20% +0.0 0.14 ± 8% +0.0 0.14 ± 11% perf-profile.children.cycles-pp.anon_vma_interval_tree_remove
0.52 ± 3% +0.0 0.56 ± 4% +0.1 0.60 ± 5% perf-profile.children.cycles-pp.mas_wr_slot_store
0.20 ± 11% +0.1 0.28 ± 7% +0.1 0.32 ± 9% perf-profile.children.cycles-pp.rb_next
0.49 ± 3% +0.1 0.61 ± 4% +0.1 0.57 ± 5% perf-profile.children.cycles-pp.mas_wr_store_entry
0.98 ± 4% +0.1 1.11 ± 3% +0.2 1.13 ± 6% perf-profile.children.cycles-pp.rcu_all_qs
0.39 ± 7% +0.2 0.55 ± 7% +0.1 0.53 ± 5% perf-profile.children.cycles-pp.strnlen
1.18 ± 5% +0.2 1.37 ± 3% +0.2 1.34 ± 3% perf-profile.children.cycles-pp.sized_strscpy
1.78 ± 3% +0.3 2.04 ± 2% +0.3 2.06 ± 4% perf-profile.children.cycles-pp.__cond_resched
0.00 +0.3 0.33 ± 4% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_setup
0.41 ± 9% +0.4 0.76 ± 7% +0.4 0.77 ± 4% perf-profile.children.cycles-pp.percpu_counter_add_batch
0.58 ± 4% +0.4 0.96 ± 2% +0.5 1.04 ± 3% perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
0.44 ± 17% +0.4 0.85 ± 7% -0.0 0.42 ± 4% perf-profile.children.cycles-pp.mas_prev_setup
4.11 ± 2% +0.4 4.52 +0.4 4.52 ± 2% perf-profile.children.cycles-pp.down_write
0.74 ± 6% +0.6 1.29 ± 5% +0.6 1.35 ± 3% perf-profile.children.cycles-pp.__vm_enough_memory
0.00 +0.7 0.67 ± 6% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_range
0.95 ± 5% +0.7 1.64 ± 2% +0.0 0.98 ± 3% perf-profile.children.cycles-pp.mas_next_slot
78.23 +0.9 79.17 +0.6 78.84 perf-profile.children.cycles-pp.__do_sys_brk
1.02 ± 14% +1.0 1.99 ± 4% -0.0 1.01 ± 3% perf-profile.children.cycles-pp.mas_prev
2.89 ± 3% +1.2 4.10 +1.2 4.14 ± 3% perf-profile.children.cycles-pp.vma_prepare
1.38 ± 12% +1.3 2.73 ± 4% +0.1 1.48 ± 4% perf-profile.children.cycles-pp.mas_prev_slot
53.08 +1.9 55.03 +1.0 54.10 perf-profile.children.cycles-pp.do_brk_flags
0.00 +28.0 27.95 +29.5 29.47 perf-profile.children.cycles-pp.vma_expand
0.00 +32.1 32.10 +31.2 31.24 perf-profile.children.cycles-pp.vma_merge_new_range
5.69 -3.4 2.34 ± 3% -3.4 2.34 ± 2% perf-profile.self.cycles-pp.do_brk_flags
5.22 -0.9 4.33 ± 2% -0.3 4.95 ± 3% perf-profile.self.cycles-pp.up_write
3.82 -0.9 2.95 ± 3% -1.0 2.83 ± 3% perf-profile.self.cycles-pp.mas_wr_store_type
9.68 ± 2% -0.6 9.05 +0.3 10.00 perf-profile.self.cycles-pp.perf_event_mmap_output
1.28 ± 5% -0.6 0.69 ± 6% -0.6 0.67 ± 4% perf-profile.self.cycles-pp.can_vma_merge_after
2.88 ± 3% -0.4 2.44 ± 2% -0.4 2.49 perf-profile.self.cycles-pp.mas_store_prealloc
2.55 -0.3 2.22 ± 2% -0.4 2.19 ± 3% perf-profile.self.cycles-pp.mas_preallocate
4.98 ± 2% -0.3 4.70 -0.3 4.71 perf-profile.self.cycles-pp.__do_sys_brk
2.15 ± 3% -0.2 1.93 ± 3% -0.0 2.12 ± 2% perf-profile.self.cycles-pp.mas_leaf_max_gap
1.82 -0.2 1.60 ± 4% -0.1 1.67 ± 2% perf-profile.self.cycles-pp.perf_event_mmap_event
1.51 ± 4% -0.2 1.31 ± 4% -0.2 1.35 ± 6% perf-profile.self.cycles-pp.perf_event_mmap
1.85 ± 2% -0.2 1.66 ± 3% -0.1 1.77 ± 4% perf-profile.self.cycles-pp.init_multi_vma_prep
2.38 ± 7% -0.2 2.20 ± 5% -0.2 2.17 ± 3% perf-profile.self.cycles-pp.arch_get_unmapped_area_topdown_vmflags
5.65 ± 2% -0.1 5.50 -0.3 5.40 ± 2% perf-profile.self.cycles-pp.brk
2.77 -0.1 2.63 ± 3% -0.1 2.67 ± 2% perf-profile.self.cycles-pp.userfaultfd_unmap_complete
0.75 ± 5% -0.1 0.67 ± 4% -0.1 0.66 ± 2% perf-profile.self.cycles-pp.security_vm_enough_memory_mm
0.28 ± 5% -0.0 0.26 ± 8% -0.1 0.22 ± 11% perf-profile.self.cycles-pp.brk_test
0.45 ± 7% -0.0 0.45 ± 8% +0.2 0.66 ± 5% perf-profile.self.cycles-pp.mas_update_gap
0.11 ± 12% +0.0 0.11 ± 21% +0.0 0.15 ± 10% perf-profile.self.cycles-pp.khugepaged_enter_vma
0.62 ± 4% +0.0 0.65 ± 5% +0.1 0.70 ± 4% perf-profile.self.cycles-pp.rcu_all_qs
0.03 ± 70% +0.0 0.07 ± 14% +0.0 0.07 ± 12% perf-profile.self.cycles-pp.anon_vma_interval_tree_remove
1.77 ± 4% +0.1 1.82 ± 3% +0.2 1.93 ± 3% perf-profile.self.cycles-pp.perf_iterate_sb
0.15 ± 12% +0.1 0.20 ± 5% +0.1 0.24 ± 10% perf-profile.self.cycles-pp.rb_next
0.40 ± 5% +0.1 0.48 ± 5% +0.0 0.45 ± 5% perf-profile.self.cycles-pp.mas_wr_store_entry
0.34 ± 6% +0.2 0.50 ± 8% +0.1 0.48 ± 4% perf-profile.self.cycles-pp.strnlen
0.66 ± 4% +0.2 0.84 ± 5% +0.1 0.79 ± 6% perf-profile.self.cycles-pp.vma_prepare
1.12 ± 5% +0.2 1.30 ± 3% +0.2 1.28 ± 3% perf-profile.self.cycles-pp.sized_strscpy
3.00 ± 2% +0.2 3.19 ± 2% +0.2 3.20 ± 3% perf-profile.self.cycles-pp.down_write
0.92 ± 4% +0.2 1.13 ± 2% +0.2 1.08 ± 4% perf-profile.self.cycles-pp.__cond_resched
0.00 +0.3 0.26 ± 7% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_setup
0.28 ± 8% +0.3 0.54 ± 8% +0.2 0.53 ± 5% perf-profile.self.cycles-pp.percpu_counter_add_batch
0.29 ± 12% +0.3 0.58 ± 9% +0.4 0.66 ± 4% perf-profile.self.cycles-pp.__vm_enough_memory
0.29 ± 24% +0.3 0.58 ± 7% -0.0 0.28 ± 8% perf-profile.self.cycles-pp.mas_prev_setup
0.40 ± 4% +0.3 0.70 ± 2% +0.3 0.74 ± 4% perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
0.00 +0.4 0.36 ± 6% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_range
0.58 ± 14% +0.5 1.12 ± 5% +0.0 0.59 ± 4% perf-profile.self.cycles-pp.mas_prev
0.81 ± 4% +0.7 1.48 ± 3% +0.0 0.83 ± 3% perf-profile.self.cycles-pp.mas_next_slot
1.32 ± 11% +1.3 2.59 ± 3% +0.1 1.40 ± 5% perf-profile.self.cycles-pp.mas_prev_slot
0.00 +1.3 1.30 ± 4% +1.0 1.03 ± 6% perf-profile.self.cycles-pp.vma_merge_new_range
0.00 +3.4 3.39 +3.9 3.88 ± 2% perf-profile.self.cycles-pp.vma_expand
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-spr-2sp4/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
3540976 -6.4% 3314159 -2.6% 3449384 aim9.brk_test.ops_per_sec
23.65 -5.8% 22.28 -3.4% 22.84 time.user_time
1046452 ± 3% +4.2% 1090314 +26.9% 1327644 ± 24% sched_debug.cpu.avg_idle.max
535529 ± 5% +3.1% 552160 ± 2% +30.0% 696343 ± 30% sched_debug.cpu.max_idle_balance_cost.max
111409 ± 2% -5.1% 105748 ± 3% -3.4% 107624 proc-vmstat.nr_active_anon
114711 ± 2% -5.0% 109006 ± 3% -3.3% 110946 proc-vmstat.nr_shmem
111409 ± 2% -5.1% 105748 ± 3% -3.4% 107624 proc-vmstat.nr_zone_active_anon
17422 ± 2% -5.3% 16494 -0.4% 17353 proc-vmstat.pgactivate
1.999e+09 +3.2% 2.064e+09 -1.3% 1.972e+09 perf-stat.i.branch-instructions
6526528 ± 3% -1.2% 6446015 -7.6% 6028010 ± 4% perf-stat.i.branch-misses
0.47 -5.1% 0.44 -0.1% 0.47 perf-stat.i.cpi
9.452e+09 +5.6% 9.983e+09 +0.1% 9.461e+09 perf-stat.i.instructions
2.19 +5.8% 2.31 +0.7% 2.20 perf-stat.i.ipc
0.33 ± 3% -0.0 0.31 -0.0 0.30 ± 4% perf-stat.overall.branch-miss-rate%
0.47 -5.1% 0.45 -0.8% 0.47 perf-stat.overall.cpi
2.12 +5.4% 2.23 +0.8% 2.13 perf-stat.overall.ipc
1.991e+09 +3.2% 2.056e+09 -1.3% 1.964e+09 perf-stat.ps.branch-instructions
6486215 ± 3% -1.2% 6410482 -7.7% 5987617 ± 4% perf-stat.ps.branch-misses
9.417e+09 +5.6% 9.946e+09 +0.1% 9.426e+09 perf-stat.ps.instructions
2.841e+12 +5.7% 3.002e+12 +0.4% 2.852e+12 perf-stat.total.instructions
0.01 ± 42% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.02 ± 37% -68.5% 0.01 ± 44% -32.3% 0.01 ± 82% perf-sched.sch_delay.avg.ms.__cond_resched.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.06 ± 56% -30.8% 0.04 ±105% +79.5% 0.11 ± 12% perf-sched.sch_delay.avg.ms.__cond_resched.stop_one_cpu.sched_exec.bprm_execve.part
0.04 ± 66% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.05 ± 47% -75.3% 0.01 ± 83% -34.8% 0.03 ± 93% perf-sched.sch_delay.max.ms.__cond_resched.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.08 ± 45% -38.0% 0.05 ± 98% +56.1% 0.13 ± 11% perf-sched.sch_delay.max.ms.__cond_resched.stop_one_cpu.sched_exec.bprm_execve.part
0.01 ± 9% +33.8% 0.02 ± 18% +11.2% 0.01 ± 9% perf-sched.sch_delay.max.ms.__x64_sys_pause.do_syscall_64.entry_SYSCALL_64_after_hwframe.[unknown]
0.08 ± 57% -69.7% 0.02 ±146% -86.4% 0.01 ± 67% perf-sched.sch_delay.max.ms.schedule_timeout.__wait_for_common.wait_for_completion_state.kernel_clone
0.10 ± 37% +45.2% 0.15 ± 8% -3.3% 0.10 ± 21% perf-sched.sch_delay.max.ms.syscall_exit_to_user_mode.do_syscall_64.entry_SYSCALL_64_after_hwframe.[unknown]
7209 ± 3% -7.8% 6648 ± 2% -2.4% 7039 ± 2% perf-sched.total_wait_and_delay.count.ms
1533 ± 6% -10.2% 1377 -5.1% 1454 ± 6% perf-sched.wait_and_delay.count.smpboot_thread_fn.kthread.ret_from_fork.ret_from_fork_asm
0.01 ± 42% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.02 ± 37% -68.5% 0.01 ± 44% -32.3% 0.01 ± 82% perf-sched.wait_time.avg.ms.__cond_resched.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.04 ± 66% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.05 ± 47% -75.3% 0.01 ± 83% -34.8% 0.03 ± 93% perf-sched.wait_time.max.ms.__cond_resched.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
6.61 -6.6 0.00 -6.6 0.00 perf-profile.calltrace.cycles-pp.mas_store_prealloc.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
6.20 -6.2 0.00 -6.2 0.00 perf-profile.calltrace.cycles-pp.mas_preallocate.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
17.96 -1.1 16.87 -0.1 17.84 perf-profile.calltrace.cycles-pp.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
16.08 -1.0 15.10 +0.0 16.08 perf-profile.calltrace.cycles-pp.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64
9.85 -0.8 9.02 +0.1 9.94 perf-profile.calltrace.cycles-pp.perf_event_mmap_output.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags
11.56 -0.8 10.73 +0.2 11.80 ± 2% perf-profile.calltrace.cycles-pp.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
3.57 ± 2% -0.1 3.43 ± 3% -0.1 3.46 perf-profile.calltrace.cycles-pp.thp_get_unmapped_area_vmflags.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64
2.35 ± 3% -0.1 2.22 ± 3% -0.2 2.16 ± 2% perf-profile.calltrace.cycles-pp.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
10.59 ± 2% -0.1 10.48 -0.4 10.15 ± 3% perf-profile.calltrace.cycles-pp.entry_SYSCALL_64.brk
0.58 ± 4% -0.1 0.48 ± 45% -0.1 0.44 ± 44% perf-profile.calltrace.cycles-pp.x64_sys_call.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
5.67 ± 2% -0.0 5.66 ± 4% +0.4 6.02 ± 2% perf-profile.calltrace.cycles-pp.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
3.93 ± 4% +0.1 4.00 ± 4% +0.2 4.12 perf-profile.calltrace.cycles-pp.mas_walk.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.64 ± 4% +0.4 1.06 ± 2% +0.5 1.10 ± 3% perf-profile.calltrace.cycles-pp.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.6 0.56 ± 5% +0.6 0.58 ± 4% perf-profile.calltrace.cycles-pp.mas_wr_store_entry.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +0.6 0.57 ± 6% +0.6 0.60 ± 8% perf-profile.calltrace.cycles-pp.mas_wr_slot_store.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +0.6 0.58 ± 7% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_next_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.7 0.69 ± 4% +0.7 0.69 ± 6% perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.7 0.70 ± 6% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_next_slot.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.7 0.73 ± 8% +0.8 0.77 ± 5% perf-profile.calltrace.cycles-pp.vma_adjust_trans_huge.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +0.7 0.74 ± 5% +0.8 0.79 ± 6% perf-profile.calltrace.cycles-pp.can_vma_merge_after.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.8 0.84 ± 2% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +0.9 0.88 ± 5% +0.9 0.89 ± 3% perf-profile.calltrace.cycles-pp.__anon_vma_interval_tree_remove.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
78.92 +0.9 79.81 +0.6 79.50 perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +1.3 1.28 ± 2% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev_slot.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +1.4 1.42 ± 3% +1.9 1.88 ± 3% perf-profile.calltrace.cycles-pp.up_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.6 1.59 ± 4% +1.6 1.62 ± 3% perf-profile.calltrace.cycles-pp.up_write.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +1.8 1.80 ± 4% +1.8 1.83 ± 4% perf-profile.calltrace.cycles-pp.init_multi_vma_prep.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.9 1.89 ± 4% +2.1 2.10 ± 2% perf-profile.calltrace.cycles-pp.mas_leaf_max_gap.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range
0.00 +2.1 2.06 ± 3% +2.1 2.13 perf-profile.calltrace.cycles-pp.down_write.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +2.1 2.12 ± 2% +2.2 2.22 ± 3% perf-profile.calltrace.cycles-pp.down_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +2.4 2.43 ± 4% +2.7 2.70 ± 2% perf-profile.calltrace.cycles-pp.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
52.76 +2.6 55.40 +1.8 54.61 perf-profile.calltrace.cycles-pp.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +3.0 2.98 +3.0 2.95 perf-profile.calltrace.cycles-pp.mas_wr_store_type.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +3.1 3.11 ± 3% +3.1 3.13 ± 2% perf-profile.calltrace.cycles-pp.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +3.9 3.90 ± 2% +4.0 4.00 perf-profile.calltrace.cycles-pp.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +5.0 4.96 +5.0 4.97 perf-profile.calltrace.cycles-pp.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +6.0 6.04 ± 2% +6.4 6.44 perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +27.5 27.47 +29.1 29.12 perf-profile.calltrace.cycles-pp.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +32.1 32.09 +31.7 31.72 perf-profile.calltrace.cycles-pp.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
6.44 -1.2 5.20 -1.2 5.20 perf-profile.children.cycles-pp.mas_preallocate
18.11 -1.1 16.99 -0.1 17.98 perf-profile.children.cycles-pp.perf_event_mmap
4.01 ± 2% -1.0 3.06 -1.0 3.03 perf-profile.children.cycles-pp.mas_wr_store_type
16.54 -0.9 15.60 +0.0 16.55 perf-profile.children.cycles-pp.perf_event_mmap_event
10.02 -0.8 9.18 +0.1 10.10 perf-profile.children.cycles-pp.perf_event_mmap_output
5.61 -0.8 4.77 -0.3 5.32 ± 2% perf-profile.children.cycles-pp.up_write
11.80 -0.8 10.97 +0.2 12.02 ± 2% perf-profile.children.cycles-pp.perf_iterate_sb
1.39 -0.6 0.81 ± 3% -0.5 0.86 ± 5% perf-profile.children.cycles-pp.can_vma_merge_after
6.89 -0.5 6.38 -0.1 6.79 perf-profile.children.cycles-pp.mas_store_prealloc
3.67 ± 2% -0.3 3.41 ± 3% -0.2 3.44 ± 2% perf-profile.children.cycles-pp.vma_complete
2.20 ± 4% -0.2 1.97 ± 3% -0.0 2.16 ± 2% perf-profile.children.cycles-pp.mas_leaf_max_gap
2.68 ± 3% -0.2 2.47 ± 3% +0.1 2.78 ± 2% perf-profile.children.cycles-pp.mas_update_gap
2.51 ± 3% -0.1 2.36 ± 3% -0.2 2.32 ± 2% perf-profile.children.cycles-pp.down_write_killable
0.61 ± 5% -0.1 0.49 ± 7% -0.1 0.51 ± 8% perf-profile.children.cycles-pp.may_expand_vm
1.25 ± 4% -0.1 1.14 ± 5% -0.1 1.18 ± 3% perf-profile.children.cycles-pp.syscall_exit_to_user_mode
0.14 ± 11% -0.1 0.08 ± 12% -0.1 0.05 ± 46% perf-profile.children.cycles-pp.arch_vma_name
0.42 -0.1 0.36 ± 4% -0.0 0.41 ± 4% perf-profile.children.cycles-pp.syscall_exit_to_user_mode_prepare
0.36 ± 6% -0.1 0.31 ± 4% -0.1 0.30 ± 9% perf-profile.children.cycles-pp.brk_test
0.25 ± 5% -0.0 0.21 ± 9% -0.0 0.22 ± 4% perf-profile.children.cycles-pp.__rb_insert_augmented
0.41 ± 6% -0.0 0.38 ± 5% -0.0 0.36 ± 8% perf-profile.children.cycles-pp.cap_vm_enough_memory
0.61 ± 4% -0.0 0.59 ± 3% -0.0 0.57 ± 2% perf-profile.children.cycles-pp.syscall_return_via_sysret
5.98 ± 2% -0.0 5.97 ± 4% +0.4 6.34 ± 2% perf-profile.children.cycles-pp.mas_find
0.18 ± 18% -0.0 0.17 ± 13% +0.1 0.25 ± 6% perf-profile.children.cycles-pp.khugepaged_enter_vma
0.14 ± 3% -0.0 0.14 ± 7% -0.0 0.12 ± 7% perf-profile.children.cycles-pp.intel_idle
0.08 ± 10% +0.0 0.12 ± 16% +0.0 0.10 ± 11% perf-profile.children.cycles-pp.mmap_region
0.09 ± 8% +0.0 0.12 ± 15% +0.0 0.11 ± 10% perf-profile.children.cycles-pp.do_mmap
0.10 ± 14% +0.0 0.15 ± 11% +0.1 0.16 ± 12% perf-profile.children.cycles-pp.anon_vma_interval_tree_remove
4.02 ± 4% +0.1 4.08 ± 4% +0.2 4.20 perf-profile.children.cycles-pp.mas_walk
1.01 ± 5% +0.1 1.08 ± 5% +0.1 1.12 ± 2% perf-profile.children.cycles-pp.rcu_all_qs
0.19 ± 5% +0.1 0.30 ± 5% +0.1 0.31 ± 6% perf-profile.children.cycles-pp.rb_next
1.27 ± 4% +0.1 1.40 ± 2% +0.0 1.31 ± 4% perf-profile.children.cycles-pp.sized_strscpy
0.42 ± 6% +0.1 0.57 ± 6% +0.1 0.54 ± 7% perf-profile.children.cycles-pp.strnlen
0.48 ± 4% +0.2 0.64 ± 5% +0.2 0.65 ± 3% perf-profile.children.cycles-pp.mas_wr_store_entry
1.80 ± 4% +0.2 2.02 ± 2% +0.3 2.09 perf-profile.children.cycles-pp.__cond_resched
0.00 +0.3 0.31 ± 12% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_setup
4.16 ± 3% +0.3 4.48 +0.5 4.68 perf-profile.children.cycles-pp.down_write
0.40 ± 6% +0.4 0.78 ± 4% +0.4 0.77 ± 6% perf-profile.children.cycles-pp.percpu_counter_add_batch
0.48 ± 4% +0.4 0.92 ± 5% -0.0 0.44 ± 9% perf-profile.children.cycles-pp.mas_prev_setup
0.56 ± 6% +0.5 1.02 ± 4% +0.5 1.04 ± 3% perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
0.79 ± 4% +0.5 1.30 ± 3% +0.5 1.32 ± 3% perf-profile.children.cycles-pp.__vm_enough_memory
1.02 ± 2% +0.7 1.72 ± 3% -0.0 0.98 ± 2% perf-profile.children.cycles-pp.mas_next_slot
0.00 +0.7 0.70 ± 6% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_range
79.62 +0.9 80.50 +0.6 80.20 perf-profile.children.cycles-pp.__do_sys_brk
1.10 ± 3% +1.0 2.10 ± 3% -0.0 1.06 ± 2% perf-profile.children.cycles-pp.mas_prev
2.86 ± 3% +1.3 4.12 ± 3% +1.4 4.24 perf-profile.children.cycles-pp.vma_prepare
1.45 ± 4% +1.3 2.79 ± 3% -0.0 1.41 ± 4% perf-profile.children.cycles-pp.mas_prev_slot
54.06 +1.8 55.82 +0.9 54.96 perf-profile.children.cycles-pp.do_brk_flags
0.00 +28.3 28.30 +30.0 30.00 perf-profile.children.cycles-pp.vma_expand
0.00 +32.6 32.58 +32.1 32.11 perf-profile.children.cycles-pp.vma_merge_new_range
5.90 ± 2% -3.4 2.47 ± 3% -3.5 2.38 perf-profile.self.cycles-pp.do_brk_flags
3.84 ± 2% -0.9 2.90 -1.0 2.88 perf-profile.self.cycles-pp.mas_wr_store_type
9.85 -0.8 9.02 +0.1 9.95 perf-profile.self.cycles-pp.perf_event_mmap_output
5.26 -0.8 4.47 ± 2% -0.3 5.00 perf-profile.self.cycles-pp.up_write
1.34 ± 2% -0.6 0.75 ± 3% -0.6 0.78 ± 5% perf-profile.self.cycles-pp.can_vma_merge_after
2.86 -0.4 2.47 ± 5% -0.3 2.53 ± 2% perf-profile.self.cycles-pp.mas_store_prealloc
2.50 ± 2% -0.3 2.22 ± 2% -0.3 2.24 ± 4% perf-profile.self.cycles-pp.mas_preallocate
5.02 ± 2% -0.2 4.79 -0.2 4.78 ± 2% perf-profile.self.cycles-pp.__do_sys_brk
2.19 ± 4% -0.2 1.96 ± 3% -0.1 2.13 ± 2% perf-profile.self.cycles-pp.mas_leaf_max_gap
1.87 ± 3% -0.2 1.66 ± 4% -0.2 1.67 ± 2% perf-profile.self.cycles-pp.perf_event_mmap_event
1.52 ± 3% -0.2 1.33 ± 2% -0.1 1.40 ± 3% perf-profile.self.cycles-pp.perf_event_mmap
1.82 ± 3% -0.1 1.68 ± 4% -0.2 1.66 ± 2% perf-profile.self.cycles-pp.down_write_killable
1.84 ± 2% -0.1 1.74 ± 4% -0.1 1.77 ± 4% perf-profile.self.cycles-pp.init_multi_vma_prep
1.18 ± 2% -0.1 1.09 -0.1 1.10 ± 5% perf-profile.self.cycles-pp.do_syscall_64
5.62 ± 2% -0.1 5.54 -0.2 5.37 ± 2% perf-profile.self.cycles-pp.brk
0.79 ± 4% -0.1 0.73 ± 6% -0.1 0.71 ± 3% perf-profile.self.cycles-pp.syscall_exit_to_user_mode
0.33 ± 4% -0.0 0.30 ± 5% +0.0 0.34 ± 4% perf-profile.self.cycles-pp.syscall_exit_to_user_mode_prepare
1.08 ± 2% -0.0 1.05 ± 4% +0.2 1.29 ± 6% perf-profile.self.cycles-pp.mas_find
0.61 ± 4% -0.0 0.59 ± 3% -0.0 0.56 ± 2% perf-profile.self.cycles-pp.syscall_return_via_sysret
0.14 ± 3% -0.0 0.14 ± 7% -0.0 0.12 ± 7% perf-profile.self.cycles-pp.intel_idle
0.10 ± 16% +0.0 0.10 ± 16% +0.0 0.14 ± 10% perf-profile.self.cycles-pp.khugepaged_enter_vma
0.29 ± 10% +0.0 0.33 ± 15% +0.1 0.37 ± 8% perf-profile.self.cycles-pp.security_mmap_addr
0.46 ± 3% +0.0 0.51 ± 8% +0.2 0.62 ± 4% perf-profile.self.cycles-pp.mas_update_gap
0.03 ± 70% +0.1 0.08 ± 14% +0.0 0.08 ± 14% perf-profile.self.cycles-pp.anon_vma_interval_tree_remove
3.94 ± 4% +0.1 4.00 ± 4% +0.2 4.12 ± 2% perf-profile.self.cycles-pp.mas_walk
0.13 ± 7% +0.1 0.22 ± 10% +0.1 0.24 ± 4% perf-profile.self.cycles-pp.rb_next
0.40 ± 7% +0.1 0.50 ± 9% +0.1 0.52 ± 4% perf-profile.self.cycles-pp.mas_wr_store_entry
1.21 ± 4% +0.1 1.32 ± 2% +0.0 1.24 ± 5% perf-profile.self.cycles-pp.sized_strscpy
0.38 ± 7% +0.1 0.50 ± 7% +0.1 0.48 ± 8% perf-profile.self.cycles-pp.strnlen
0.95 ± 7% +0.1 1.10 ± 4% +0.2 1.13 ± 2% perf-profile.self.cycles-pp.__cond_resched
0.63 ± 5% +0.2 0.82 ± 9% +0.2 0.84 ± 3% perf-profile.self.cycles-pp.vma_prepare
2.98 ± 2% +0.2 3.20 +0.3 3.31 perf-profile.self.cycles-pp.down_write
0.37 ± 6% +0.2 0.60 ± 6% +0.2 0.59 ± 5% perf-profile.self.cycles-pp.__vm_enough_memory
0.00 +0.2 0.24 ± 11% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_setup
0.24 ± 6% +0.3 0.54 ± 6% +0.3 0.55 ± 8% perf-profile.self.cycles-pp.percpu_counter_add_batch
0.32 ± 4% +0.3 0.64 ± 5% -0.0 0.29 ± 9% perf-profile.self.cycles-pp.mas_prev_setup
0.38 ± 10% +0.3 0.72 ± 6% +0.3 0.72 ± 5% perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
0.00 +0.4 0.41 ± 5% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_range
0.63 ± 5% +0.5 1.17 ± 3% -0.0 0.61 ± 4% perf-profile.self.cycles-pp.mas_prev
0.87 ± 3% +0.6 1.49 ± 3% -0.0 0.83 ± 3% perf-profile.self.cycles-pp.mas_next_slot
1.37 ± 4% +1.3 2.64 ± 3% -0.0 1.33 ± 5% perf-profile.self.cycles-pp.mas_prev_slot
0.00 +1.3 1.30 +1.3 1.26 ± 6% perf-profile.self.cycles-pp.vma_merge_new_range
0.00 +3.4 3.45 ± 2% +4.0 3.96 ± 2% perf-profile.self.cycles-pp.vma_expand
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-icl-2sp9/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
2667734 -5.6% 2518021 -1.0% 2640850 aim9.brk_test.ops_per_sec
196.00 +0.0% 196.00 +404.4% 988.58 ±168% meminfo.Inactive(file)
23.94 -8.7% 21.86 ± 2% -4.6% 22.84 time.user_time
948658 +2.3% 970280 +1.0% 958340 proc-vmstat.pgalloc_normal
792310 -1.5% 780779 -0.1% 791672 proc-vmstat.pgfault
814343 +2.4% 833987 +0.9% 821925 proc-vmstat.pgfree
0.01 ± 47% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.06 ± 34% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
399.96 -0.0% 399.92 -43.8% 224.93 ± 2% perf-sched.wait_and_delay.avg.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
10.00 +0.0% 10.00 +80.0% 18.00 perf-sched.wait_and_delay.count.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
0.01 ± 47% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
399.95 -0.0% 399.92 -43.8% 224.93 ± 2% perf-sched.wait_time.avg.ms.irq_thread.kthread.ret_from_fork.ret_from_fork_asm
0.06 ± 34% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
1.721e+09 +3.0% 1.773e+09 -0.2% 1.717e+09 perf-stat.i.branch-instructions
0.54 -5.4% 0.52 -1.7% 0.54 perf-stat.i.cpi
7.553e+09 +6.0% 8.003e+09 +1.2% 7.645e+09 perf-stat.i.instructions
1.86 +6.1% 1.97 +2.0% 1.90 perf-stat.i.ipc
0.36 ± 2% -0.0 0.35 -0.0 0.34 ± 5% perf-stat.overall.branch-miss-rate%
0.55 -5.3% 0.52 -2.1% 0.54 perf-stat.overall.cpi
1.82 +5.6% 1.92 +2.2% 1.86 perf-stat.overall.ipc
1.715e+09 +3.0% 1.767e+09 -0.2% 1.711e+09 perf-stat.ps.branch-instructions
7.529e+09 +5.9% 7.977e+09 +1.2% 7.621e+09 perf-stat.ps.instructions
2.275e+12 +5.8% 2.408e+12 +1.7% 2.314e+12 perf-stat.total.instructions
6.58 ± 2% -6.6 0.00 -6.6 0.00 perf-profile.calltrace.cycles-pp.mas_store_prealloc.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
5.76 ± 2% -5.8 0.00 -5.8 0.00 perf-profile.calltrace.cycles-pp.mas_preallocate.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
18.35 -1.3 17.10 -0.5 17.82 perf-profile.calltrace.cycles-pp.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
15.92 -1.1 14.78 ± 2% -0.6 15.36 perf-profile.calltrace.cycles-pp.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64
11.03 -0.7 10.33 -0.3 10.71 ± 2% perf-profile.calltrace.cycles-pp.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
4.22 ± 3% -0.4 3.79 ± 2% -0.2 4.00 ± 2% perf-profile.calltrace.cycles-pp.mas_walk.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
8.48 -0.4 8.08 ± 2% -0.2 8.32 ± 2% perf-profile.calltrace.cycles-pp.perf_event_mmap_output.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags
5.32 -0.3 4.98 -0.2 5.08 perf-profile.calltrace.cycles-pp.clear_bhb_loop.brk
5.38 ± 3% -0.3 5.06 +0.0 5.39 perf-profile.calltrace.cycles-pp.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
1.16 ± 7% -0.3 0.86 ± 5% -0.2 0.95 ± 4% perf-profile.calltrace.cycles-pp.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.88 ± 14% -0.2 0.64 ± 8% -0.1 0.75 ± 5% perf-profile.calltrace.cycles-pp.security_vm_enough_memory_mm.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
5.56 -0.2 5.38 +0.2 5.73 perf-profile.calltrace.cycles-pp.check_brk_limits.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.74 ± 6% -0.2 0.57 ± 6% -0.1 0.69 ± 3% perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64
5.09 -0.2 4.92 +0.1 5.22 perf-profile.calltrace.cycles-pp.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
3.73 -0.2 3.56 ± 2% +0.1 3.79 ± 2% perf-profile.calltrace.cycles-pp.thp_get_unmapped_area_vmflags.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64
1.25 ± 2% -0.2 1.08 ± 9% -0.1 1.17 ± 7% perf-profile.calltrace.cycles-pp.sized_strscpy.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
1.98 ± 2% -0.1 1.84 ± 3% +0.0 1.99 ± 4% perf-profile.calltrace.cycles-pp.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.55 ± 2% -0.1 0.42 ± 44% +0.0 0.60 ± 8% perf-profile.calltrace.cycles-pp.__cond_resched.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.78 ± 3% -0.1 0.72 ± 4% -0.0 0.77 ± 3% perf-profile.calltrace.cycles-pp.mas_prev.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.6 0.56 ± 5% +0.5 0.46 ± 44% perf-profile.calltrace.cycles-pp.anon_vma_interval_tree_insert.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +0.6 0.64 +0.6 0.64 ± 5% perf-profile.calltrace.cycles-pp.vma_adjust_trans_huge.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +0.7 0.69 ± 8% +0.7 0.66 ± 6% perf-profile.calltrace.cycles-pp.__anon_vma_interval_tree_remove.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +0.8 0.78 ± 4% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_next_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.8 0.80 ± 2% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
82.26 +0.8 83.07 +0.7 82.94 perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.8 0.82 ± 4% +1.0 1.04 ± 3% perf-profile.calltrace.cycles-pp.can_vma_merge_after.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
81.38 +0.8 82.20 +0.6 82.03 perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.8 0.84 ± 4% +0.9 0.91 ± 6% perf-profile.calltrace.cycles-pp.mas_wr_slot_store.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
77.94 +1.0 78.92 +0.6 78.57 perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +1.2 1.24 ± 3% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_prev_slot.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +1.3 1.32 ± 2% +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_next_slot.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +1.4 1.38 ± 2% +1.4 1.39 ± 3% perf-profile.calltrace.cycles-pp.down_write.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +1.4 1.40 ± 4% +1.5 1.49 ± 4% perf-profile.calltrace.cycles-pp.up_write.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +1.6 1.64 +1.7 1.74 ± 4% perf-profile.calltrace.cycles-pp.up_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.8 1.82 ± 5% +1.8 1.84 ± 2% perf-profile.calltrace.cycles-pp.down_write.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.9 1.89 ± 3% +2.0 2.04 ± 2% perf-profile.calltrace.cycles-pp.init_multi_vma_prep.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.9 1.92 ± 3% +2.0 2.01 ± 3% perf-profile.calltrace.cycles-pp.mas_leaf_max_gap.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range
0.00 +2.3 2.31 +2.3 2.33 ± 3% perf-profile.calltrace.cycles-pp.mas_wr_store_type.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +2.7 2.68 ± 2% +2.8 2.78 ± 2% perf-profile.calltrace.cycles-pp.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +2.9 2.92 ± 4% +3.0 2.96 ± 2% perf-profile.calltrace.cycles-pp.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +2.9 2.93 ± 2% +2.8 2.84 ± 3% perf-profile.calltrace.cycles-pp.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
53.19 +3.0 56.14 +1.2 54.34 perf-profile.calltrace.cycles-pp.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +4.4 4.42 +4.6 4.57 perf-profile.calltrace.cycles-pp.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +7.1 7.09 +7.4 7.42 perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +26.8 26.83 +27.6 27.58 perf-profile.calltrace.cycles-pp.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +31.4 31.41 +30.5 30.46 perf-profile.calltrace.cycles-pp.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
5.93 -1.3 4.62 -1.2 4.76 perf-profile.children.cycles-pp.mas_preallocate
18.48 -1.3 17.23 -0.5 17.96 perf-profile.children.cycles-pp.perf_event_mmap
16.41 -1.2 15.23 -0.5 15.88 perf-profile.children.cycles-pp.perf_event_mmap_event
3.46 -1.1 2.37 -1.1 2.40 ± 3% perf-profile.children.cycles-pp.mas_wr_store_type
11.24 -0.7 10.52 ± 2% -0.3 10.93 ± 2% perf-profile.children.cycles-pp.perf_iterate_sb
4.29 ± 3% -0.4 3.86 ± 2% -0.2 4.06 ± 2% perf-profile.children.cycles-pp.mas_walk
8.61 -0.4 8.21 ± 2% -0.2 8.44 ± 2% perf-profile.children.cycles-pp.perf_event_mmap_output
0.83 ± 7% -0.4 0.47 ± 8% -0.3 0.50 ± 7% perf-profile.children.cycles-pp.may_expand_vm
3.82 -0.3 3.48 ± 3% -0.3 3.48 ± 3% perf-profile.children.cycles-pp.down_write
5.39 -0.3 5.06 -0.2 5.16 perf-profile.children.cycles-pp.clear_bhb_loop
1.36 ± 5% -0.3 1.03 ± 5% -0.2 1.16 ± 3% perf-profile.children.cycles-pp.__vm_enough_memory
1.18 ± 5% -0.3 0.88 ± 4% -0.1 1.11 ± 2% perf-profile.children.cycles-pp.can_vma_merge_after
0.57 ± 22% -0.2 0.33 ± 12% -0.1 0.45 ± 8% perf-profile.children.cycles-pp.cap_vm_enough_memory
1.06 ± 11% -0.2 0.83 ± 9% -0.1 0.94 ± 4% perf-profile.children.cycles-pp.security_vm_enough_memory_mm
5.30 -0.2 5.11 +0.1 5.42 perf-profile.children.cycles-pp.__get_unmapped_area
5.75 -0.2 5.56 +0.2 5.93 perf-profile.children.cycles-pp.check_brk_limits
0.82 ± 4% -0.2 0.64 ± 4% -0.1 0.76 ± 3% perf-profile.children.cycles-pp.percpu_counter_add_batch
3.86 -0.2 3.69 ± 2% +0.1 3.93 ± 2% perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
1.32 ± 2% -0.2 1.16 ± 8% -0.1 1.24 ± 6% perf-profile.children.cycles-pp.sized_strscpy
2.10 ± 2% -0.1 1.96 ± 2% +0.0 2.11 ± 3% perf-profile.children.cycles-pp.down_write_killable
1.86 ± 3% -0.1 1.74 ± 2% -0.0 1.83 ± 5% perf-profile.children.cycles-pp.__cond_resched
0.57 ± 7% -0.1 0.45 ± 13% -0.1 0.46 ± 7% perf-profile.children.cycles-pp.strlen
2.78 -0.1 2.66 ± 2% +0.0 2.80 ± 2% perf-profile.children.cycles-pp.arch_get_unmapped_area_topdown_vmflags
3.16 -0.1 3.10 -0.2 3.00 ± 3% perf-profile.children.cycles-pp.vma_prepare
0.72 ± 5% -0.0 0.68 ± 9% -0.1 0.66 ± 4% perf-profile.children.cycles-pp.brk_test
0.20 ± 11% -0.0 0.19 ± 9% +0.1 0.28 ± 11% perf-profile.children.cycles-pp.khugepaged_enter_vma
1.92 ± 2% +0.0 1.96 ± 3% +0.2 2.10 ± 3% perf-profile.children.cycles-pp.init_multi_vma_prep
0.70 ± 2% +0.1 0.81 ± 6% +0.1 0.80 ± 6% perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
95.56 +0.2 95.72 +0.4 95.92 perf-profile.children.cycles-pp.brk
0.68 ± 9% +0.2 0.90 ± 3% +0.3 0.98 ± 6% perf-profile.children.cycles-pp.mas_wr_slot_store
0.34 ± 5% +0.3 0.68 ± 6% +0.0 0.34 ± 6% perf-profile.children.cycles-pp.mas_prev_setup
0.00 +0.4 0.43 ± 2% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_setup
6.91 ± 2% +0.5 7.37 +0.9 7.76 perf-profile.children.cycles-pp.mas_store_prealloc
0.92 ± 3% +0.8 1.76 ± 3% -0.0 0.90 ± 4% perf-profile.children.cycles-pp.mas_prev
83.20 +0.9 84.05 +0.7 83.85 perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
82.36 +0.9 83.23 +0.6 83.00 perf-profile.children.cycles-pp.do_syscall_64
78.68 +0.9 79.62 +0.6 79.31 perf-profile.children.cycles-pp.__do_sys_brk
0.00 +0.9 0.94 ± 3% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_range
1.35 ± 5% +1.2 2.59 ± 3% +0.1 1.49 ± 3% perf-profile.children.cycles-pp.mas_prev_slot
0.84 ± 3% +1.4 2.26 ± 3% +0.1 0.93 ± 6% perf-profile.children.cycles-pp.mas_next_slot
54.26 +2.3 56.54 +0.4 54.70 perf-profile.children.cycles-pp.do_brk_flags
0.00 +27.5 27.55 +28.3 28.34 perf-profile.children.cycles-pp.vma_expand
0.00 +31.9 31.86 +30.8 30.80 perf-profile.children.cycles-pp.vma_merge_new_range
6.50 -3.3 3.19 ± 2% -2.8 3.65 ± 2% perf-profile.self.cycles-pp.do_brk_flags
3.35 -1.1 2.25 -1.1 2.28 ± 3% perf-profile.self.cycles-pp.mas_wr_store_type
5.31 ± 2% -0.4 4.88 -0.2 5.13 ± 3% perf-profile.self.cycles-pp.__do_sys_brk
4.22 ± 3% -0.4 3.80 ± 2% -0.2 4.00 ± 2% perf-profile.self.cycles-pp.mas_walk
8.47 -0.4 8.07 ± 2% -0.2 8.28 ± 2% perf-profile.self.cycles-pp.perf_event_mmap_output
0.71 ± 8% -0.3 0.38 ± 8% -0.3 0.39 ± 5% perf-profile.self.cycles-pp.may_expand_vm
5.32 -0.3 5.00 -0.2 5.10 perf-profile.self.cycles-pp.clear_bhb_loop
1.12 ± 5% -0.3 0.82 ± 4% -0.1 1.04 ± 4% perf-profile.self.cycles-pp.can_vma_merge_after
2.62 -0.2 2.38 ± 5% -0.2 2.40 ± 3% perf-profile.self.cycles-pp.down_write
0.44 ± 28% -0.2 0.20 ± 13% -0.1 0.33 ± 12% perf-profile.self.cycles-pp.cap_vm_enough_memory
2.50 ± 3% -0.2 2.31 ± 2% -0.1 2.42 perf-profile.self.cycles-pp.mas_preallocate
0.61 ± 9% -0.2 0.42 ± 7% -0.2 0.45 ± 5% perf-profile.self.cycles-pp.__vm_enough_memory
1.26 ± 2% -0.2 1.09 ± 9% -0.1 1.17 ± 6% perf-profile.self.cycles-pp.sized_strscpy
0.57 ± 5% -0.1 0.44 ± 4% -0.0 0.52 ± 5% perf-profile.self.cycles-pp.percpu_counter_add_batch
2.25 ± 3% -0.1 2.13 ± 3% -0.0 2.23 ± 3% perf-profile.self.cycles-pp.perf_event_mmap_event
2.70 -0.1 2.60 ± 2% +0.0 2.74 ± 2% perf-profile.self.cycles-pp.arch_get_unmapped_area_topdown_vmflags
0.50 ± 8% -0.1 0.40 ± 12% -0.1 0.41 ± 6% perf-profile.self.cycles-pp.strlen
0.57 ± 4% -0.1 0.52 ± 4% -0.0 0.56 ± 9% perf-profile.self.cycles-pp.strnlen
0.46 ± 7% -0.0 0.45 ± 12% +0.1 0.51 ± 5% perf-profile.self.cycles-pp.check_brk_limits
1.85 ± 2% -0.0 1.84 ± 3% +0.1 1.98 ± 3% perf-profile.self.cycles-pp.init_multi_vma_prep
0.60 ± 5% +0.0 0.63 +0.1 0.65 ± 2% perf-profile.self.cycles-pp.vma_adjust_trans_huge
0.01 ±223% +0.1 0.06 ± 15% +0.0 0.05 ± 46% perf-profile.self.cycles-pp.anon_vma_interval_tree_remove
0.64 ± 7% +0.1 0.72 ± 6% +0.2 0.81 ± 5% perf-profile.self.cycles-pp.mas_find
0.51 ± 4% +0.1 0.60 ± 5% +0.1 0.60 ± 6% perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
2.87 ± 2% +0.2 3.10 ± 2% +0.4 3.24 ± 2% perf-profile.self.cycles-pp.mas_store_prealloc
0.61 ± 8% +0.2 0.84 ± 4% +0.3 0.91 ± 5% perf-profile.self.cycles-pp.mas_wr_slot_store
0.26 ± 7% +0.3 0.56 ± 5% +0.0 0.28 ± 4% perf-profile.self.cycles-pp.mas_prev_setup
0.00 +0.3 0.33 ± 3% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_setup
0.53 ± 6% +0.4 0.98 ± 3% -0.0 0.51 ± 8% perf-profile.self.cycles-pp.mas_prev
0.00 +0.6 0.56 ± 5% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_range
1.29 ± 4% +1.2 2.46 ± 3% +0.1 1.42 ± 4% perf-profile.self.cycles-pp.mas_prev_slot
0.72 ± 4% +1.4 2.07 ± 3% +0.1 0.79 ± 8% perf-profile.self.cycles-pp.mas_next_slot
0.00 +1.4 1.40 ± 4% +1.3 1.29 ± 3% perf-profile.self.cycles-pp.vma_merge_new_range
0.00 +3.6 3.55 ± 6% +3.7 3.66 ± 2% perf-profile.self.cycles-pp.vma_expand
=========================================================================================
compiler/cpufreq_governor/kconfig/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/debian-12-x86_64-20240206.cgz/lkp-ivb-2ep2/brk_test/aim9/300s
commit:
fc21959f74bc11 ("mm: abstract vma_expand() to use vma_merge_struct")
cacded5e42b960 ("mm: avoid using vma_merge() for new VMAs")
9cecc5dc893886 ("mm: add expand-only VMA merge mode and optimise do_brk_flags()")
fc21959f74bc1138 cacded5e42b9609b07b22d80c10 9cecc5dc89388676d1d0d47461c
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
78524 ±113% +27.6% 100212 ± 86% +64.3% 128984 ± 72% numa-meminfo.node0.AnonHugePages
38.39 ±113% +27.5% 48.94 ± 86% +64.1% 63.00 ± 72% numa-vmstat.node0.nr_anon_transparent_hugepages
0.54 ± 14% -6.6% 0.50 ± 23% -38.6% 0.33 ± 32% sched_debug.cpu.nr_running.max
5949 -1.7% 5850 ± 2% -4.0% 5713 ± 3% vmstat.system.in
201.54 +2.9% 207.44 +2.0% 205.54 time.system_time
97.58 -6.0% 91.75 -4.0% 93.66 time.user_time
1322908 -5.0% 1256536 -1.6% 1301387 aim9.brk_test.ops_per_sec
201.54 +2.9% 207.44 +2.0% 205.54 aim9.time.system_time
97.58 -6.0% 91.75 -4.0% 93.66 aim9.time.user_time
61335 -2.5% 59800 -3.4% 59279 proc-vmstat.nr_active_anon
62342 -2.4% 60875 -3.3% 60255 proc-vmstat.nr_shmem
61335 -2.5% 59800 -3.4% 59279 proc-vmstat.nr_zone_active_anon
0.04 ± 82% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.10 ± 60% -100.0% 0.00 -100.0% 0.00 perf-sched.sch_delay.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.04 ± 82% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.avg.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
0.10 ± 60% -100.0% 0.00 -100.0% 0.00 perf-sched.wait_time.max.ms.__cond_resched.down_write.do_brk_flags.__do_sys_brk.do_syscall_64
8.33e+08 +3.9% 8.654e+08 -1.1% 8.24e+08 perf-stat.i.branch-instructions
1.15 -0.1 1.09 -0.0 1.14 ± 2% perf-stat.i.branch-miss-rate%
12964626 -1.9% 12711922 -4.5% 12386373 perf-stat.i.branch-misses
1.11 -7.4% 1.03 -2.0% 1.09 perf-stat.i.cpi
4.277e+09 -1.1% 4.229e+09 -2.0% 4.191e+09 perf-stat.i.cpu-cycles
3.943e+09 +6.0% 4.18e+09 +0.2% 3.951e+09 perf-stat.i.instructions
0.91 +7.9% 0.98 +2.5% 0.93 perf-stat.i.ipc
0.29 ± 2% -9.1% 0.27 ± 4% -5.7% 0.28 ± 5% perf-stat.overall.MPKI
1.56 -0.1 1.47 -0.1 1.50 perf-stat.overall.branch-miss-rate%
1.08 -6.8% 1.01 -2.2% 1.06 perf-stat.overall.cpi
0.92 +7.2% 0.99 +2.3% 0.94 perf-stat.overall.ipc
8.303e+08 +3.9% 8.627e+08 -1.1% 8.214e+08 perf-stat.ps.branch-instructions
12931205 -2.0% 12678170 -4.5% 12352666 perf-stat.ps.branch-misses
4.263e+09 -1.1% 4.215e+09 -2.0% 4.177e+09 perf-stat.ps.cpu-cycles
3.93e+09 +6.0% 4.167e+09 +0.2% 3.938e+09 perf-stat.ps.instructions
1.184e+12 +6.1% 1.256e+12 +0.8% 1.194e+12 perf-stat.total.instructions
7.16 ± 2% -0.4 6.76 ± 4% -0.6 6.55 ± 3% perf-profile.calltrace.cycles-pp.entry_SYSRETQ_unsafe_stack.brk
5.72 ± 2% -0.4 5.35 ± 3% +0.0 5.73 perf-profile.calltrace.cycles-pp.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64
6.13 ± 2% -0.3 5.84 ± 3% +0.1 6.25 perf-profile.calltrace.cycles-pp.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.83 ± 11% -0.1 0.71 ± 5% -0.1 0.74 ± 5% perf-profile.calltrace.cycles-pp.__vm_enough_memory.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
2.51 ± 5% -0.0 2.48 ± 11% +0.2 2.71 ± 4% perf-profile.calltrace.cycles-pp.menu_select.cpuidle_idle_call.do_idle.cpu_startup_entry.start_secondary
1.32 ± 5% -0.0 1.31 ± 14% +0.1 1.45 ± 4% perf-profile.calltrace.cycles-pp.tick_nohz_get_sleep_length.menu_select.cpuidle_idle_call.do_idle.cpu_startup_entry
0.00 +0.6 0.58 ± 5% +0.6 0.58 ± 5% perf-profile.calltrace.cycles-pp.mas_leaf_max_gap.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range
16.73 ± 2% +0.6 17.34 +0.3 16.99 perf-profile.calltrace.cycles-pp.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.7 0.66 ± 6% +0.7 0.67 ± 8% perf-profile.calltrace.cycles-pp.mas_wr_store_type.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags
24.51 +0.7 25.17 ± 2% +0.6 25.14 perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
24.21 +0.7 24.90 +0.6 24.84 perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
23.33 +0.7 24.05 ± 2% +0.6 23.89 perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.8 0.82 ± 4% +0.8 0.83 ± 3% perf-profile.calltrace.cycles-pp.vma_complete.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +0.9 0.87 ± 5% +0.9 0.88 ± 2% perf-profile.calltrace.cycles-pp.mas_update_gap.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
0.00 +1.1 1.07 ± 9% +1.0 1.04 ± 13% perf-profile.calltrace.cycles-pp.vma_prepare.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +1.1 1.10 ± 6% +1.2 1.16 ± 4% perf-profile.calltrace.cycles-pp.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +2.3 2.26 ± 5% +2.2 2.21 ± 2% perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
0.00 +7.6 7.56 ± 3% +7.5 7.52 perf-profile.calltrace.cycles-pp.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
0.00 +8.6 8.62 ± 4% +8.0 7.97 perf-profile.calltrace.cycles-pp.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
7.74 ± 2% -0.4 7.30 ± 4% -0.6 7.14 ± 3% perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
5.81 ± 2% -0.4 5.43 ± 3% -0.0 5.80 perf-profile.children.cycles-pp.perf_event_mmap_event
6.18 ± 2% -0.3 5.88 ± 3% +0.1 6.29 perf-profile.children.cycles-pp.perf_event_mmap
3.93 -0.2 3.73 ± 3% +0.0 3.96 perf-profile.children.cycles-pp.perf_iterate_sb
0.22 ± 29% -0.1 0.08 ± 17% -0.0 0.19 ± 69% perf-profile.children.cycles-pp.may_expand_vm
0.96 ± 3% -0.1 0.83 ± 4% -0.1 0.84 ± 2% perf-profile.children.cycles-pp.vma_complete
0.61 ± 14% -0.1 0.52 ± 7% -0.0 0.57 ± 5% perf-profile.children.cycles-pp.percpu_counter_add_batch
0.15 ± 7% -0.1 0.08 ± 20% -0.1 0.09 ± 11% perf-profile.children.cycles-pp.brk_test
2.58 ± 5% -0.0 2.54 ± 11% +0.2 2.76 ± 4% perf-profile.children.cycles-pp.menu_select
0.27 ± 9% -0.0 0.26 ± 8% +0.1 0.35 ± 4% perf-profile.children.cycles-pp.syscall_exit_to_user_mode
0.06 ± 49% -0.0 0.06 ± 13% +0.1 0.11 ± 14% perf-profile.children.cycles-pp.syscall_exit_to_user_mode_prepare
0.28 ± 19% -0.0 0.27 ± 16% +0.1 0.36 ± 11% perf-profile.children.cycles-pp.__softirqentry_text_end
1.36 ± 5% -0.0 1.35 ± 13% +0.1 1.49 ± 3% perf-profile.children.cycles-pp.tick_nohz_get_sleep_length
0.08 ± 11% +0.0 0.12 ± 14% -0.0 0.06 ± 48% perf-profile.children.cycles-pp.mas_prev_setup
0.17 ± 12% +0.1 0.27 ± 10% -0.0 0.16 ± 5% perf-profile.children.cycles-pp.mas_wr_store_entry
0.00 +0.2 0.15 ± 11% +0.0 0.00 perf-profile.children.cycles-pp.mas_next_range
0.19 ± 8% +0.2 0.38 ± 10% +0.0 0.22 ± 22% perf-profile.children.cycles-pp.mas_next_slot
0.34 ± 17% +0.3 0.64 ± 6% -0.0 0.33 ± 18% perf-profile.children.cycles-pp.mas_prev_slot
1.70 ± 12% +0.5 2.18 ± 15% +0.4 2.08 ± 10% perf-profile.children.cycles-pp.mas_find
25.16 +0.7 25.83 ± 2% +0.6 25.79 perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
24.86 +0.7 25.56 ± 2% +0.6 25.49 perf-profile.children.cycles-pp.do_syscall_64
23.40 +0.7 24.12 ± 2% +0.6 23.95 perf-profile.children.cycles-pp.__do_sys_brk
0.00 +7.6 7.59 ± 3% +7.6 7.56 perf-profile.children.cycles-pp.vma_expand
0.00 +8.7 8.66 ± 4% +8.0 7.98 perf-profile.children.cycles-pp.vma_merge_new_range
1.61 ± 10% -0.9 0.69 ± 8% -0.8 0.78 ± 6% perf-profile.self.cycles-pp.do_brk_flags
7.64 ± 2% -0.4 7.20 ± 4% -0.6 7.04 ± 3% perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
0.22 ± 30% -0.1 0.08 ± 17% -0.0 0.19 ± 70% perf-profile.self.cycles-pp.may_expand_vm
0.57 ± 15% -0.1 0.46 ± 6% -0.0 0.52 ± 5% perf-profile.self.cycles-pp.percpu_counter_add_batch
0.15 ± 7% -0.1 0.08 ± 20% -0.1 0.09 ± 11% perf-profile.self.cycles-pp.brk_test
0.20 ± 5% -0.0 0.18 ± 4% -0.0 0.19 ± 10% perf-profile.self.cycles-pp.anon_vma_interval_tree_insert
0.19 ± 8% -0.0 0.18 ± 8% +0.0 0.23 ± 5% perf-profile.self.cycles-pp.syscall_exit_to_user_mode
0.06 ± 48% -0.0 0.05 ± 8% +0.0 0.11 ± 17% perf-profile.self.cycles-pp.syscall_exit_to_user_mode_prepare
0.09 ± 11% -0.0 0.09 ± 18% +0.1 0.15 ± 25% perf-profile.self.cycles-pp.security_vm_enough_memory_mm
0.07 ± 18% +0.0 0.10 ± 18% -0.0 0.05 ± 47% perf-profile.self.cycles-pp.mas_prev_setup
0.00 +0.1 0.09 ± 12% +0.0 0.00 perf-profile.self.cycles-pp.mas_next_range
0.36 ± 8% +0.1 0.45 ± 6% +0.1 0.48 ± 6% perf-profile.self.cycles-pp.perf_event_mmap
0.15 ± 13% +0.1 0.25 ± 14% -0.0 0.15 ± 3% perf-profile.self.cycles-pp.mas_wr_store_entry
0.17 ± 11% +0.2 0.37 ± 11% +0.0 0.20 ± 23% perf-profile.self.cycles-pp.mas_next_slot
0.34 ± 17% +0.3 0.64 ± 6% -0.0 0.33 ± 18% perf-profile.self.cycles-pp.mas_prev_slot
0.00 +0.3 0.33 ± 5% +0.2 0.22 ± 12% perf-profile.self.cycles-pp.vma_merge_new_range
0.00 +0.8 0.81 ± 9% +0.7 0.69 ± 12% perf-profile.self.cycles-pp.vma_expand