Re: [linus:master] [mm] cacded5e42: aim9.brk_test.ops_per_sec -5.0% regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi, Lorenzo,

On Wed, Oct 09, 2024 at 10:24:58PM +0100, Lorenzo Stoakes wrote:
> On Wed, Oct 09, 2024 at 02:44:30PM +0800, Oliver Sang wrote:
> [snip]
> > >
> > > I will look into this now, if I provide patches would you be able to test
> > > them using the same boxes? It'd be much appreciated!
> >
> > sure! that's our pleasure!
> >
> 
> Hi Oliver,
> 
> Thanks so much for this, could you give the below a try? I've not tried to
> seriously test it locally yet, so it'd be good to set your test machines on
> it.
> 
> If this doesn't help it suggests call stack/branching might be a thing here
> in which case I have other approaches I can take before we have to
> duplicate this code.
> 
> This patch is against the mm-unstable branch in Andrew's tree [0] but
> hopefully should apply fine to Linus's too.
> 
> [0]:https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/
> 
> Thanks again!

you are welcome!

I found the patch could be applied directly on cacded5e42, so I did it.
this is our normal practice that we want to avoid impacts from other commits.

but if your patch should reply on some new patches in mm-unstable or mainline,
please let me know. I could reapply and retest.

I mentioned patch base since I found by my applyment upon cacded5e42, your
patch seems not have obvious performance impact, still have similar regression.

for brief, I just list 2 examples here. all tests and full data are attached
as fc21959f74bc11-cacded5e42b960-2e71337ac26478

(1)

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")
  2e71337ac26478 ("mm: explicitly enable an expand-only merge mode for brk()")

fc21959f74bc1138 cacded5e42b9609b07b22d80c10 2e71337ac2647889d3d9d76a5ce
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
   3540976            -6.4%    3314159            -6.7%    3302864        aim9.brk_test.ops_per_sec


(2) which is using same Ivy Bridge-EP in our original report
(test machine: 48 threads 2 sockets Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz (Ivy Bridge-EP) with 64G memory)

=========================================================================================
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")
  2e71337ac26478 ("mm: explicitly enable an expand-only merge mode for brk()")

fc21959f74bc1138 cacded5e42b9609b07b22d80c10 2e71337ac2647889d3d9d76a5ce
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
   1322908            -5.0%    1256536            -4.1%    1268145        aim9.brk_test.ops_per_sec

> 
> Best, Lorenzo
> 
> 
> ----8<----
> From 7eb4aa421b357668bc44405c58b0444abf44334a Mon Sep 17 00:00:00 2001
> From: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
> Date: Wed, 9 Oct 2024 21:57:03 +0100
> Subject: [PATCH] mm: explicitly enable an expand-only merge mode for brk()
> 
> Try to do less work on brk() to improve perf.
> ---
>  mm/mmap.c |  1 +
>  mm/vma.c  | 25 ++++++++++++++++---------
>  mm/vma.h  | 11 +++++++++++
>  3 files changed, 28 insertions(+), 9 deletions(-)
> 
> diff --git a/mm/mmap.c b/mm/mmap.c
> index 02f7b45c3076..c2c68ef45a3b 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -1740,6 +1740,7 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma,
>  	if (vma && vma->vm_end == addr) {
>  		VMG_STATE(vmg, mm, vmi, addr, addr + len, flags, PHYS_PFN(addr));
> 
> +		vmg.mode = VMA_MERGE_MODE_EXPAND_ONLY;
>  		vmg.prev = vma;
>  		vma_iter_next_range(vmi);
> 
> diff --git a/mm/vma.c b/mm/vma.c
> index 749c4881fd60..f525a0750c41 100644
> --- a/mm/vma.c
> +++ b/mm/vma.c
> @@ -561,6 +561,7 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
>  	unsigned long end = vmg->end;
>  	pgoff_t pgoff = vmg->pgoff;
>  	pgoff_t pglen = PHYS_PFN(end - start);
> +	bool expand_only = vmg_mode_expand_only(vmg);
>  	bool can_merge_left, can_merge_right;
> 
>  	mmap_assert_write_locked(vmg->mm);
> @@ -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 = !expand_only && can_vma_merge_right(vmg, can_merge_left);
> 
>  	/* If we can merge with the next VMA, adjust vmg accordingly. */
>  	if (can_merge_right) {
> @@ -603,13 +604,18 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg)
>  		return vmg->vma;
>  	}
> 
> -	/* 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);
> +	/*
> +	 * Unless in expand only case and expansion failed, reset state.
> +	 * Allows us to retry merge later.
> +	 */
> +	if (!expand_only) {
> +		vmg->vma = NULL;
> +		vmg->start = start;
> +		vmg->end = end;
> +		vmg->pgoff = pgoff;
> +		if (vmg->vma == prev)
> +			vma_iter_set(vmg->vmi, start);
> +	}
> 
>  	return NULL;
>  }
> @@ -641,7 +647,8 @@ int vma_expand(struct vma_merge_struct *vmg)
>  	mmap_assert_write_locked(vmg->mm);
> 
>  	vma_start_write(vma);
> -	if (next && (vma != next) && (vmg->end == next->vm_end)) {
> +	if (!vmg_mode_expand_only(vmg) && next &&
> +	    (vma != next) && (vmg->end == next->vm_end)) {
>  		int ret;
> 
>  		remove_next = true;
> diff --git a/mm/vma.h b/mm/vma.h
> index 82354fe5edd0..14224b36a979 100644
> --- a/mm/vma.h
> +++ b/mm/vma.h
> @@ -52,6 +52,11 @@ struct vma_munmap_struct {
>  	unsigned long data_vm;
>  };
> 
> +enum vma_merge_mode {
> +	VMA_MERGE_MODE_NORMAL,
> +	VMA_MERGE_MODE_EXPAND_ONLY,
> +};
> +
>  enum vma_merge_state {
>  	VMA_MERGE_START,
>  	VMA_MERGE_ERROR_NOMEM,
> @@ -75,9 +80,15 @@ struct vma_merge_struct {
>  	struct mempolicy *policy;
>  	struct vm_userfaultfd_ctx uffd_ctx;
>  	struct anon_vma_name *anon_name;
> +	enum vma_merge_mode mode;
>  	enum vma_merge_state state;
>  };
> 
> +static inline bool vmg_mode_expand_only(struct vma_merge_struct *vmg)
> +{
> +	return vmg->mode == VMA_MERGE_MODE_EXPAND_ONLY;
> +}
> +
>  static inline bool vmg_nomem(struct vma_merge_struct *vmg)
>  {
>  	return vmg->state == VMA_MERGE_ERROR_NOMEM;
> --
> 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")
  2e71337ac26478 ("mm: explicitly enable an expand-only merge mode for brk()")

fc21959f74bc1138 cacded5e42b9609b07b22d80c10 2e71337ac2647889d3d9d76a5ce
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
   3220697            -6.0%    3028867            -6.4%    3014713        aim9.brk_test.ops_per_sec
     24.58            -3.9%      23.63            -5.5%      23.24        time.user_time
    119459            -3.2%     115601            -2.9%     115971        proc-vmstat.nr_active_anon
    120943            -3.2%     117079            -2.9%     117450        proc-vmstat.nr_shmem
    119459            -3.2%     115601            -2.9%     115971        proc-vmstat.nr_zone_active_anon
      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%   +5144.5%     171.45 ±216%  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.01 ± 70%    +100.0%       0.01 ± 84%   +3512.9%       0.19 ±199%  perf-sched.sch_delay.max.ms.irqentry_exit_to_user_mode.asm_sysvec_apic_timer_interrupt.[unknown]
      0.93 ± 16%      -4.1%       0.89 ± 14%     -25.0%       0.70 ± 11%  perf-sched.sch_delay.max.ms.pipe_read.vfs_read.ksys_read.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
      0.01 ± 70%    +100.0%       0.01 ± 84%   +3512.9%       0.19 ±199%  perf-sched.wait_time.max.ms.irqentry_exit_to_user_mode.asm_sysvec_apic_timer_interrupt.[unknown]
      0.02 ±  2%      -4.1%       0.02 ±  2%      -6.3%       0.02 ±  4%  perf-stat.i.MPKI
 1.767e+09            +4.2%  1.841e+09            +3.7%  1.833e+09        perf-stat.i.branch-instructions
      0.45            -6.2%       0.42            -5.9%       0.42        perf-stat.i.cpi
 8.347e+09            +6.6%    8.9e+09            +6.2%  8.863e+09        perf-stat.i.instructions
      2.27            +6.6%       2.42            +6.0%       2.41        perf-stat.i.ipc
      0.03 ±  4%      -2.0%       0.03 ±  3%      -7.8%       0.03 ±  4%  perf-stat.overall.MPKI
      0.44            -5.9%       0.42            -5.4%       0.42        perf-stat.overall.cpi
      2.25            +6.2%       2.39            +5.7%       2.38        perf-stat.overall.ipc
 1.761e+09            +4.2%  1.834e+09            +3.7%  1.827e+09        perf-stat.ps.branch-instructions
 8.319e+09            +6.6%   8.87e+09            +6.2%  8.834e+09        perf-stat.ps.instructions
 2.519e+12            +6.4%   2.68e+12            +5.8%  2.665e+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            -1.4       16.92        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            -1.3       15.05        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            -1.2        8.93        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            -1.3       10.64        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.2        4.88 ±  3%  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.1        5.28 ±  3%  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.1        3.52 ±  3%  perf-profile.calltrace.cycles-pp.thp_get_unmapped_area_vmflags.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64
      0.60 ±  5%      -0.1        0.46 ± 45%      -0.2        0.36 ± 70%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_safe_stack.brk
      1.66 ±  2%      -0.1        1.56 ±  3%      -0.1        1.60 ±  2%  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 ±  5%  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        5.49        perf-profile.calltrace.cycles-pp.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.97 ±  4%      -0.1        0.91 ±  4%      -0.1        0.91 ±  3%  perf-profile.calltrace.cycles-pp.mas_next_slot.mas_find.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
      4.23 ±  2%      -0.0        4.21            -0.4        3.82        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.2        0.57 ± 44%  perf-profile.calltrace.cycles-pp.strlen.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
      0.00            +0.5        0.47 ± 44%      +0.6        0.58 ±  5%  perf-profile.calltrace.cycles-pp.mas_wr_store_entry.mas_store_prealloc.vma_expand.vma_merge_new_range.do_brk_flags
      0.49 ± 44%      +0.5        1.02 ±  5%      +0.5        1.02 ±  8%  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.6       84.32        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.00            +0.6        0.60 ±  6%      +0.6        0.58 ±  7%  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.66 ±  4%  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.67 ±  8%  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.8        0.80 ±  4%  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.7       80.98        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.76 ±  2%  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.8        0.81 ±  5%  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.7        0.69 ±  7%  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.8        0.84 ±  6%  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%      +1.3        1.32 ±  2%  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%      +1.3        1.32 ±  4%  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.6        1.56 ±  4%  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.9        1.86 ±  2%  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%      +1.6        1.64 ±  4%  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.0        2.04 ±  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.1        2.06 ±  4%  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.4        2.37 ±  2%  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            +2.6       56.28        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.1        3.10 ±  5%  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.6        3.64 ±  3%  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            +3.9        3.86 ±  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.7        5.67 ±  2%  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.4        6.41        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           +28.3       28.33        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           +33.0       33.02        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            -1.5       17.01        perf-profile.children.cycles-pp.perf_event_mmap
      6.54            -1.0        5.54 ±  2%      -0.7        5.90 ±  2%  perf-profile.children.cycles-pp.mas_preallocate
      7.40            -1.0        6.40 ±  2%      -0.6        6.76        perf-profile.children.cycles-pp.mas_store_prealloc
      5.68            -1.0        4.72            -1.0        4.66 ±  3%  perf-profile.children.cycles-pp.up_write
     16.88            -0.9       15.93            -1.4       15.51        perf-profile.children.cycles-pp.perf_event_mmap_event
     10.35            -0.8        9.53            -1.2        9.10        perf-profile.children.cycles-pp.perf_event_mmap_output
     12.16            -0.8       11.35            -1.3       10.86        perf-profile.children.cycles-pp.perf_iterate_sb
      4.02 ±  2%      -0.7        3.32            -0.3        3.72 ±  3%  perf-profile.children.cycles-pp.mas_wr_store_type
      2.97            -0.6        2.37 ±  3%      -0.5        2.45 ±  2%  perf-profile.children.cycles-pp.mas_update_gap
      1.36 ±  8%      -0.6        0.80 ±  4%      -0.5        0.86 ±  4%  perf-profile.children.cycles-pp.can_vma_merge_after
      2.26 ±  2%      -0.5        1.80 ±  2%      -0.4        1.89 ±  2%  perf-profile.children.cycles-pp.mas_leaf_max_gap
      3.71 ±  2%      -0.3        3.44            -0.3        3.42 ±  4%  perf-profile.children.cycles-pp.vma_complete
      5.62 ±  3%      -0.2        5.40 ±  2%      -0.1        5.51 ±  3%  perf-profile.children.cycles-pp.check_brk_limits
      3.83 ±  2%      -0.2        3.65 ±  2%      -0.2        3.67 ±  3%  perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
      0.66 ±  7%      -0.1        0.55 ±  9%      -0.1        0.54 ±  6%  perf-profile.children.cycles-pp.may_expand_vm
      1.98 ±  3%      -0.1        1.86 ±  2%      -0.3        1.71 ±  4%  perf-profile.children.cycles-pp.init_multi_vma_prep
      0.78 ±  3%      -0.1        0.69 ±  4%      -0.1        0.69 ±  5%  perf-profile.children.cycles-pp.kfree
      0.15 ± 12%      -0.1        0.08 ± 13%      -0.1        0.07 ± 23%  perf-profile.children.cycles-pp.arch_vma_name
      6.23 ±  2%      -0.1        6.17            -0.4        5.78        perf-profile.children.cycles-pp.mas_find
      0.60 ±  6%      -0.1        0.54 ±  8%      -0.1        0.51 ±  7%  perf-profile.children.cycles-pp.entry_SYSCALL_64_safe_stack
      4.32 ±  2%      -0.0        4.30            -0.4        3.92        perf-profile.children.cycles-pp.mas_walk
      0.20 ±  8%      -0.0        0.17 ±  7%      -0.0        0.15 ± 14%  perf-profile.children.cycles-pp.__x64_sys_brk
      0.26 ±  5%      -0.0        0.24 ±  9%      -0.0        0.22 ±  9%  perf-profile.children.cycles-pp.__rb_insert_augmented
      0.23 ±  7%      +0.0        0.24 ± 18%      +0.0        0.27 ±  6%  perf-profile.children.cycles-pp.hrtimer_interrupt
      0.24 ±  7%      +0.0        0.24 ± 18%      +0.0        0.27 ±  5%  perf-profile.children.cycles-pp.__sysvec_apic_timer_interrupt
      0.58 ±  7%      +0.1        0.66 ±  7%      +0.1        0.67 ±  2%  perf-profile.children.cycles-pp.mas_wr_slot_store
      0.19 ± 10%      +0.1        0.31 ± 10%      +0.1        0.32 ± 16%  perf-profile.children.cycles-pp.rb_next
      0.50 ±  4%      +0.1        0.62 ±  7%      +0.2        0.66 ±  7%  perf-profile.children.cycles-pp.mas_wr_store_entry
      0.40 ±  6%      +0.1        0.53 ±  6%      +0.1        0.54 ±  6%  perf-profile.children.cycles-pp.strnlen
      0.58 ± 13%      +0.2        0.75 ±  4%      +0.1        0.72 ± 13%  perf-profile.children.cycles-pp.strlen
      0.96 ±  6%      +0.2        1.14 ±  3%      +0.2        1.16 ±  3%  perf-profile.children.cycles-pp.rcu_all_qs
      0.68 ±  3%      +0.3        0.98 ±  5%      +0.3        1.01 ±  6%  perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
      1.77 ±  4%      +0.3        2.09            +0.3        2.08 ±  4%  perf-profile.children.cycles-pp.__cond_resched
      0.00            +0.4        0.36 ±  9%      +0.4        0.36 ±  8%  perf-profile.children.cycles-pp.mas_next_setup
      0.36 ±  8%      +0.4        0.76 ±  3%      +0.4        0.76 ±  9%  perf-profile.children.cycles-pp.percpu_counter_add_batch
      0.48 ±  7%      +0.4        0.90 ±  6%      +0.4        0.86 ±  4%  perf-profile.children.cycles-pp.mas_prev_setup
     84.69            +0.5       85.19            +0.6       85.27        perf-profile.children.cycles-pp.do_syscall_64
      0.67 ±  9%      +0.6        1.24 ±  4%      +0.6        1.27 ±  7%  perf-profile.children.cycles-pp.__vm_enough_memory
      3.81            +0.6        4.39            +0.6        4.40 ±  3%  perf-profile.children.cycles-pp.down_write
     80.98            +0.7       81.64            +0.7       81.71        perf-profile.children.cycles-pp.__do_sys_brk
      1.05 ±  4%      +0.7        1.72 ±  3%      +0.8        1.82 ±  3%  perf-profile.children.cycles-pp.mas_next_slot
      0.00            +0.7        0.70 ±  6%      +0.7        0.69 ±  5%  perf-profile.children.cycles-pp.mas_next_range
      1.11 ±  4%      +1.0        2.10 ±  3%      +0.8        1.92 ±  3%  perf-profile.children.cycles-pp.mas_prev
      2.82 ±  3%      +1.2        4.07            +1.3        4.09 ±  2%  perf-profile.children.cycles-pp.vma_prepare
      1.54 ±  4%      +1.3        2.88 ±  3%      +1.3        2.84 ±  3%  perf-profile.children.cycles-pp.mas_prev_slot
     54.97            +1.6       56.61            +1.8       56.79        perf-profile.children.cycles-pp.do_brk_flags
      0.00           +28.6       28.64           +29.2       29.16        perf-profile.children.cycles-pp.vma_expand
      0.00           +32.9       32.91           +33.4       33.37        perf-profile.children.cycles-pp.vma_merge_new_range
      5.90 ±  2%      -3.5        2.37 ±  4%      -3.4        2.55        perf-profile.self.cycles-pp.do_brk_flags
      5.36 ±  2%      -1.0        4.38            -1.0        4.36 ±  3%  perf-profile.self.cycles-pp.up_write
     10.18            -0.8        9.36            -1.2        8.94        perf-profile.self.cycles-pp.perf_event_mmap_output
      3.86 ±  2%      -0.7        3.18            -0.3        3.57 ±  3%  perf-profile.self.cycles-pp.mas_wr_store_type
      1.28 ±  7%      -0.5        0.74 ±  4%      -0.5        0.78 ±  4%  perf-profile.self.cycles-pp.can_vma_merge_after
      3.02 ±  2%      -0.5        2.52 ±  4%      -0.3        2.75 ±  3%  perf-profile.self.cycles-pp.mas_store_prealloc
      2.19 ±  2%      -0.4        1.78 ±  2%      -0.3        1.87 ±  2%  perf-profile.self.cycles-pp.mas_leaf_max_gap
      5.03            -0.4        4.67            -0.1        4.92 ±  2%  perf-profile.self.cycles-pp.__do_sys_brk
      2.60 ±  4%      -0.3        2.27 ±  5%      -0.3        2.25 ±  2%  perf-profile.self.cycles-pp.mas_preallocate
      1.89 ±  4%      -0.3        1.59 ±  4%      -0.3        1.62 ±  5%  perf-profile.self.cycles-pp.perf_event_mmap_event
      1.71 ±  4%      -0.2        1.53 ±  3%      -0.2        1.50 ±  5%  perf-profile.self.cycles-pp.entry_SYSCALL_64
      0.74 ±  3%      -0.2        0.57 ±  7%      -0.2        0.56 ±  6%  perf-profile.self.cycles-pp.mas_update_gap
      1.89 ±  4%      -0.2        1.73 ±  2%      -0.3        1.62 ±  4%  perf-profile.self.cycles-pp.init_multi_vma_prep
      1.58 ±  4%      -0.1        1.47 ±  3%      -0.2        1.42 ±  4%  perf-profile.self.cycles-pp.perf_event_mmap
      1.27 ±  2%      -0.1        1.16 ±  2%      -0.1        1.19 ±  9%  perf-profile.self.cycles-pp.vma_complete
      1.20 ±  2%      -0.1        1.12 ±  4%      -0.1        1.08 ±  2%  perf-profile.self.cycles-pp.do_syscall_64
      0.69 ±  2%      -0.1        0.61 ±  4%      -0.1        0.60 ±  5%  perf-profile.self.cycles-pp.kfree
      0.60 ±  6%      -0.1        0.54 ±  8%      -0.1        0.51 ±  7%  perf-profile.self.cycles-pp.entry_SYSCALL_64_safe_stack
      1.60 ±  2%      -0.1        1.56 ±  6%      -0.1        1.55        perf-profile.self.cycles-pp.down_write_killable
      4.24 ±  2%      -0.0        4.20            -0.4        3.84        perf-profile.self.cycles-pp.mas_walk
      0.50 ±  7%      -0.0        0.47 ±  9%      -0.1        0.45 ±  5%  perf-profile.self.cycles-pp.may_expand_vm
      0.42 ±  4%      +0.1        0.49 ±  7%      +0.1        0.53 ±  6%  perf-profile.self.cycles-pp.mas_wr_store_entry
      0.15 ± 10%      +0.1        0.24 ± 11%      +0.1        0.23 ± 19%  perf-profile.self.cycles-pp.rb_next
      0.58 ±  8%      +0.1        0.68 ±  5%      +0.1        0.71 ±  6%  perf-profile.self.cycles-pp.rcu_all_qs
      0.37 ±  5%      +0.1        0.50 ±  7%      +0.1        0.50 ±  4%  perf-profile.self.cycles-pp.strnlen
      0.54 ± 13%      +0.2        0.68 ±  4%      +0.1        0.64 ± 14%  perf-profile.self.cycles-pp.strlen
      1.01 ±  6%      +0.2        1.17 ±  2%      +0.1        1.11 ±  4%  perf-profile.self.cycles-pp.__cond_resched
      0.66 ±  6%      +0.2        0.83 ±  2%      +0.2        0.84 ±  3%  perf-profile.self.cycles-pp.vma_prepare
      0.46 ±  6%      +0.2        0.67 ±  7%      +0.2        0.70 ±  5%  perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
      0.34 ± 12%      +0.2        0.54 ±  3%      +0.2        0.58 ±  9%  perf-profile.self.cycles-pp.__vm_enough_memory
      0.00            +0.3        0.29 ± 10%      +0.3        0.28 ± 11%  perf-profile.self.cycles-pp.mas_next_setup
      0.32 ± 11%      +0.3        0.62 ±  7%      +0.3        0.58 ±  8%  perf-profile.self.cycles-pp.mas_prev_setup
      0.23 ±  7%      +0.3        0.55 ±  6%      +0.3        0.55 ± 10%  perf-profile.self.cycles-pp.percpu_counter_add_batch
      0.00            +0.4        0.35 ±  7%      +0.3        0.30 ±  7%  perf-profile.self.cycles-pp.mas_next_range
      2.65 ±  3%      +0.4        3.00 ±  2%      +0.4        3.05 ±  2%  perf-profile.self.cycles-pp.down_write
      0.64 ±  5%      +0.6        1.21 ±  3%      +0.5        1.12 ±  5%  perf-profile.self.cycles-pp.mas_prev
      0.89 ±  5%      +0.7        1.54 ±  3%      +0.8        1.64 ±  4%  perf-profile.self.cycles-pp.mas_next_slot
      1.46 ±  4%      +1.3        2.72 ±  3%      +1.2        2.70 ±  3%  perf-profile.self.cycles-pp.mas_prev_slot
      0.00            +1.3        1.33 ±  2%      +1.2        1.16 ±  4%  perf-profile.self.cycles-pp.vma_merge_new_range
      0.00            +3.5        3.54 ±  3%      +3.6        3.55 ±  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-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")
  2e71337ac26478 ("mm: explicitly enable an expand-only merge mode for brk()")

fc21959f74bc1138 cacded5e42b9609b07b22d80c10 2e71337ac2647889d3d9d76a5ce
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
   3669298            -6.5%    3430070            -6.8%    3420919        aim9.brk_test.ops_per_sec
     23.53            -4.9%      22.38            -6.4%      22.03        time.user_time
    491107 ±  5%      -7.2%     455906 ±  6%      -5.5%     464283 ±  6%  meminfo.Active
    491011 ±  5%      -7.2%     455810 ±  6%      -5.5%     464155 ±  6%  meminfo.Active(anon)
    505666 ±  5%      -7.0%     470410 ±  5%      -5.3%     478879 ±  6%  meminfo.Shmem
    122753 ±  5%      -7.1%     113979 ±  6%      -5.5%     116019 ±  6%  proc-vmstat.nr_active_anon
    899298            -1.0%     890515            -0.7%     892592        proc-vmstat.nr_file_pages
    126417 ±  5%      -6.9%     117634 ±  5%      -5.3%     119701 ±  6%  proc-vmstat.nr_shmem
    122753 ±  5%      -7.1%     113979 ±  6%      -5.5%     116019 ±  6%  proc-vmstat.nr_zone_active_anon
    595.50 ± 22%     +53.6%     914.50 ± 12%     +17.1%     697.33 ± 20%  proc-vmstat.numa_hint_faults_local
     17958            -4.3%      17188 ±  2%      -4.3%      17180 ±  2%  proc-vmstat.pgactivate
   1817569 ± 69%     -43.1%    1035076 ±127%     +63.5%    2972153 ±  3%  numa-meminfo.node0.FilePages
     16515 ± 73%     -29.4%      11657 ±108%     +79.5%      29650        numa-meminfo.node0.Mapped
   1811617 ± 69%     -43.2%    1029482 ±128%     +63.8%    2967951 ±  3%  numa-meminfo.node0.Unevictable
     40474 ± 40%     -61.8%      15444 ± 40%     -50.4%      20065 ± 59%  numa-meminfo.node1.KReclaimable
     40474 ± 40%     -61.8%      15444 ± 40%     -50.4%      20065 ± 59%  numa-meminfo.node1.SReclaimable
    484115 ±  6%      -7.3%     448760 ±  6%     -10.1%     435387 ± 11%  numa-meminfo.node3.Active
    484083 ±  6%      -7.3%     448760 ±  6%     -10.1%     435387 ± 11%  numa-meminfo.node3.Active(anon)
    485577 ±  6%      -7.3%     450224 ±  6%     -10.0%     436799 ± 11%  numa-meminfo.node3.Shmem
    454393 ± 69%     -43.1%     258770 ±127%     +63.5%     743038 ±  3%  numa-vmstat.node0.nr_file_pages
      4178 ± 73%     -28.5%       2988 ±107%     +81.6%       7590 ±  2%  numa-vmstat.node0.nr_mapped
    452904 ± 69%     -43.2%     257370 ±128%     +63.8%     741987 ±  3%  numa-vmstat.node0.nr_unevictable
    452904 ± 69%     -43.2%     257370 ±128%     +63.8%     741987 ±  3%  numa-vmstat.node0.nr_zone_unevictable
     10118 ± 40%     -61.8%       3861 ± 40%     -50.4%       5016 ± 59%  numa-vmstat.node1.nr_slab_reclaimable
    121015 ±  6%      -7.3%     112196 ±  6%     -10.1%     108836 ± 11%  numa-vmstat.node3.nr_active_anon
    121371 ±  6%      -7.3%     112537 ±  6%     -10.1%     109168 ± 11%  numa-vmstat.node3.nr_shmem
    121015 ±  6%      -7.3%     112196 ±  6%     -10.1%     108836 ± 11%  numa-vmstat.node3.nr_zone_active_anon
      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            +2.8%   2.13e+09        perf-stat.i.branch-instructions
      0.48            -4.2%       0.46            -4.9%       0.45        perf-stat.i.cpi
 4.717e+09            -0.7%  4.686e+09            +0.1%  4.723e+09        perf-stat.i.cpu-cycles
 9.794e+09            +5.1%   1.03e+10            +5.2%   1.03e+10        perf-stat.i.instructions
      2.15            +5.8%       2.28            +5.5%       2.27        perf-stat.i.ipc
      0.34 ±  3%      -0.0        0.33            -0.0        0.34        perf-stat.overall.branch-miss-rate%
      0.48            -5.5%       0.46            -4.8%       0.46        perf-stat.overall.cpi
      2.08            +5.8%       2.20            +5.1%       2.18        perf-stat.overall.ipc
 2.063e+09            +2.8%   2.12e+09            +2.8%  2.122e+09        perf-stat.ps.branch-instructions
 4.703e+09            -0.7%  4.672e+09            +0.1%  4.709e+09        perf-stat.ps.cpu-cycles
 9.758e+09            +5.1%  1.026e+10            +5.2%  1.026e+10        perf-stat.ps.instructions
 2.944e+12            +5.5%  3.106e+12            +5.0%  3.092e+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
     17.43            -0.7       16.76            -1.0       16.39        perf-profile.calltrace.cycles-pp.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
      9.69 ±  2%      -0.6        9.07            -1.0        8.73        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.9       10.35        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.8       14.73        perf-profile.calltrace.cycles-pp.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk.do_syscall_64
      2.76            -0.1        2.62 ±  3%      -0.2        2.60 ±  3%  perf-profile.calltrace.cycles-pp.userfaultfd_unmap_complete.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.84 ±  4%      -0.1        0.74 ±  8%      -0.1        0.70 ±  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
      0.75 ±  7%      -0.1        0.68 ± 10%      -0.1        0.64 ± 10%  perf-profile.calltrace.cycles-pp.kthread.ret_from_fork.ret_from_fork_asm
      0.75 ±  7%      -0.1        0.68 ± 10%      -0.1        0.64 ± 10%  perf-profile.calltrace.cycles-pp.ret_from_fork.ret_from_fork_asm
      0.75 ±  7%      -0.1        0.68 ± 10%      -0.1        0.64 ± 10%  perf-profile.calltrace.cycles-pp.ret_from_fork_asm
      1.12 ±  5%      +0.2        1.29 ±  3%      +0.2        1.29 ±  2%  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.4        1.07 ±  4%  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.48 ± 45%      +0.5        0.54 ±  6%  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.5        0.54 ±  4%      +0.4        0.36 ± 70%  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.5        0.48 ± 45%  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.8        0.80 ±  4%  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.71 ±  5%  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.8        0.76 ±  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.76 ±  2%      +0.8        0.77 ±  7%  perf-profile.calltrace.cycles-pp.vma_adjust_trans_huge.vma_expand.vma_merge_new_range.do_brk_flags.__do_sys_brk
     81.90            +0.8       82.67            +0.7       82.64        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
      0.00            +0.8        0.80 ±  3%      +0.7        0.65 ±  8%  perf-profile.calltrace.cycles-pp.mas_prev.vma_merge_new_range.do_brk_flags.__do_sys_brk.do_syscall_64
     80.94            +0.8       81.76            +0.8       81.74        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.00            +0.8        0.82 ±  3%      +0.9        0.87 ±  6%  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.9       78.40        perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.00            +1.3        1.26 ±  3%      +1.3        1.33 ±  5%  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.3        1.30 ±  4%  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.56 ±  5%  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.7        1.66 ±  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%      +1.9        1.94 ±  4%  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.15 ±  4%  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 ±  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.37 ±  2%      +2.4        2.41 ±  3%  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.7       54.52        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%      +3.2        3.17        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.08 ±  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            +4.0        3.96 ±  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            +5.2        5.18 ±  2%  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.1        6.10        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           +27.4       27.39        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           +32.0       32.01        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.1        5.40 ±  2%  perf-profile.children.cycles-pp.mas_preallocate
      5.54            -0.9        4.64            -0.9        4.63 ±  3%  perf-profile.children.cycles-pp.up_write
      3.99            -0.9        3.10 ±  2%      -0.8        3.24        perf-profile.children.cycles-pp.mas_wr_store_type
     17.57            -0.7       16.87            -1.1       16.50        perf-profile.children.cycles-pp.perf_event_mmap
      9.85 ±  2%      -0.6        9.22            -1.0        8.90        perf-profile.children.cycles-pp.perf_event_mmap_output
      6.82 ±  2%      -0.6        6.22            -0.4        6.43        perf-profile.children.cycles-pp.mas_store_prealloc
      1.33 ±  5%      -0.6        0.75 ±  4%      -0.5        0.82 ±  5%  perf-profile.children.cycles-pp.can_vma_merge_after
     11.53 ±  2%      -0.6       10.96            -1.0       10.58        perf-profile.children.cycles-pp.perf_iterate_sb
     16.03            -0.5       15.50            -0.8       15.18        perf-profile.children.cycles-pp.perf_event_mmap_event
      2.65 ±  3%      -0.2        2.40 ±  3%      -0.2        2.44 ±  3%  perf-profile.children.cycles-pp.mas_update_gap
      2.18 ±  2%      -0.2        1.94 ±  3%      -0.2        1.99 ±  3%  perf-profile.children.cycles-pp.mas_leaf_max_gap
      2.85            -0.2        2.70 ±  3%      -0.2        2.68 ±  3%  perf-profile.children.cycles-pp.userfaultfd_unmap_complete
      3.52            -0.1        3.38 ±  2%      -0.1        3.38 ±  2%  perf-profile.children.cycles-pp.vma_complete
      0.62 ±  7%      -0.1        0.48 ±  9%      -0.1        0.50 ±  7%  perf-profile.children.cycles-pp.may_expand_vm
      1.92 ±  2%      -0.1        1.79 ±  3%      -0.2        1.73 ±  3%  perf-profile.children.cycles-pp.init_multi_vma_prep
      1.05 ±  3%      -0.1        0.95 ±  6%      -0.1        0.91 ±  6%  perf-profile.children.cycles-pp.security_vm_enough_memory_mm
      0.75 ±  7%      -0.1        0.68 ± 10%      -0.1        0.64 ± 10%  perf-profile.children.cycles-pp.kthread
      0.40 ±  6%      -0.1        0.35 ±  9%      -0.0        0.38 ±  8%  perf-profile.children.cycles-pp.syscall_exit_to_user_mode_prepare
      0.35 ±  2%      -0.0        0.33 ±  7%      -0.0        0.31 ±  6%  perf-profile.children.cycles-pp.brk_test
      0.11 ± 20%      +0.0        0.14 ±  8%      +0.0        0.13 ±  6%  perf-profile.children.cycles-pp.anon_vma_interval_tree_remove
      0.52 ±  3%      +0.0        0.56 ±  4%      +0.0        0.54 ± 10%  perf-profile.children.cycles-pp.mas_wr_slot_store
      0.20 ± 11%      +0.1        0.28 ±  7%      +0.1        0.31 ±  5%  perf-profile.children.cycles-pp.rb_next
      0.49 ±  3%      +0.1        0.61 ±  4%      +0.2        0.64 ±  7%  perf-profile.children.cycles-pp.mas_wr_store_entry
      0.98 ±  4%      +0.1        1.11 ±  3%      +0.1        1.11 ±  4%  perf-profile.children.cycles-pp.rcu_all_qs
      0.39 ±  7%      +0.2        0.55 ±  7%      +0.2        0.60 ±  6%  perf-profile.children.cycles-pp.strnlen
      1.18 ±  5%      +0.2        1.37 ±  3%      +0.2        1.36 ±  2%  perf-profile.children.cycles-pp.sized_strscpy
      1.78 ±  3%      +0.3        2.04 ±  2%      +0.2        2.02 ±  3%  perf-profile.children.cycles-pp.__cond_resched
      0.00            +0.3        0.33 ±  4%      +0.3        0.31 ± 10%  perf-profile.children.cycles-pp.mas_next_setup
      0.41 ±  9%      +0.4        0.76 ±  7%      +0.4        0.80 ±  6%  perf-profile.children.cycles-pp.percpu_counter_add_batch
      0.58 ±  4%      +0.4        0.96 ±  2%      +0.4        1.01 ±  6%  perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
      0.44 ± 17%      +0.4        0.85 ±  7%      +0.4        0.80 ±  5%  perf-profile.children.cycles-pp.mas_prev_setup
      4.11 ±  2%      +0.4        4.52            +0.5        4.58        perf-profile.children.cycles-pp.down_write
      0.74 ±  6%      +0.6        1.29 ±  5%      +0.6        1.32 ±  3%  perf-profile.children.cycles-pp.__vm_enough_memory
      0.00            +0.7        0.67 ±  6%      +0.6        0.63 ±  7%  perf-profile.children.cycles-pp.mas_next_range
      0.95 ±  5%      +0.7        1.64 ±  2%      +0.9        1.84 ±  3%  perf-profile.children.cycles-pp.mas_next_slot
     78.23            +0.9       79.17            +0.8       79.07        perf-profile.children.cycles-pp.__do_sys_brk
      1.02 ± 14%      +1.0        1.99 ±  4%      +0.8        1.86 ±  6%  perf-profile.children.cycles-pp.mas_prev
      2.89 ±  3%      +1.2        4.10            +1.3        4.19 ±  2%  perf-profile.children.cycles-pp.vma_prepare
      1.38 ± 12%      +1.3        2.73 ±  4%      +1.3        2.73 ±  3%  perf-profile.children.cycles-pp.mas_prev_slot
     53.08            +1.9       55.03            +1.9       54.96        perf-profile.children.cycles-pp.do_brk_flags
      0.00           +28.0       27.95           +28.2       28.20        perf-profile.children.cycles-pp.vma_expand
      0.00           +32.1       32.10           +32.3       32.32        perf-profile.children.cycles-pp.vma_merge_new_range
      5.69            -3.4        2.34 ±  3%      -3.3        2.36 ±  3%  perf-profile.self.cycles-pp.do_brk_flags
      5.22            -0.9        4.33 ±  2%      -0.9        4.33 ±  3%  perf-profile.self.cycles-pp.up_write
      3.82            -0.9        2.95 ±  3%      -0.7        3.09        perf-profile.self.cycles-pp.mas_wr_store_type
      9.68 ±  2%      -0.6        9.05            -1.0        8.73        perf-profile.self.cycles-pp.perf_event_mmap_output
      1.28 ±  5%      -0.6        0.69 ±  6%      -0.5        0.75 ±  5%  perf-profile.self.cycles-pp.can_vma_merge_after
      2.88 ±  3%      -0.4        2.44 ±  2%      -0.2        2.65 ±  2%  perf-profile.self.cycles-pp.mas_store_prealloc
      2.55            -0.3        2.22 ±  2%      -0.3        2.22 ±  4%  perf-profile.self.cycles-pp.mas_preallocate
      4.98 ±  2%      -0.3        4.70            -0.2        4.76        perf-profile.self.cycles-pp.__do_sys_brk
      2.15 ±  3%      -0.2        1.93 ±  3%      -0.2        1.98 ±  3%  perf-profile.self.cycles-pp.mas_leaf_max_gap
      1.82            -0.2        1.60 ±  4%      -0.2        1.62 ±  3%  perf-profile.self.cycles-pp.perf_event_mmap_event
      1.51 ±  4%      -0.2        1.31 ±  4%      -0.3        1.26        perf-profile.self.cycles-pp.perf_event_mmap
      1.85 ±  2%      -0.2        1.66 ±  3%      -0.2        1.61 ±  3%  perf-profile.self.cycles-pp.init_multi_vma_prep
      2.77            -0.1        2.63 ±  3%      -0.2        2.60 ±  3%  perf-profile.self.cycles-pp.userfaultfd_unmap_complete
      0.75 ±  5%      -0.1        0.67 ±  4%      -0.1        0.65 ±  5%  perf-profile.self.cycles-pp.security_vm_enough_memory_mm
      0.88 ±  2%      -0.0        0.85 ±  3%      -0.1        0.82 ±  4%  perf-profile.self.cycles-pp.entry_SYSCALL_64_after_hwframe
      0.28 ±  5%      -0.0        0.26 ±  8%      -0.0        0.24 ±  8%  perf-profile.self.cycles-pp.brk_test
      0.03 ± 70%      +0.0        0.07 ± 14%      +0.0        0.07 ±  8%  perf-profile.self.cycles-pp.anon_vma_interval_tree_remove
      0.15 ± 12%      +0.1        0.20 ±  5%      +0.1        0.24 ±  6%  perf-profile.self.cycles-pp.rb_next
      0.40 ±  5%      +0.1        0.48 ±  5%      +0.1        0.50 ± 10%  perf-profile.self.cycles-pp.mas_wr_store_entry
      0.34 ±  6%      +0.2        0.50 ±  8%      +0.2        0.54 ±  4%  perf-profile.self.cycles-pp.strnlen
      0.66 ±  4%      +0.2        0.84 ±  5%      +0.1        0.80 ±  4%  perf-profile.self.cycles-pp.vma_prepare
      1.12 ±  5%      +0.2        1.30 ±  3%      +0.2        1.28 ±  2%  perf-profile.self.cycles-pp.sized_strscpy
      3.00 ±  2%      +0.2        3.19 ±  2%      +0.3        3.27 ±  2%  perf-profile.self.cycles-pp.down_write
      0.92 ±  4%      +0.2        1.13 ±  2%      +0.2        1.08 ±  3%  perf-profile.self.cycles-pp.__cond_resched
      0.00            +0.3        0.26 ±  7%      +0.3        0.25 ± 12%  perf-profile.self.cycles-pp.mas_next_setup
      0.28 ±  8%      +0.3        0.54 ±  8%      +0.3        0.56 ±  6%  perf-profile.self.cycles-pp.percpu_counter_add_batch
      0.29 ± 12%      +0.3        0.58 ±  9%      +0.3        0.60 ±  4%  perf-profile.self.cycles-pp.__vm_enough_memory
      0.29 ± 24%      +0.3        0.58 ±  7%      +0.2        0.54 ±  7%  perf-profile.self.cycles-pp.mas_prev_setup
      0.40 ±  4%      +0.3        0.70 ±  2%      +0.3        0.72 ±  8%  perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
      0.00            +0.4        0.36 ±  6%      +0.3        0.28 ± 12%  perf-profile.self.cycles-pp.mas_next_range
      0.58 ± 14%      +0.5        1.12 ±  5%      +0.5        1.10 ±  6%  perf-profile.self.cycles-pp.mas_prev
      0.81 ±  4%      +0.7        1.48 ±  3%      +0.8        1.64 ±  4%  perf-profile.self.cycles-pp.mas_next_slot
      1.32 ± 11%      +1.3        2.59 ±  3%      +1.3        2.60 ±  3%  perf-profile.self.cycles-pp.mas_prev_slot
      0.00            +1.3        1.30 ±  4%      +1.1        1.14 ±  6%  perf-profile.self.cycles-pp.vma_merge_new_range
      0.00            +3.4        3.39            +3.4        3.36        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")
  2e71337ac26478 ("mm: explicitly enable an expand-only merge mode for brk()")

fc21959f74bc1138 cacded5e42b9609b07b22d80c10 2e71337ac2647889d3d9d76a5ce
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
   3540976            -6.4%    3314159            -6.7%    3302864        aim9.brk_test.ops_per_sec
     23.65            -5.8%      22.28            -6.5%      22.10        time.user_time
    568.02 ± 10%      -0.2%     567.09 ± 12%     +18.0%     670.52 ±  8%  sched_debug.cfs_rq:/.avg_vruntime.min
    568.02 ± 10%      -0.2%     567.09 ± 12%     +18.0%     670.52 ±  8%  sched_debug.cfs_rq:/.min_vruntime.min
    111409 ±  2%      -5.1%     105748 ±  3%      -4.9%     105984 ±  2%  proc-vmstat.nr_active_anon
    114711 ±  2%      -5.0%     109006 ±  3%      -4.7%     109341 ±  2%  proc-vmstat.nr_shmem
    111409 ±  2%      -5.1%     105748 ±  3%      -4.9%     105984 ±  2%  proc-vmstat.nr_zone_active_anon
     17422 ±  2%      -5.3%      16494            -1.9%      17084 ±  2%  proc-vmstat.pgactivate
 1.999e+09            +3.2%  2.064e+09            +2.9%  2.057e+09        perf-stat.i.branch-instructions
      0.47            -5.1%       0.44            -4.4%       0.45        perf-stat.i.cpi
 9.452e+09            +5.6%  9.983e+09            +5.3%  9.951e+09        perf-stat.i.instructions
      2.19            +5.8%       2.31            +5.2%       2.30        perf-stat.i.ipc
      0.33 ±  3%      -0.0        0.31            -0.0        0.32        perf-stat.overall.branch-miss-rate%
      0.47            -5.1%       0.45            -4.4%       0.45        perf-stat.overall.cpi
      2.12            +5.4%       2.23            +4.7%       2.21        perf-stat.overall.ipc
 1.991e+09            +3.2%  2.056e+09            +2.9%   2.05e+09        perf-stat.ps.branch-instructions
 9.417e+09            +5.6%  9.946e+09            +5.3%  9.915e+09        perf-stat.ps.instructions
 2.841e+12            +5.7%  3.002e+12            +5.2%  2.988e+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%     -57.7%       0.01 ± 63%  perf-sched.sch_delay.avg.ms.__cond_resched.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.02 ± 38%     +31.7%       0.02 ± 21%     +53.8%       0.03 ± 10%  perf-sched.sch_delay.avg.ms.syscall_exit_to_user_mode.do_syscall_64.entry_SYSCALL_64_after_hwframe.[unknown]
      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%     -69.2%       0.01 ± 74%  perf-sched.sch_delay.max.ms.__cond_resched.down_write_killable.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.01 ±  9%     +33.8%       0.02 ± 18%     +17.5%       0.02 ± 10%  perf-sched.sch_delay.max.ms.__x64_sys_pause.do_syscall_64.entry_SYSCALL_64_after_hwframe.[unknown]
      0.44 ± 49%     -29.7%       0.31 ± 35%    +145.0%       1.09 ± 41%  perf-sched.sch_delay.max.ms.pipe_read.vfs_read.ksys_read.do_syscall_64
      0.08 ± 57%     -69.7%       0.02 ±146%      +6.7%       0.09 ± 66%  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%     +20.5%       0.12 ± 13%  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%      -3.6%       6948 ±  3%  perf-sched.total_wait_and_delay.count.ms
      1533 ±  6%     -10.2%       1377            -2.6%       1493 ±  7%  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%     -57.7%       0.01 ± 63%  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%     -69.2%       0.01 ± 74%  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            -1.5       16.43        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            -1.3       14.78        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            -1.2        8.66        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            -1.2       10.33 ±  2%  perf-profile.calltrace.cycles-pp.perf_iterate_sb.perf_event_mmap_event.perf_event_mmap.do_brk_flags.__do_sys_brk
      5.32            -0.2        5.10 ±  5%      -0.3        5.03        perf-profile.calltrace.cycles-pp.check_brk_limits.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      3.57 ±  2%      -0.1        3.43 ±  3%      -0.2        3.40 ±  3%  perf-profile.calltrace.cycles-pp.thp_get_unmapped_area_vmflags.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64
      4.87            -0.1        4.74 ±  4%      -0.2        4.66 ±  2%  perf-profile.calltrace.cycles-pp.__get_unmapped_area.check_brk_limits.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
      2.76 ±  2%      -0.1        2.66 ±  3%      -0.2        2.58 ±  3%  perf-profile.calltrace.cycles-pp.userfaultfd_unmap_complete.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      1.11 ± 15%      -0.1        1.04 ±  4%      -0.1        0.96 ±  5%  perf-profile.calltrace.cycles-pp.cpuidle_enter_state.cpuidle_enter.cpuidle_idle_call.do_idle.cpu_startup_entry
      0.64 ±  4%      +0.4        1.06 ±  2%      +0.4        1.06 ±  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.6        0.56 ±  5%      +0.6        0.56 ±  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.5        0.47 ± 46%  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.6        0.58 ±  3%  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.71 ±  5%  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.8        0.78 ±  6%  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.7        0.74 ±  8%  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.7        0.74 ±  7%  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.7        0.70 ±  4%  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.86 ±  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.5       79.46        perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.00            +1.3        1.28 ±  2%      +1.3        1.30 ±  5%  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.4        1.36 ±  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.64 ±  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.7        1.73 ±  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.89 ±  4%      +1.9        1.90 ±  5%  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.2        2.17 ±  2%  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.1        2.14 ±  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.43 ±  4%      +2.4        2.40 ±  4%  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            +2.7       55.48        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.4        3.38 ±  2%  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.2        3.18 ±  5%  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 ±  2%  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.4        5.39        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.2        6.15        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           +28.1       28.06        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           +32.7       32.73        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            -0.8        5.64        perf-profile.children.cycles-pp.mas_preallocate
     18.11            -1.1       16.99            -1.6       16.55        perf-profile.children.cycles-pp.perf_event_mmap
      4.01 ±  2%      -1.0        3.06            -0.6        3.45 ±  2%  perf-profile.children.cycles-pp.mas_wr_store_type
     16.54            -0.9       15.60            -1.3       15.27        perf-profile.children.cycles-pp.perf_event_mmap_event
     10.02            -0.8        9.18            -1.2        8.80        perf-profile.children.cycles-pp.perf_event_mmap_output
      5.61            -0.8        4.77            -0.8        4.80 ±  2%  perf-profile.children.cycles-pp.up_write
     11.80            -0.8       10.97            -1.2       10.57 ±  2%  perf-profile.children.cycles-pp.perf_iterate_sb
      1.39            -0.6        0.81 ±  3%      -0.6        0.81 ±  6%  perf-profile.children.cycles-pp.can_vma_merge_after
      6.89            -0.5        6.38            -0.4        6.52        perf-profile.children.cycles-pp.mas_store_prealloc
      3.67 ±  2%      -0.3        3.41 ±  3%      -0.2        3.48 ±  5%  perf-profile.children.cycles-pp.vma_complete
      5.55            -0.2        5.32 ±  4%      -0.3        5.23        perf-profile.children.cycles-pp.check_brk_limits
      2.20 ±  4%      -0.2        1.97 ±  3%      -0.2        1.96 ±  4%  perf-profile.children.cycles-pp.mas_leaf_max_gap
      2.68 ±  3%      -0.2        2.47 ±  3%      -0.2        2.44 ±  4%  perf-profile.children.cycles-pp.mas_update_gap
      5.11            -0.2        4.91 ±  4%      -0.3        4.84 ±  2%  perf-profile.children.cycles-pp.__get_unmapped_area
      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.50 ±  5%  perf-profile.children.cycles-pp.may_expand_vm
      3.67            -0.1        3.55 ±  3%      -0.2        3.51 ±  3%  perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
      1.25 ±  4%      -0.1        1.14 ±  5%      -0.1        1.19 ±  4%  perf-profile.children.cycles-pp.syscall_exit_to_user_mode
      2.85 ±  2%      -0.1        2.74 ±  2%      -0.2        2.66 ±  3%  perf-profile.children.cycles-pp.userfaultfd_unmap_complete
      0.14 ± 11%      -0.1        0.08 ± 12%      -0.1        0.06 ± 14%  perf-profile.children.cycles-pp.arch_vma_name
      0.42            -0.1        0.36 ±  4%      -0.0        0.40 ±  3%  perf-profile.children.cycles-pp.syscall_exit_to_user_mode_prepare
      0.36 ±  6%      -0.1        0.31 ±  4%      -0.0        0.34 ± 11%  perf-profile.children.cycles-pp.brk_test
      2.39            -0.1        2.34 ±  5%      -0.1        2.29        perf-profile.children.cycles-pp.arch_get_unmapped_area_topdown_vmflags
      0.25 ±  5%      -0.0        0.21 ±  9%      -0.0        0.23 ± 13%  perf-profile.children.cycles-pp.__rb_insert_augmented
      1.92 ±  2%      -0.0        1.89 ±  4%      -0.1        1.80 ±  2%  perf-profile.children.cycles-pp.init_multi_vma_prep
      0.31 ± 10%      -0.0        0.29 ± 10%      -0.0        0.26 ±  9%  perf-profile.children.cycles-pp.sched_setaffinity
      0.14 ±  3%      -0.0        0.14 ±  7%      -0.0        0.11 ±  8%  perf-profile.children.cycles-pp.intel_idle
      0.08 ± 10%      +0.0        0.12 ± 16%      +0.0        0.10 ±  9%  perf-profile.children.cycles-pp.mmap_region
      0.09 ±  8%      +0.0        0.12 ± 15%      +0.0        0.11 ±  8%  perf-profile.children.cycles-pp.do_mmap
      0.10 ± 14%      +0.0        0.15 ± 11%      +0.0        0.14 ± 13%  perf-profile.children.cycles-pp.anon_vma_interval_tree_remove
      1.01 ±  5%      +0.1        1.08 ±  5%      +0.1        1.12        perf-profile.children.cycles-pp.rcu_all_qs
      0.19 ±  5%      +0.1        0.30 ±  5%      +0.1        0.28 ±  8%  perf-profile.children.cycles-pp.rb_next
      1.27 ±  4%      +0.1        1.40 ±  2%      +0.1        1.37 ±  5%  perf-profile.children.cycles-pp.sized_strscpy
      0.42 ±  6%      +0.1        0.57 ±  6%      +0.2        0.63 ±  9%  perf-profile.children.cycles-pp.strnlen
      0.48 ±  4%      +0.2        0.64 ±  5%      +0.2        0.65 ±  5%  perf-profile.children.cycles-pp.mas_wr_store_entry
      1.80 ±  4%      +0.2        2.02 ±  2%      +0.2        2.00        perf-profile.children.cycles-pp.__cond_resched
      0.00            +0.3        0.31 ± 12%      +0.3        0.32 ±  3%  perf-profile.children.cycles-pp.mas_next_setup
      4.16 ±  3%      +0.3        4.48            +0.5        4.64 ±  3%  perf-profile.children.cycles-pp.down_write
      0.40 ±  6%      +0.4        0.78 ±  4%      +0.4        0.79 ±  3%  perf-profile.children.cycles-pp.percpu_counter_add_batch
      0.48 ±  4%      +0.4        0.92 ±  5%      +0.4        0.90 ±  3%  perf-profile.children.cycles-pp.mas_prev_setup
      0.56 ±  6%      +0.5        1.02 ±  4%      +0.5        1.01 ±  4%  perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
      0.79 ±  4%      +0.5        1.30 ±  3%      +0.5        1.30 ±  4%  perf-profile.children.cycles-pp.__vm_enough_memory
      1.02 ±  2%      +0.7        1.72 ±  3%      +0.8        1.79 ±  4%  perf-profile.children.cycles-pp.mas_next_slot
      0.00            +0.7        0.70 ±  6%      +0.7        0.68 ±  4%  perf-profile.children.cycles-pp.mas_next_range
     79.62            +0.9       80.50            +0.5       80.13        perf-profile.children.cycles-pp.__do_sys_brk
      1.10 ±  3%      +1.0        2.10 ±  3%      +0.8        1.94 ±  3%  perf-profile.children.cycles-pp.mas_prev
      2.86 ±  3%      +1.3        4.12 ±  3%      +1.4        4.25        perf-profile.children.cycles-pp.vma_prepare
      1.45 ±  4%      +1.3        2.79 ±  3%      +1.3        2.77 ±  3%  perf-profile.children.cycles-pp.mas_prev_slot
     54.06            +1.8       55.82            +1.9       55.95        perf-profile.children.cycles-pp.do_brk_flags
      0.00           +28.3       28.30           +28.9       28.88        perf-profile.children.cycles-pp.vma_expand
      0.00           +32.6       32.58           +33.1       33.05        perf-profile.children.cycles-pp.vma_merge_new_range
      5.90 ±  2%      -3.4        2.47 ±  3%      -3.4        2.47 ±  2%  perf-profile.self.cycles-pp.do_brk_flags
      3.84 ±  2%      -0.9        2.90            -0.6        3.28 ±  3%  perf-profile.self.cycles-pp.mas_wr_store_type
      9.85            -0.8        9.02            -1.2        8.63        perf-profile.self.cycles-pp.perf_event_mmap_output
      5.26            -0.8        4.47 ±  2%      -0.8        4.49 ±  2%  perf-profile.self.cycles-pp.up_write
      1.34 ±  2%      -0.6        0.75 ±  3%      -0.6        0.74 ±  5%  perf-profile.self.cycles-pp.can_vma_merge_after
      2.86            -0.4        2.47 ±  5%      -0.2        2.70 ±  2%  perf-profile.self.cycles-pp.mas_store_prealloc
      2.50 ±  2%      -0.3        2.22 ±  2%      -0.2        2.27 ±  2%  perf-profile.self.cycles-pp.mas_preallocate
      5.02 ±  2%      -0.2        4.79            -0.3        4.69        perf-profile.self.cycles-pp.__do_sys_brk
      2.19 ±  4%      -0.2        1.96 ±  3%      -0.2        1.95 ±  4%  perf-profile.self.cycles-pp.mas_leaf_max_gap
      1.87 ±  3%      -0.2        1.66 ±  4%      -0.2        1.71 ±  6%  perf-profile.self.cycles-pp.perf_event_mmap_event
      1.52 ±  3%      -0.2        1.33 ±  2%      -0.3        1.24 ±  2%  perf-profile.self.cycles-pp.perf_event_mmap
      1.82 ±  3%      -0.1        1.68 ±  4%      -0.2        1.66 ±  3%  perf-profile.self.cycles-pp.down_write_killable
      1.84 ±  2%      -0.1        1.74 ±  4%      -0.2        1.67 ±  2%  perf-profile.self.cycles-pp.init_multi_vma_prep
      2.77 ±  2%      -0.1        2.67 ±  2%      -0.2        2.58 ±  3%  perf-profile.self.cycles-pp.userfaultfd_unmap_complete
      1.18 ±  2%      -0.1        1.09            -0.1        1.11 ±  6%  perf-profile.self.cycles-pp.do_syscall_64
      0.92 ±  3%      -0.1        0.84 ±  6%      -0.1        0.82 ±  5%  perf-profile.self.cycles-pp.__get_unmapped_area
      2.30            -0.0        2.26 ±  5%      -0.1        2.21        perf-profile.self.cycles-pp.arch_get_unmapped_area_topdown_vmflags
      0.33 ±  4%      -0.0        0.30 ±  5%      -0.0        0.33 ±  6%  perf-profile.self.cycles-pp.syscall_exit_to_user_mode_prepare
      1.08 ±  2%      -0.0        1.05 ±  4%      -0.1        1.00 ±  2%  perf-profile.self.cycles-pp.mas_find
      0.14 ±  3%      -0.0        0.14 ±  7%      -0.0        0.11 ±  8%  perf-profile.self.cycles-pp.intel_idle
      0.03 ± 70%      +0.1        0.08 ± 14%      +0.0        0.07 ± 15%  perf-profile.self.cycles-pp.anon_vma_interval_tree_remove
      0.13 ±  7%      +0.1        0.22 ± 10%      +0.1        0.22 ± 11%  perf-profile.self.cycles-pp.rb_next
      0.40 ±  7%      +0.1        0.50 ±  9%      +0.1        0.51 ±  6%  perf-profile.self.cycles-pp.mas_wr_store_entry
      1.21 ±  4%      +0.1        1.32 ±  2%      +0.1        1.30 ±  5%  perf-profile.self.cycles-pp.sized_strscpy
      0.38 ±  7%      +0.1        0.50 ±  7%      +0.2        0.57 ±  9%  perf-profile.self.cycles-pp.strnlen
      0.95 ±  7%      +0.1        1.10 ±  4%      +0.1        1.08        perf-profile.self.cycles-pp.__cond_resched
      0.63 ±  5%      +0.2        0.82 ±  9%      +0.2        0.83 ±  2%  perf-profile.self.cycles-pp.vma_prepare
      2.98 ±  2%      +0.2        3.20            +0.3        3.32 ±  4%  perf-profile.self.cycles-pp.down_write
      0.37 ±  6%      +0.2        0.60 ±  6%      +0.2        0.58 ±  4%  perf-profile.self.cycles-pp.__vm_enough_memory
      0.00            +0.2        0.24 ± 11%      +0.2        0.24 ±  5%  perf-profile.self.cycles-pp.mas_next_setup
      0.24 ±  6%      +0.3        0.54 ±  6%      +0.3        0.56 ±  4%  perf-profile.self.cycles-pp.percpu_counter_add_batch
      0.32 ±  4%      +0.3        0.64 ±  5%      +0.3        0.62 ±  3%  perf-profile.self.cycles-pp.mas_prev_setup
      0.38 ± 10%      +0.3        0.72 ±  6%      +0.3        0.73 ±  6%  perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
      0.00            +0.4        0.41 ±  5%      +0.3        0.33 ±  9%  perf-profile.self.cycles-pp.mas_next_range
      0.63 ±  5%      +0.5        1.17 ±  3%      +0.5        1.10 ±  5%  perf-profile.self.cycles-pp.mas_prev
      0.87 ±  3%      +0.6        1.49 ±  3%      +0.7        1.61 ±  6%  perf-profile.self.cycles-pp.mas_next_slot
      1.37 ±  4%      +1.3        2.64 ±  3%      +1.3        2.62 ±  4%  perf-profile.self.cycles-pp.mas_prev_slot
      0.00            +1.3        1.30            +1.2        1.19 ±  4%  perf-profile.self.cycles-pp.vma_merge_new_range
      0.00            +3.4        3.45 ±  2%      +3.4        3.43 ±  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")
  2e71337ac26478 ("mm: explicitly enable an expand-only merge mode for brk()")

fc21959f74bc1138 cacded5e42b9609b07b22d80c10 2e71337ac2647889d3d9d76a5ce
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
   2667734            -5.6%    2518021            -6.2%    2503505        aim9.brk_test.ops_per_sec
    196.00            +0.0%     196.00         +1038.8%       2231 ± 89%  meminfo.Inactive(file)
     23.94            -8.7%      21.86 ±  2%      -6.0%      22.51        time.user_time
      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
      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
      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
     49.00            +0.0%      49.00         +1039.3%     558.24 ± 89%  proc-vmstat.nr_inactive_file
     49.00            +0.0%      49.00         +1039.3%     558.24 ± 89%  proc-vmstat.nr_zone_inactive_file
    948658            +2.3%     970280            +3.2%     978780        proc-vmstat.pgalloc_normal
    792310            -1.5%     780779            -1.7%     779104        proc-vmstat.pgfault
    814343            +2.4%     833987            +3.0%     839063        proc-vmstat.pgfree
 1.721e+09            +3.0%  1.773e+09            +2.6%  1.765e+09        perf-stat.i.branch-instructions
      0.54            -5.4%       0.52            -4.8%       0.52        perf-stat.i.cpi
 7.553e+09            +6.0%  8.003e+09            +5.5%  7.968e+09        perf-stat.i.instructions
      1.86            +6.1%       1.97            +5.3%       1.96        perf-stat.i.ipc
      2399            -1.1%       2372            -1.3%       2367        perf-stat.i.minor-faults
      2399            -1.1%       2372            -1.3%       2367        perf-stat.i.page-faults
      0.36 ±  2%      -0.0        0.35            +0.0        0.36        perf-stat.overall.branch-miss-rate%
      0.55            -5.3%       0.52            -4.6%       0.52        perf-stat.overall.cpi
      1.82            +5.6%       1.92            +4.8%       1.91        perf-stat.overall.ipc
 1.715e+09            +3.0%  1.767e+09            +2.6%   1.76e+09        perf-stat.ps.branch-instructions
 7.529e+09            +5.9%  7.977e+09            +5.5%  7.942e+09        perf-stat.ps.instructions
      2391            -1.1%       2364            -1.3%       2359        perf-stat.ps.minor-faults
      2391            -1.1%       2364            -1.3%       2359        perf-stat.ps.page-faults
 2.275e+12            +5.8%  2.408e+12            +5.3%  2.395e+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            -1.0       17.32        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.9       15.03        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.7       10.36        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.5        3.69        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.5        7.95        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.10 ±  3%  perf-profile.calltrace.cycles-pp.clear_bhb_loop.brk
      5.38 ±  3%      -0.3        5.06            -0.5        4.89        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.3        0.90 ±  5%  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.2        0.64 ±  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
      5.56            -0.2        5.38            -0.2        5.34        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.62 ±  7%  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.2        4.90        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.2        3.58 ±  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.13 ±  4%  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.1        1.88 ±  2%  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.1        0.46 ± 44%  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.1        0.72 ±  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.1        0.09 ±223%  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.60 ±  7%  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.70 ±  8%  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.9        0.88 ±  5%  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.7        0.72 ±  3%  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.95        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
      0.00            +0.8        0.82 ±  4%      +0.8        0.80 ±  5%  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.7       82.07        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.00            +0.8        0.84 ±  4%      +0.8        0.80 ±  7%  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.8       78.74        perf-profile.calltrace.cycles-pp.__do_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
      0.00            +1.2        1.24 ±  3%      +1.2        1.18 ±  4%  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%      +1.4        1.37 ±  3%  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.42 ±  4%  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.4        1.38        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.66 ±  3%  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.7        1.73 ±  3%  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%      +1.9        1.89 ±  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%      +1.9        1.91        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.31 ±  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.6        2.62        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%      +2.8        2.81        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.9        2.94 ±  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            +2.6       55.83        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.4        4.40        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.0        6.95        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           +26.3       26.31        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.8       30.83        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.3        4.60        perf-profile.children.cycles-pp.mas_preallocate
     18.48            -1.3       17.23            -1.0       17.46        perf-profile.children.cycles-pp.perf_event_mmap
     16.41            -1.2       15.23            -0.9       15.47        perf-profile.children.cycles-pp.perf_event_mmap_event
      3.46            -1.1        2.37            -1.1        2.38 ±  3%  perf-profile.children.cycles-pp.mas_wr_store_type
     11.24            -0.7       10.52 ±  2%      -0.7       10.56        perf-profile.children.cycles-pp.perf_iterate_sb
      4.29 ±  3%      -0.4        3.86 ±  2%      -0.5        3.76        perf-profile.children.cycles-pp.mas_walk
      8.61            -0.4        8.21 ±  2%      -0.5        8.07        perf-profile.children.cycles-pp.perf_event_mmap_output
      0.83 ±  7%      -0.4        0.47 ±  8%      -0.4        0.45 ± 10%  perf-profile.children.cycles-pp.may_expand_vm
      3.82            -0.3        3.48 ±  3%      -0.4        3.41        perf-profile.children.cycles-pp.down_write
      5.39            -0.3        5.06            -0.2        5.18 ±  3%  perf-profile.children.cycles-pp.clear_bhb_loop
      1.36 ±  5%      -0.3        1.03 ±  5%      -0.3        1.08 ±  4%  perf-profile.children.cycles-pp.__vm_enough_memory
      5.64 ±  3%      -0.3        5.32            -0.5        5.13        perf-profile.children.cycles-pp.mas_find
      1.18 ±  5%      -0.3        0.88 ±  4%      -0.3        0.87 ±  3%  perf-profile.children.cycles-pp.can_vma_merge_after
      0.57 ± 22%      -0.2        0.33 ± 12%      -0.2        0.36 ±  7%  perf-profile.children.cycles-pp.cap_vm_enough_memory
      1.06 ± 11%      -0.2        0.83 ±  9%      -0.2        0.82 ±  5%  perf-profile.children.cycles-pp.security_vm_enough_memory_mm
      5.30            -0.2        5.11            -0.2        5.10        perf-profile.children.cycles-pp.__get_unmapped_area
      5.75            -0.2        5.56            -0.2        5.52        perf-profile.children.cycles-pp.check_brk_limits
      0.82 ±  4%      -0.2        0.64 ±  4%      -0.1        0.70 ±  7%  perf-profile.children.cycles-pp.percpu_counter_add_batch
      3.86            -0.2        3.69 ±  2%      -0.1        3.71 ±  2%  perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
      1.32 ±  2%      -0.2        1.16 ±  8%      -0.1        1.20 ±  3%  perf-profile.children.cycles-pp.sized_strscpy
      2.10 ±  2%      -0.1        1.96 ±  2%      -0.1        2.00 ±  3%  perf-profile.children.cycles-pp.down_write_killable
      1.86 ±  3%      -0.1        1.74 ±  2%      -0.1        1.80 ±  4%  perf-profile.children.cycles-pp.__cond_resched
      0.57 ±  7%      -0.1        0.45 ± 13%      -0.1        0.46 ±  2%  perf-profile.children.cycles-pp.strlen
      2.78            -0.1        2.66 ±  2%      -0.1        2.64 ±  2%  perf-profile.children.cycles-pp.arch_get_unmapped_area_topdown_vmflags
      0.10 ± 13%      +0.0        0.11 ± 16%      +0.0        0.12 ± 11%  perf-profile.children.cycles-pp.vfs_read
      0.10 ± 11%      +0.0        0.12 ± 13%      +0.0        0.14 ±  8%  perf-profile.children.cycles-pp.read
      0.70 ±  2%      +0.1        0.81 ±  6%      +0.1        0.82 ±  7%  perf-profile.children.cycles-pp.__anon_vma_interval_tree_remove
      0.68 ±  9%      +0.2        0.90 ±  3%      +0.2        0.86 ±  6%  perf-profile.children.cycles-pp.mas_wr_slot_store
      0.34 ±  5%      +0.3        0.68 ±  6%      +0.3        0.68 ±  4%  perf-profile.children.cycles-pp.mas_prev_setup
      0.00            +0.4        0.43 ±  2%      +0.4        0.41 ±  7%  perf-profile.children.cycles-pp.mas_next_setup
      6.91 ±  2%      +0.5        7.37            +0.4        7.26        perf-profile.children.cycles-pp.mas_store_prealloc
      0.92 ±  3%      +0.8        1.76 ±  3%      +0.8        1.69 ±  2%  perf-profile.children.cycles-pp.mas_prev
     83.20            +0.9       84.05            +0.7       83.90        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
     82.36            +0.9       83.23            +0.7       83.08        perf-profile.children.cycles-pp.do_syscall_64
     78.68            +0.9       79.62            +0.8       79.46        perf-profile.children.cycles-pp.__do_sys_brk
      0.00            +0.9        0.94 ±  3%      +1.1        1.05 ±  5%  perf-profile.children.cycles-pp.mas_next_range
      1.35 ±  5%      +1.2        2.59 ±  3%      +1.2        2.52        perf-profile.children.cycles-pp.mas_prev_slot
      0.84 ±  3%      +1.4        2.26 ±  3%      +1.4        2.27 ±  2%  perf-profile.children.cycles-pp.mas_next_slot
     54.26            +2.3       56.54            +2.0       56.30        perf-profile.children.cycles-pp.do_brk_flags
      0.00           +27.5       27.55           +27.0       27.00        perf-profile.children.cycles-pp.vma_expand
      0.00           +31.9       31.86           +31.1       31.13        perf-profile.children.cycles-pp.vma_merge_new_range
      6.50            -3.3        3.19 ±  2%      -3.1        3.35        perf-profile.self.cycles-pp.do_brk_flags
      3.35            -1.1        2.25            -1.1        2.25 ±  2%  perf-profile.self.cycles-pp.mas_wr_store_type
      5.31 ±  2%      -0.4        4.88            -0.2        5.14 ±  2%  perf-profile.self.cycles-pp.__do_sys_brk
      4.22 ±  3%      -0.4        3.80 ±  2%      -0.5        3.70        perf-profile.self.cycles-pp.mas_walk
      8.47            -0.4        8.07 ±  2%      -0.5        7.94        perf-profile.self.cycles-pp.perf_event_mmap_output
      0.71 ±  8%      -0.3        0.38 ±  8%      -0.3        0.36 ± 12%  perf-profile.self.cycles-pp.may_expand_vm
      5.32            -0.3        5.00            -0.2        5.11 ±  3%  perf-profile.self.cycles-pp.clear_bhb_loop
      1.12 ±  5%      -0.3        0.82 ±  4%      -0.3        0.80 ±  5%  perf-profile.self.cycles-pp.can_vma_merge_after
      2.62            -0.2        2.38 ±  5%      -0.3        2.32 ±  3%  perf-profile.self.cycles-pp.down_write
      0.44 ± 28%      -0.2        0.20 ± 13%      -0.2        0.24 ±  7%  perf-profile.self.cycles-pp.cap_vm_enough_memory
      2.50 ±  3%      -0.2        2.31 ±  2%      -0.2        2.28        perf-profile.self.cycles-pp.mas_preallocate
      0.61 ±  9%      -0.2        0.42 ±  7%      -0.2        0.42 ±  6%  perf-profile.self.cycles-pp.__vm_enough_memory
      1.26 ±  2%      -0.2        1.09 ±  9%      -0.1        1.14 ±  3%  perf-profile.self.cycles-pp.sized_strscpy
      0.57 ±  5%      -0.1        0.44 ±  4%      -0.1        0.47 ±  8%  perf-profile.self.cycles-pp.percpu_counter_add_batch
      2.25 ±  3%      -0.1        2.13 ±  3%      -0.0        2.25 ±  2%  perf-profile.self.cycles-pp.perf_event_mmap_event
      2.70            -0.1        2.60 ±  2%      -0.1        2.58 ±  2%  perf-profile.self.cycles-pp.arch_get_unmapped_area_topdown_vmflags
      0.50 ±  8%      -0.1        0.40 ± 12%      -0.1        0.41 ±  2%  perf-profile.self.cycles-pp.strlen
      0.57 ±  4%      -0.1        0.52 ±  4%      -0.0        0.55 ±  4%  perf-profile.self.cycles-pp.strnlen
      1.40 ±  3%      -0.0        1.34 ±  2%      -0.1        1.33 ±  2%  perf-profile.self.cycles-pp.down_write_killable
      0.01 ±223%      +0.1        0.06 ± 15%      +0.0        0.05 ± 48%  perf-profile.self.cycles-pp.anon_vma_interval_tree_remove
      0.51 ±  4%      +0.1        0.60 ±  5%      +0.1        0.60 ±  7%  perf-profile.self.cycles-pp.__anon_vma_interval_tree_remove
      2.87 ±  2%      +0.2        3.10 ±  2%      +0.2        3.09 ±  2%  perf-profile.self.cycles-pp.mas_store_prealloc
      0.61 ±  8%      +0.2        0.84 ±  4%      +0.2        0.81 ±  7%  perf-profile.self.cycles-pp.mas_wr_slot_store
      0.26 ±  7%      +0.3        0.56 ±  5%      +0.3        0.56 ±  7%  perf-profile.self.cycles-pp.mas_prev_setup
      0.00            +0.3        0.33 ±  3%      +0.3        0.31 ± 10%  perf-profile.self.cycles-pp.mas_next_setup
      0.53 ±  6%      +0.4        0.98 ±  3%      +0.4        0.94 ±  7%  perf-profile.self.cycles-pp.mas_prev
      0.00            +0.6        0.56 ±  5%      +0.6        0.62 ±  5%  perf-profile.self.cycles-pp.mas_next_range
      1.29 ±  4%      +1.2        2.46 ±  3%      +1.1        2.39        perf-profile.self.cycles-pp.mas_prev_slot
      0.72 ±  4%      +1.4        2.07 ±  3%      +1.4        2.09        perf-profile.self.cycles-pp.mas_next_slot
      0.00            +1.4        1.40 ±  4%      +1.2        1.24 ±  5%  perf-profile.self.cycles-pp.vma_merge_new_range
      0.00            +3.6        3.55 ±  6%      +3.4        3.42 ±  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")
  2e71337ac26478 ("mm: explicitly enable an expand-only merge mode for brk()")

fc21959f74bc1138 cacded5e42b9609b07b22d80c10 2e71337ac2647889d3d9d76a5ce
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
    201.54            +2.9%     207.44            +2.5%     206.52        time.system_time
     97.58            -6.0%      91.75            -5.0%      92.66        time.user_time
   1322908            -5.0%    1256536            -4.1%    1268145        aim9.brk_test.ops_per_sec
    201.54            +2.9%     207.44            +2.5%     206.52        aim9.time.system_time
     97.58            -6.0%      91.75            -5.0%      92.66        aim9.time.user_time
      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
     90.66 ± 71%    +411.1%     463.37 ±113%    +160.5%     236.20 ± 12%  perf-sched.wait_and_delay.avg.ms.schedule_timeout.io_schedule_timeout.__wait_for_common.blk_execute_rq
    127.98 ± 86%    +586.2%     878.13 ±150%    +192.6%     374.47 ± 56%  perf-sched.wait_and_delay.max.ms.schedule_timeout.io_schedule_timeout.__wait_for_common.blk_execute_rq
      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
    111.98 ± 31%    +323.3%     474.03 ±108%    +110.6%     235.86 ± 12%  perf-sched.wait_time.avg.ms.schedule_timeout.io_schedule_timeout.__wait_for_common.blk_execute_rq
      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
    149.30 ± 58%    +495.3%     888.79 ±147%    +150.4%     373.80 ± 57%  perf-sched.wait_time.max.ms.schedule_timeout.io_schedule_timeout.__wait_for_common.blk_execute_rq
      0.30 ±  2%      -9.0%       0.27 ±  4%     -11.5%       0.27 ±  7%  perf-stat.i.MPKI
  8.33e+08            +3.9%  8.654e+08            +4.5%  8.708e+08        perf-stat.i.branch-instructions
      1.15            -0.1        1.09            -0.1        1.08        perf-stat.i.branch-miss-rate%
  12964626            -1.9%   12711922            -2.6%   12624576        perf-stat.i.branch-misses
      1.11            -7.4%       1.03            -7.9%       1.03        perf-stat.i.cpi
 3.943e+09            +6.0%   4.18e+09            +6.7%  4.206e+09        perf-stat.i.instructions
      0.91            +7.9%       0.98            +8.5%       0.99        perf-stat.i.ipc
      0.29 ±  2%      -9.1%       0.27 ±  4%     -10.8%       0.26 ±  7%  perf-stat.overall.MPKI
      1.56            -0.1        1.47            -0.1        1.45        perf-stat.overall.branch-miss-rate%
      1.08            -6.8%       1.01            -7.2%       1.01        perf-stat.overall.cpi
      0.92            +7.2%       0.99            +7.8%       0.99        perf-stat.overall.ipc
 8.303e+08            +3.9%  8.627e+08            +4.5%  8.681e+08        perf-stat.ps.branch-instructions
  12931205            -2.0%   12678170            -2.6%   12593410        perf-stat.ps.branch-misses
  3.93e+09            +6.0%  4.167e+09            +6.7%  4.193e+09        perf-stat.ps.instructions
 1.184e+12            +6.1%  1.256e+12            +6.7%  1.263e+12        perf-stat.total.instructions
      7.16 ±  2%      -0.4        6.76 ±  4%      -0.3        6.83 ±  5%  perf-profile.calltrace.cycles-pp.entry_SYSRETQ_unsafe_stack.brk
      5.72 ±  2%      -0.4        5.35 ±  3%      -0.2        5.53 ±  4%  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.2        5.97 ±  4%  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.76 ±  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.6        0.58 ±  5%      +0.6        0.57 ±  8%  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.5       17.27 ±  4%  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.6        0.61 ± 45%  perf-profile.calltrace.cycles-pp.mas_wr_store_type.mas_preallocate.vma_expand.vma_merge_new_range.do_brk_flags
     24.21            +0.7       24.90            +0.5       24.71 ±  2%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
     23.33            +0.7       24.05 ±  2%      +0.5       23.87 ±  3%  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.9        0.92 ± 11%  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.86 ±  6%  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.01 ± 14%  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.15 ± 10%  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.19 ±  5%  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.48 ±  4%  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.4        8.40 ±  4%  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.4        7.38 ±  5%  perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
      5.81 ±  2%      -0.4        5.43 ±  3%      -0.2        5.60 ±  4%  perf-profile.children.cycles-pp.perf_event_mmap_event
      6.18 ±  2%      -0.3        5.88 ±  3%      -0.2        6.00 ±  4%  perf-profile.children.cycles-pp.perf_event_mmap
      3.93            -0.2        3.73 ±  3%      -0.1        3.81 ±  4%  perf-profile.children.cycles-pp.perf_iterate_sb
      0.22 ± 29%      -0.1        0.08 ± 17%      -0.1        0.09 ± 42%  perf-profile.children.cycles-pp.may_expand_vm
      0.96 ±  3%      -0.1        0.83 ±  4%      -0.0        0.93 ± 11%  perf-profile.children.cycles-pp.vma_complete
      0.61 ± 14%      -0.1        0.52 ±  7%      -0.0        0.57 ±  9%  perf-profile.children.cycles-pp.percpu_counter_add_batch
      0.15 ±  7%      -0.1        0.08 ± 20%      -0.1        0.08 ± 25%  perf-profile.children.cycles-pp.brk_test
      0.10 ± 11%      +0.0        0.10 ± 28%      +0.0        0.12 ± 10%  perf-profile.children.cycles-pp.run_posix_cpu_timers
      0.08 ± 11%      +0.0        0.12 ± 14%      +0.0        0.12 ± 12%  perf-profile.children.cycles-pp.mas_prev_setup
      0.00            +0.0        0.05 ± 46%      +0.1        0.08 ± 16%  perf-profile.children.cycles-pp.mas_next_setup
      0.24 ± 19%      +0.1        0.31 ±  9%      +0.1        0.32 ±  9%  perf-profile.children.cycles-pp.mas_prev
      0.17 ± 12%      +0.1        0.27 ± 10%      +0.0        0.19 ± 16%  perf-profile.children.cycles-pp.mas_wr_store_entry
      0.00            +0.2        0.15 ± 11%      +0.2        0.17 ±  8%  perf-profile.children.cycles-pp.mas_next_range
      0.19 ±  8%      +0.2        0.38 ± 10%      +0.2        0.41 ±  8%  perf-profile.children.cycles-pp.mas_next_slot
      0.34 ± 17%      +0.3        0.64 ±  6%      +0.3        0.61 ±  6%  perf-profile.children.cycles-pp.mas_prev_slot
     23.40            +0.7       24.12 ±  2%      +0.5       23.94 ±  3%  perf-profile.children.cycles-pp.__do_sys_brk
      0.00            +7.6        7.59 ±  3%      +7.5        7.49 ±  4%  perf-profile.children.cycles-pp.vma_expand
      0.00            +8.7        8.66 ±  4%      +8.5        8.46 ±  4%  perf-profile.children.cycles-pp.vma_merge_new_range
      1.61 ± 10%      -0.9        0.69 ±  8%      -0.8        0.83 ± 14%  perf-profile.self.cycles-pp.do_brk_flags
      7.64 ±  2%      -0.4        7.20 ±  4%      -0.4        7.28 ±  5%  perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.22 ± 30%      -0.1        0.08 ± 17%      -0.1        0.09 ± 42%  perf-profile.self.cycles-pp.may_expand_vm
      0.57 ± 15%      -0.1        0.46 ±  6%      -0.0        0.53 ± 10%  perf-profile.self.cycles-pp.percpu_counter_add_batch
      0.77 ±  7%      -0.1        0.69 ±  5%      -0.1        0.69 ±  5%  perf-profile.self.cycles-pp.perf_event_mmap_event
      0.15 ±  7%      -0.1        0.08 ± 20%      -0.1        0.08 ± 24%  perf-profile.self.cycles-pp.brk_test
      0.20 ±  5%      -0.0        0.18 ±  4%      +0.0        0.20 ±  9%  perf-profile.self.cycles-pp.anon_vma_interval_tree_insert
      0.10 ± 11%      +0.0        0.10 ± 28%      +0.0        0.12 ± 10%  perf-profile.self.cycles-pp.run_posix_cpu_timers
      0.07 ± 18%      +0.0        0.10 ± 18%      +0.0        0.11 ± 11%  perf-profile.self.cycles-pp.mas_prev_setup
      0.00            +0.1        0.09 ± 12%      +0.1        0.11 ±  9%  perf-profile.self.cycles-pp.mas_next_range
      0.36 ±  8%      +0.1        0.45 ±  6%      +0.0        0.40 ± 11%  perf-profile.self.cycles-pp.perf_event_mmap
      0.15 ± 13%      +0.1        0.25 ± 14%      +0.0        0.17 ± 16%  perf-profile.self.cycles-pp.mas_wr_store_entry
      0.17 ± 11%      +0.2        0.37 ± 11%      +0.2        0.40 ±  9%  perf-profile.self.cycles-pp.mas_next_slot
      0.34 ± 17%      +0.3        0.64 ±  6%      +0.3        0.61 ±  6%  perf-profile.self.cycles-pp.mas_prev_slot
      0.00            +0.3        0.33 ±  5%      +0.3        0.30 ±  7%  perf-profile.self.cycles-pp.vma_merge_new_range
      0.00            +0.8        0.81 ±  9%      +0.7        0.74 ±  9%  perf-profile.self.cycles-pp.vma_expand


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux