[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZsLnvO2lWwCZsD6V@xsang-OptiPlex-9020>
Date: Mon, 19 Aug 2024 14:35:40 +0800
From: Oliver Sang <oliver.sang@...el.com>
To: Jeff Xu <jeffxu@...gle.com>
CC: Jeff Xu <jeffxu@...omium.org>, <akpm@...ux-foundation.org>,
<willy@...radead.org>, <torvalds@...ux-foundation.org>,
<Liam.Howlett@...cle.com>, <pedro.falcato@...il.com>,
<linux-kernel@...r.kernel.org>, <linux-kselftest@...r.kernel.org>,
<linux-mm@...ck.org>, <linux-hardening@...r.kernel.org>,
<lorenzo.stoakes@...cle.com>, <mpe@...erman.id.au>, <vbabka@...e.cz>,
<keescook@...omium.org>, <oliver.sang@...el.com>
Subject: Re: [PATCH v1 0/2] mremap refactor: check src address for vma
boundaries first.
hi, Jeff,
On Mon, Aug 19, 2024 at 09:38:19AM +0800, Oliver Sang wrote:
> hi, Jeff,
>
> On Sun, Aug 18, 2024 at 05:28:41PM +0800, Oliver Sang wrote:
> > hi, Jeff,
> >
> > On Thu, Aug 15, 2024 at 07:58:57PM -0700, Jeff Xu wrote:
> > > Hi Oliver
> >
> > [...]
> >
> > > > could you exlictly point to two commit-id?
> > > sure
> > >
> > > this patch
> > > 8be7258a: mseal: add mseal syscall
> > > ff388fe5c: mseal: wire up mseal syscall
> >
> > I failed to apply this patch set to "8be7258a: mseal: add mseal syscall"
>
> look your patch set again
> [PATCH v1 1/2] mseal:selftest mremap across VMA boundaries
> just for kselftests
>
> and I can apply
> [PATCH v1 2/2] mseal: refactor mremap to remove can_modify_mm
> upon "8be7258a: mseal: add mseal syscall" cleanly
>
> so I will start test for this [PATCH v1 2/2]
>
> BTW, I will firstly use our default setting - "60s testtime; reboot between each
> run; run 10 times", since we've already have the data for 8be7258a and ff388fe5c
> then we could give you an update kind of quickly.
>
> as some private mail discussed, you want some special run method, could you
> elaborate them here? thanks
here is a quick update before you give us more details about special run method.
by our default run method (60s testtime; reboot between each run; run 10 times),
your "[PATCH v1 2/2] mseal: refactor mremap to remove can_modify_mm" could
resolve regression partically.
=========================================================================================
compiler/cpufreq_governor/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
gcc-12/performance/x86_64-rhel-8.3/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp7/pagemove/stress-ng/60s
commit:
ff388fe5c4 ("mseal: wire up mseal syscall")
8be7258aad ("mseal: add mseal syscall")
2a78ece39f <-- your "[PATCH v1 2/2] mseal: refactor mremap to remove can_modify_mm"
ff388fe5c481d39c 8be7258aad44b5e25977a98db13 2a78ece39f13ea6f3f9679a6c66
---------------- --------------------------- ---------------------------
%stddev %change %stddev %change %stddev
\ | \ | \
4957 +1.3% 5023 +1.0% 5008 time.percent_of_cpu_this_job_got
2915 +1.5% 2959 +1.2% 2949 time.system_time
65.96 -7.3% 61.16 -5.5% 62.30 time.user_time
41535878 -4.0% 39873501 -2.6% 40452264 proc-vmstat.numa_hit
41466104 -4.0% 39806121 -2.6% 40384854 proc-vmstat.numa_local
77297398 -4.1% 74165258 -2.6% 75286134 proc-vmstat.pgalloc_normal
77016866 -4.1% 73886027 -2.6% 75012630 proc-vmstat.pgfree
18386219 -5.0% 17474214 -2.9% 17850959 stress-ng.pagemove.ops
306421 -5.0% 291207 -2.9% 297490 stress-ng.pagemove.ops_per_sec
4957 +1.3% 5023 +1.0% 5008 stress-ng.time.percent_of_cpu_this_job_got
2915 +1.5% 2959 +1.2% 2949 stress-ng.time.system_time
3.349e+10 ± 4% +3.0% 3.447e+10 ± 2% +4.1% 3.484e+10 perf-stat.i.branch-instructions
1.13 -2.1% 1.10 -2.2% 1.10 perf-stat.i.cpi
0.89 +2.2% 0.91 +2.0% 0.91 perf-stat.i.ipc
1.04 -6.9% 0.97 -4.9% 0.99 perf-stat.overall.MPKI
1.13 -2.3% 1.10 -2.0% 1.10 perf-stat.overall.cpi
1081 +5.0% 1136 +3.0% 1114 perf-stat.overall.cycles-between-cache-misses
0.89 +2.3% 0.91 +2.0% 0.91 perf-stat.overall.ipc
3.295e+10 ± 3% +2.9% 3.392e+10 ± 2% +4.0% 3.427e+10 perf-stat.ps.branch-instructions
1.674e+11 ± 3% +1.8% 1.704e+11 ± 2% +3.3% 1.73e+11 perf-stat.ps.instructions
1.046e+13 +2.7% 1.074e+13 +1.7% 1.064e+13 perf-stat.total.instructions
75.05 -2.0 73.02 -0.9 74.18 perf-profile.calltrace.cycles-pp.move_vma.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe.mremap
36.83 -1.6 35.19 -1.2 35.62 perf-profile.calltrace.cycles-pp.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap.do_syscall_64
25.02 -1.4 23.65 -0.9 24.12 perf-profile.calltrace.cycles-pp.copy_vma.move_vma.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe
19.94 -1.1 18.87 -0.8 19.19 perf-profile.calltrace.cycles-pp.__split_vma.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap
14.78 -0.8 14.01 -0.5 14.28 perf-profile.calltrace.cycles-pp.vma_merge.copy_vma.move_vma.__do_sys_mremap.do_syscall_64
1.48 -0.5 0.99 -0.5 1.00 perf-profile.calltrace.cycles-pp.mas_find.do_vmi_munmap.move_vma.__do_sys_mremap.do_syscall_64
7.88 -0.4 7.47 -0.3 7.62 perf-profile.calltrace.cycles-pp.move_page_tables.move_vma.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe
6.73 -0.4 6.37 -0.2 6.51 perf-profile.calltrace.cycles-pp.vm_area_dup.__split_vma.do_vmi_align_munmap.do_vmi_munmap.move_vma
6.16 -0.3 5.82 -0.3 5.90 perf-profile.calltrace.cycles-pp.vma_complete.__split_vma.do_vmi_align_munmap.do_vmi_munmap.move_vma
6.12 -0.3 5.79 -0.2 5.93 perf-profile.calltrace.cycles-pp.kmem_cache_alloc_noprof.vm_area_dup.__split_vma.do_vmi_align_munmap.do_vmi_munmap
5.79 -0.3 5.48 -0.2 5.59 perf-profile.calltrace.cycles-pp.move_ptes.move_page_tables.move_vma.__do_sys_mremap.do_syscall_64
5.54 -0.3 5.25 -0.2 5.32 perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_complete.__split_vma.do_vmi_align_munmap.do_vmi_munmap
5.56 -0.3 5.28 -0.2 5.36 perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_merge.copy_vma.move_vma.__do_sys_mremap
5.19 -0.3 4.92 -0.2 4.98 perf-profile.calltrace.cycles-pp.mas_wr_store_entry.mas_store_prealloc.vma_complete.__split_vma.do_vmi_align_munmap
5.21 -0.3 4.95 -0.2 5.02 perf-profile.calltrace.cycles-pp.mas_wr_store_entry.mas_store_prealloc.vma_merge.copy_vma.move_vma
4.09 -0.2 3.85 -0.2 3.93 perf-profile.calltrace.cycles-pp.vm_area_dup.copy_vma.move_vma.__do_sys_mremap.do_syscall_64
4.69 -0.2 4.46 -0.2 4.51 perf-profile.calltrace.cycles-pp.mas_wr_node_store.mas_wr_store_entry.mas_store_prealloc.vma_merge.copy_vma
3.56 -0.2 3.36 -0.1 3.43 perf-profile.calltrace.cycles-pp.kmem_cache_alloc_noprof.vm_area_dup.copy_vma.move_vma.__do_sys_mremap
3.40 -0.2 3.22 -0.1 3.29 perf-profile.calltrace.cycles-pp.flush_tlb_mm_range.move_ptes.move_page_tables.move_vma.__do_sys_mremap
1.35 -0.2 1.16 -0.1 1.24 perf-profile.calltrace.cycles-pp.mas_find.do_vmi_munmap.do_munmap.mremap_to.__do_sys_mremap
4.00 -0.2 3.82 -0.1 3.86 perf-profile.calltrace.cycles-pp.mas_wr_node_store.mas_wr_store_entry.mas_store_prealloc.vma_complete.__split_vma
2.23 -0.2 2.05 -0.1 2.12 perf-profile.calltrace.cycles-pp.find_vma_prev.copy_vma.move_vma.__do_sys_mremap.do_syscall_64
8.26 -0.2 8.10 -0.2 8.06 perf-profile.calltrace.cycles-pp.unmap_region.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap
1.97 ± 3% -0.2 1.81 ± 3% -0.1 1.88 ± 4% perf-profile.calltrace.cycles-pp.mod_objcg_state.__memcg_slab_post_alloc_hook.kmem_cache_alloc_noprof.vm_area_dup.__split_vma
3.11 ± 2% -0.2 2.96 -0.1 3.05 perf-profile.calltrace.cycles-pp.__memcg_slab_post_alloc_hook.kmem_cache_alloc_noprof.vm_area_dup.__split_vma.do_vmi_align_munmap
0.97 -0.2 0.81 -0.1 0.87 perf-profile.calltrace.cycles-pp.mas_walk.mas_find.do_vmi_munmap.do_munmap.mremap_to
2.27 -0.2 2.11 -0.1 2.16 perf-profile.calltrace.cycles-pp.mas_preallocate.__split_vma.do_vmi_align_munmap.do_vmi_munmap.move_vma
3.25 -0.1 3.10 -0.1 3.17 perf-profile.calltrace.cycles-pp.mas_store_gfp.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap
3.14 -0.1 3.00 -0.1 3.06 perf-profile.calltrace.cycles-pp.unmap_vmas.unmap_region.do_vmi_align_munmap.do_vmi_munmap.move_vma
2.98 -0.1 2.85 -0.1 2.87 ± 2% perf-profile.calltrace.cycles-pp.anon_vma_clone.__split_vma.do_vmi_align_munmap.do_vmi_munmap.move_vma
1.27 ± 2% -0.1 1.15 ± 4% -0.1 1.19 ± 6% perf-profile.calltrace.cycles-pp.__memcpy.mas_wr_node_store.mas_wr_store_entry.mas_store_prealloc.vma_merge
2.45 -0.1 2.34 -0.1 2.38 perf-profile.calltrace.cycles-pp.flush_tlb_func.flush_tlb_mm_range.move_ptes.move_page_tables.move_vma
2.05 -0.1 1.94 -0.1 1.97 perf-profile.calltrace.cycles-pp.mas_preallocate.vma_merge.copy_vma.move_vma.__do_sys_mremap
2.44 -0.1 2.33 -0.1 2.38 perf-profile.calltrace.cycles-pp.unmap_page_range.unmap_vmas.unmap_region.do_vmi_align_munmap.do_vmi_munmap
2.22 -0.1 2.11 -0.1 2.15 perf-profile.calltrace.cycles-pp.native_flush_tlb_one_user.flush_tlb_func.flush_tlb_mm_range.move_ptes.move_page_tables
1.76 ± 2% -0.1 1.65 ± 2% -0.1 1.66 ± 4% perf-profile.calltrace.cycles-pp.vma_prepare.vma_merge.copy_vma.move_vma.__do_sys_mremap
1.86 -0.1 1.75 -0.1 1.78 perf-profile.calltrace.cycles-pp.vma_link.copy_vma.move_vma.__do_sys_mremap.do_syscall_64
1.40 -0.1 1.30 -0.1 1.34 perf-profile.calltrace.cycles-pp.mas_alloc_nodes.mas_preallocate.__split_vma.do_vmi_align_munmap.do_vmi_munmap
1.39 -0.1 1.30 -0.1 1.33 perf-profile.calltrace.cycles-pp.mas_alloc_nodes.mas_preallocate.vma_merge.copy_vma.move_vma
0.55 -0.1 0.46 ± 30% -0.0 0.52 perf-profile.calltrace.cycles-pp.mas_find.find_vma_prev.copy_vma.move_vma.__do_sys_mremap
1.25 -0.1 1.16 -0.1 1.20 perf-profile.calltrace.cycles-pp.kmem_cache_alloc_noprof.mas_alloc_nodes.mas_preallocate.__split_vma.do_vmi_align_munmap
0.94 -0.1 0.86 -0.1 0.87 perf-profile.calltrace.cycles-pp.mas_walk.mas_find.do_vmi_munmap.move_vma.__do_sys_mremap
1.23 -0.1 1.15 -0.1 1.17 perf-profile.calltrace.cycles-pp.kmem_cache_alloc_noprof.mas_alloc_nodes.mas_preallocate.vma_merge.copy_vma
1.54 -0.1 1.47 -0.0 1.49 perf-profile.calltrace.cycles-pp.zap_pmd_range.unmap_page_range.unmap_vmas.unmap_region.do_vmi_align_munmap
0.73 -0.1 0.66 -0.0 0.69 perf-profile.calltrace.cycles-pp.mas_walk.find_vma_prev.copy_vma.move_vma.__do_sys_mremap
1.15 -0.1 1.09 -0.1 1.10 perf-profile.calltrace.cycles-pp.___slab_alloc.kmem_cache_alloc_noprof.vm_area_dup.__split_vma.do_vmi_align_munmap
0.60 ± 2% -0.1 0.54 -0.0 0.58 perf-profile.calltrace.cycles-pp.security_mmap_addr.__get_unmapped_area.mremap_to.__do_sys_mremap.do_syscall_64
1.27 -0.1 1.21 -0.0 1.24 perf-profile.calltrace.cycles-pp.mas_wr_store_entry.mas_store_gfp.do_vmi_align_munmap.do_vmi_munmap.move_vma
0.80 ± 2% -0.1 0.74 ± 2% -0.0 0.76 ± 2% perf-profile.calltrace.cycles-pp.__call_rcu_common.mas_wr_node_store.mas_wr_store_entry.mas_store_prealloc.vma_merge
0.72 -0.1 0.66 -0.0 0.69 perf-profile.calltrace.cycles-pp.mas_prev.vma_merge.copy_vma.move_vma.__do_sys_mremap
0.78 -0.1 0.73 -0.0 0.75 perf-profile.calltrace.cycles-pp.___slab_alloc.kmem_cache_alloc_noprof.mas_alloc_nodes.mas_preallocate.__split_vma
0.69 ± 2% -0.1 0.64 ± 3% -0.0 0.66 ± 4% perf-profile.calltrace.cycles-pp.mod_objcg_state.__memcg_slab_post_alloc_hook.kmem_cache_alloc_noprof.vm_area_dup.copy_vma
1.63 -0.1 1.58 -0.1 1.57 perf-profile.calltrace.cycles-pp.__get_unmapped_area.mremap_to.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.02 -0.1 0.97 -0.0 0.98 perf-profile.calltrace.cycles-pp.zap_pte_range.zap_pmd_range.unmap_page_range.unmap_vmas.unmap_region
0.77 -0.0 0.72 -0.0 0.74 perf-profile.calltrace.cycles-pp.___slab_alloc.kmem_cache_alloc_noprof.mas_alloc_nodes.mas_preallocate.vma_merge
0.62 -0.0 0.57 -0.0 0.60 perf-profile.calltrace.cycles-pp.mas_prev_setup.mas_prev.vma_merge.copy_vma.move_vma
0.67 -0.0 0.62 -0.0 0.64 perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap
0.86 -0.0 0.81 -0.0 0.83 perf-profile.calltrace.cycles-pp.mtree_load.vma_to_resize.mremap_to.__do_sys_mremap.do_syscall_64
1.12 -0.0 1.08 -0.0 1.09 perf-profile.calltrace.cycles-pp.clear_bhb_loop.mremap
0.56 -0.0 0.51 -0.0 0.53 perf-profile.calltrace.cycles-pp.mas_walk.mas_prev_setup.mas_prev.vma_merge.copy_vma
0.68 ± 2% -0.0 0.63 -0.0 0.65 perf-profile.calltrace.cycles-pp.syscall_return_via_sysret.mremap
0.81 -0.0 0.77 -0.0 0.80 perf-profile.calltrace.cycles-pp.mtree_load.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe.mremap
1.02 -0.0 0.97 -0.0 0.98 perf-profile.calltrace.cycles-pp.vma_to_resize.mremap_to.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.95 ± 2% -0.0 0.90 ± 2% -0.0 0.93 perf-profile.calltrace.cycles-pp.__memcg_slab_free_hook.kmem_cache_free.unlink_anon_vmas.free_pgtables.unmap_region
0.98 -0.0 0.94 -0.0 0.95 perf-profile.calltrace.cycles-pp.mas_find.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap
0.78 -0.0 0.74 -0.0 0.75 perf-profile.calltrace.cycles-pp.mas_store_prealloc.vma_link.copy_vma.move_vma.__do_sys_mremap
0.70 -0.0 0.66 -0.0 0.67 perf-profile.calltrace.cycles-pp.__call_rcu_common.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap
0.69 -0.0 0.65 -0.0 0.66 perf-profile.calltrace.cycles-pp.___slab_alloc.kmem_cache_alloc_noprof.vm_area_dup.copy_vma.move_vma
0.69 -0.0 0.65 -0.0 0.65 perf-profile.calltrace.cycles-pp.mas_preallocate.vma_link.copy_vma.move_vma.__do_sys_mremap
0.62 -0.0 0.59 -0.0 0.60 perf-profile.calltrace.cycles-pp.mas_prev_slot.do_vmi_align_munmap.do_vmi_munmap.move_vma.__do_sys_mremap
1.16 -0.0 1.12 -0.0 1.13 perf-profile.calltrace.cycles-pp.anon_vma_clone.copy_vma.move_vma.__do_sys_mremap.do_syscall_64
0.76 ± 2% -0.0 0.72 -0.0 0.72 ± 2% perf-profile.calltrace.cycles-pp.allocate_slab.___slab_alloc.kmem_cache_alloc_noprof.vm_area_dup.__split_vma
1.01 -0.0 0.97 -0.0 0.99 perf-profile.calltrace.cycles-pp.mt_find.vma_merge.copy_vma.move_vma.__do_sys_mremap
0.60 -0.0 0.57 -0.0 0.58 perf-profile.calltrace.cycles-pp.__pte_offset_map_lock.zap_pte_range.zap_pmd_range.unmap_page_range.unmap_vmas
0.88 -0.0 0.85 -0.0 0.85 perf-profile.calltrace.cycles-pp.userfaultfd_unmap_complete.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe.mremap
0.62 ± 2% -0.0 0.59 ± 2% -0.0 0.60 perf-profile.calltrace.cycles-pp.get_old_pud.move_page_tables.move_vma.__do_sys_mremap.do_syscall_64
0.59 -0.0 0.56 -0.0 0.56 perf-profile.calltrace.cycles-pp.entry_SYSCALL_64.mremap
0.65 -0.0 0.62 ± 2% -0.0 0.63 perf-profile.calltrace.cycles-pp.mas_update_gap.mas_store_gfp.do_vmi_align_munmap.do_vmi_munmap.move_vma
0.81 +0.0 0.82 -0.0 0.79 perf-profile.calltrace.cycles-pp.thp_get_unmapped_area_vmflags.__get_unmapped_area.mremap_to.__do_sys_mremap.do_syscall_64
2.76 +0.0 2.78 ± 2% -0.1 2.67 perf-profile.calltrace.cycles-pp.unlink_anon_vmas.free_pgtables.unmap_region.do_vmi_align_munmap.do_vmi_munmap
3.47 +0.0 3.51 -0.1 3.37 perf-profile.calltrace.cycles-pp.free_pgtables.unmap_region.do_vmi_align_munmap.do_vmi_munmap.move_vma
0.76 +0.1 0.83 +0.1 0.85 perf-profile.calltrace.cycles-pp.__madvise
0.66 +0.1 0.73 +0.1 0.75 perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.__madvise
0.67 +0.1 0.74 +0.1 0.76 perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.__madvise
0.63 +0.1 0.70 +0.1 0.72 perf-profile.calltrace.cycles-pp.__x64_sys_madvise.do_syscall_64.entry_SYSCALL_64_after_hwframe.__madvise
0.62 +0.1 0.70 +0.1 0.71 perf-profile.calltrace.cycles-pp.do_madvise.__x64_sys_madvise.do_syscall_64.entry_SYSCALL_64_after_hwframe.__madvise
0.00 +0.9 0.86 +0.9 0.92 perf-profile.calltrace.cycles-pp.mas_walk.mas_find.can_modify_mm.do_vmi_munmap.do_munmap
0.00 +0.9 0.88 +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_walk.mas_find.can_modify_mm.mremap_to.__do_sys_mremap
83.81 +0.9 84.69 +0.6 84.44 perf-profile.calltrace.cycles-pp.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe.mremap
0.00 +0.9 0.90 ± 2% +0.9 0.91 perf-profile.calltrace.cycles-pp.mas_walk.mas_find.can_modify_mm.do_vmi_munmap.move_vma
0.00 +1.1 1.10 +0.0 0.00 perf-profile.calltrace.cycles-pp.mas_find.can_modify_mm.mremap_to.__do_sys_mremap.do_syscall_64
0.00 +1.2 1.21 +1.3 1.28 perf-profile.calltrace.cycles-pp.mas_find.can_modify_mm.do_vmi_munmap.do_munmap.mremap_to
2.10 +1.5 3.60 +1.7 3.79 perf-profile.calltrace.cycles-pp.do_munmap.mremap_to.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +1.5 1.52 +1.5 1.52 perf-profile.calltrace.cycles-pp.mas_find.can_modify_mm.do_vmi_munmap.move_vma.__do_sys_mremap
1.59 +1.5 3.12 +1.7 3.31 perf-profile.calltrace.cycles-pp.do_vmi_munmap.do_munmap.mremap_to.__do_sys_mremap.do_syscall_64
0.00 +1.6 1.61 +0.0 0.00 perf-profile.calltrace.cycles-pp.can_modify_mm.mremap_to.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +1.7 1.73 +1.8 1.83 perf-profile.calltrace.cycles-pp.can_modify_mm.do_vmi_munmap.do_munmap.mremap_to.__do_sys_mremap
0.00 +2.0 2.01 +2.0 2.04 perf-profile.calltrace.cycles-pp.can_modify_mm.do_vmi_munmap.move_vma.__do_sys_mremap.do_syscall_64
5.34 +3.0 8.38 +1.6 6.92 perf-profile.calltrace.cycles-pp.mremap_to.__do_sys_mremap.do_syscall_64.entry_SYSCALL_64_after_hwframe.mremap
75.22 -2.0 73.18 -0.9 74.34 perf-profile.children.cycles-pp.move_vma
37.04 -1.6 35.40 -1.2 35.83 perf-profile.children.cycles-pp.do_vmi_align_munmap
25.09 -1.4 23.72 -0.9 24.20 perf-profile.children.cycles-pp.copy_vma
20.04 -1.1 18.96 -0.8 19.28 perf-profile.children.cycles-pp.__split_vma
19.87 -1.0 18.84 -0.6 19.24 perf-profile.children.cycles-pp.rcu_core
19.85 -1.0 18.82 -0.6 19.22 perf-profile.children.cycles-pp.rcu_do_batch
19.89 -1.0 18.86 -0.6 19.26 perf-profile.children.cycles-pp.handle_softirqs
17.55 -0.9 16.67 -0.5 17.02 perf-profile.children.cycles-pp.kmem_cache_free
15.32 -0.8 14.49 -0.5 14.78 perf-profile.children.cycles-pp.kmem_cache_alloc_noprof
15.17 -0.8 14.39 -0.5 14.66 perf-profile.children.cycles-pp.vma_merge
12.12 -0.6 11.48 -0.4 11.70 perf-profile.children.cycles-pp.__slab_free
12.19 -0.6 11.56 -0.5 11.73 perf-profile.children.cycles-pp.mas_wr_store_entry
11.99 -0.6 11.36 -0.5 11.53 perf-profile.children.cycles-pp.mas_store_prealloc
10.88 -0.6 10.28 -0.4 10.50 perf-profile.children.cycles-pp.vm_area_dup
9.90 -0.5 9.41 -0.4 9.53 perf-profile.children.cycles-pp.mas_wr_node_store
8.39 -0.5 7.92 -0.3 8.13 perf-profile.children.cycles-pp.__memcg_slab_post_alloc_hook
7.99 -0.4 7.58 -0.3 7.73 perf-profile.children.cycles-pp.move_page_tables
6.70 -0.4 6.33 -0.3 6.43 perf-profile.children.cycles-pp.vma_complete
5.87 -0.3 5.55 -0.2 5.66 perf-profile.children.cycles-pp.move_ptes
5.12 -0.3 4.81 -0.2 4.90 perf-profile.children.cycles-pp.mas_preallocate
6.05 -0.3 5.74 -0.2 5.85 perf-profile.children.cycles-pp.vm_area_free_rcu_cb
2.98 -0.3 2.69 ± 4% -0.2 2.80 ± 6% perf-profile.children.cycles-pp.__memcpy
3.46 ± 2% -0.2 3.25 -0.1 3.36 ± 3% perf-profile.children.cycles-pp.mod_objcg_state
3.47 -0.2 3.26 -0.2 3.32 perf-profile.children.cycles-pp.___slab_alloc
2.44 -0.2 2.25 -0.1 2.33 perf-profile.children.cycles-pp.find_vma_prev
2.92 -0.2 2.73 -0.1 2.79 perf-profile.children.cycles-pp.mas_alloc_nodes
3.46 -0.2 3.27 -0.1 3.34 perf-profile.children.cycles-pp.flush_tlb_mm_range
3.47 -0.2 3.29 -0.2 3.32 ± 2% perf-profile.children.cycles-pp.down_write
3.33 -0.2 3.16 -0.1 3.25 perf-profile.children.cycles-pp.__memcg_slab_free_hook
4.23 -0.2 4.07 -0.1 4.08 ± 2% perf-profile.children.cycles-pp.anon_vma_clone
8.33 -0.2 8.17 -0.2 8.13 perf-profile.children.cycles-pp.unmap_region
3.35 -0.1 3.20 -0.1 3.26 perf-profile.children.cycles-pp.mas_store_gfp
2.21 -0.1 2.07 -0.1 2.10 perf-profile.children.cycles-pp.__cond_resched
3.19 -0.1 3.05 -0.1 3.11 perf-profile.children.cycles-pp.unmap_vmas
2.12 -0.1 1.99 -0.1 2.04 perf-profile.children.cycles-pp.__call_rcu_common
2.66 -0.1 2.54 -0.1 2.60 perf-profile.children.cycles-pp.mtree_load
2.24 -0.1 2.12 ± 2% -0.1 2.13 ± 3% perf-profile.children.cycles-pp.vma_prepare
2.50 -0.1 2.38 -0.1 2.42 perf-profile.children.cycles-pp.flush_tlb_func
2.04 ± 2% -0.1 1.93 -0.1 1.96 ± 2% perf-profile.children.cycles-pp.allocate_slab
2.46 -0.1 2.35 -0.1 2.41 perf-profile.children.cycles-pp.rcu_cblist_dequeue
2.48 -0.1 2.38 -0.1 2.42 perf-profile.children.cycles-pp.unmap_page_range
2.23 -0.1 2.12 -0.1 2.16 perf-profile.children.cycles-pp.native_flush_tlb_one_user
1.77 -0.1 1.67 -0.1 1.70 perf-profile.children.cycles-pp.mas_wr_walk
1.88 -0.1 1.78 -0.1 1.80 perf-profile.children.cycles-pp.vma_link
1.84 -0.1 1.75 -0.1 1.77 perf-profile.children.cycles-pp.up_write
0.97 ± 2% -0.1 0.88 -0.1 0.89 perf-profile.children.cycles-pp.rcu_all_qs
1.40 -0.1 1.32 -0.1 1.34 ± 2% perf-profile.children.cycles-pp.shuffle_freelist
1.03 -0.1 0.95 -0.0 0.99 perf-profile.children.cycles-pp.mas_prev
0.92 -0.1 0.85 -0.0 0.88 perf-profile.children.cycles-pp.mas_prev_setup
1.58 -0.1 1.51 -0.1 1.53 perf-profile.children.cycles-pp.zap_pmd_range
1.24 -0.1 1.17 -0.0 1.20 perf-profile.children.cycles-pp.mas_prev_slot
1.57 -0.1 1.49 -0.1 1.49 perf-profile.children.cycles-pp.mas_update_gap
0.62 -0.1 0.56 -0.0 0.60 perf-profile.children.cycles-pp.security_mmap_addr
0.90 -0.1 0.84 -0.0 0.86 perf-profile.children.cycles-pp.percpu_counter_add_batch
0.86 -0.1 0.80 -0.0 0.81 perf-profile.children.cycles-pp._raw_spin_lock_irqsave
0.98 -0.1 0.92 -0.0 0.95 perf-profile.children.cycles-pp.mas_pop_node
1.68 -0.1 1.62 -0.1 1.62 perf-profile.children.cycles-pp.__get_unmapped_area
1.23 -0.1 1.18 -0.0 1.20 perf-profile.children.cycles-pp.__pte_offset_map_lock
0.49 ± 2% -0.1 0.43 -0.1 0.43 ± 2% perf-profile.children.cycles-pp.setup_object
1.09 -0.1 1.03 -0.0 1.05 perf-profile.children.cycles-pp.zap_pte_range
1.07 ± 2% -0.1 1.02 ± 2% -0.1 1.00 perf-profile.children.cycles-pp.mas_leaf_max_gap
0.70 ± 2% -0.0 0.65 -0.0 0.67 perf-profile.children.cycles-pp.syscall_return_via_sysret
1.18 -0.0 1.14 -0.0 1.15 perf-profile.children.cycles-pp.clear_bhb_loop
0.51 ± 3% -0.0 0.47 -0.0 0.49 ± 3% perf-profile.children.cycles-pp.anon_vma_interval_tree_insert
1.04 -0.0 1.00 -0.0 1.01 perf-profile.children.cycles-pp.vma_to_resize
0.57 -0.0 0.53 -0.0 0.54 perf-profile.children.cycles-pp.mas_wr_end_piv
0.44 ± 2% -0.0 0.40 ± 2% -0.0 0.40 perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
1.14 -0.0 1.10 -0.0 1.12 perf-profile.children.cycles-pp.mt_find
0.90 -0.0 0.87 -0.0 0.87 perf-profile.children.cycles-pp.userfaultfd_unmap_complete
0.62 -0.0 0.59 -0.0 0.60 perf-profile.children.cycles-pp.__put_partials
0.45 ± 6% -0.0 0.42 -0.0 0.43 perf-profile.children.cycles-pp._raw_spin_lock
0.48 -0.0 0.45 ± 2% -0.0 0.46 perf-profile.children.cycles-pp.mas_prev_range
0.61 -0.0 0.58 -0.0 0.59 perf-profile.children.cycles-pp.entry_SYSCALL_64
0.31 ± 3% -0.0 0.28 ± 3% -0.0 0.31 perf-profile.children.cycles-pp.security_vm_enough_memory_mm
0.33 ± 3% -0.0 0.30 ± 2% -0.0 0.31 ± 4% perf-profile.children.cycles-pp.mas_put_in_tree
0.32 ± 2% -0.0 0.29 ± 2% -0.0 0.30 perf-profile.children.cycles-pp.tlb_finish_mmu
0.46 -0.0 0.44 ± 2% -0.0 0.46 perf-profile.children.cycles-pp.rcu_segcblist_enqueue
0.33 -0.0 0.31 -0.0 0.32 perf-profile.children.cycles-pp.mas_destroy
0.36 -0.0 0.34 -0.0 0.34 perf-profile.children.cycles-pp.__rb_insert_augmented
0.39 -0.0 0.37 -0.0 0.38 ± 2% perf-profile.children.cycles-pp.down_write_killable
0.29 -0.0 0.27 ± 2% -0.0 0.28 perf-profile.children.cycles-pp.tlb_gather_mmu
0.26 -0.0 0.24 ± 2% -0.0 0.25 ± 2% perf-profile.children.cycles-pp.syscall_exit_to_user_mode
0.16 ± 2% -0.0 0.14 ± 3% -0.0 0.14 ± 3% perf-profile.children.cycles-pp.mas_wr_append
0.30 ± 2% -0.0 0.28 ± 2% -0.0 0.29 ± 2% perf-profile.children.cycles-pp.__vm_enough_memory
0.32 -0.0 0.30 ± 2% -0.0 0.31 perf-profile.children.cycles-pp.pte_offset_map_nolock
2.83 +0.0 2.85 ± 2% -0.1 2.74 perf-profile.children.cycles-pp.unlink_anon_vmas
0.84 +0.0 0.86 -0.0 0.81 perf-profile.children.cycles-pp.thp_get_unmapped_area_vmflags
0.08 ± 5% +0.0 0.10 ± 3% -0.0 0.08 ± 6% perf-profile.children.cycles-pp.mm_get_unmapped_area_vmflags
3.52 +0.0 3.56 -0.1 3.42 perf-profile.children.cycles-pp.free_pgtables
0.78 +0.1 0.85 +0.1 0.86 perf-profile.children.cycles-pp.__madvise
0.63 +0.1 0.70 +0.1 0.72 perf-profile.children.cycles-pp.__x64_sys_madvise
0.63 +0.1 0.70 +0.1 0.71 perf-profile.children.cycles-pp.do_madvise
0.00 +0.1 0.09 ± 3% +0.1 0.10 ± 5% perf-profile.children.cycles-pp.can_modify_mm_madv
1.31 +0.2 1.46 +0.2 1.50 perf-profile.children.cycles-pp.mas_next_slot
83.90 +0.9 84.79 +0.6 84.53 perf-profile.children.cycles-pp.__do_sys_mremap
40.45 +1.4 41.90 +2.1 42.57 perf-profile.children.cycles-pp.do_vmi_munmap
2.12 +1.5 3.62 +1.7 3.82 perf-profile.children.cycles-pp.do_munmap
3.63 +2.4 5.98 +1.7 5.29 perf-profile.children.cycles-pp.mas_walk
5.40 +3.0 8.44 +1.6 6.97 perf-profile.children.cycles-pp.mremap_to
5.26 +3.2 8.48 +2.3 7.58 perf-profile.children.cycles-pp.mas_find
0.00 +5.5 5.46 +3.9 3.93 perf-profile.children.cycles-pp.can_modify_mm
11.49 -0.6 10.89 -0.4 11.10 perf-profile.self.cycles-pp.__slab_free
4.32 -0.3 4.06 -0.2 4.16 perf-profile.self.cycles-pp.__memcg_slab_post_alloc_hook
1.96 -0.2 1.77 ± 4% -0.1 1.84 ± 6% perf-profile.self.cycles-pp.__memcpy
2.36 -0.1 2.25 ± 2% -0.1 2.25 ± 3% perf-profile.self.cycles-pp.down_write
2.42 -0.1 2.31 -0.0 2.38 perf-profile.self.cycles-pp.rcu_cblist_dequeue
2.33 -0.1 2.23 -0.1 2.28 perf-profile.self.cycles-pp.mtree_load
2.21 -0.1 2.10 -0.1 2.14 perf-profile.self.cycles-pp.native_flush_tlb_one_user
1.62 -0.1 1.54 -0.0 1.57 perf-profile.self.cycles-pp.__memcg_slab_free_hook
1.52 -0.1 1.44 -0.1 1.46 perf-profile.self.cycles-pp.mas_wr_walk
1.44 -0.1 1.36 -0.1 1.38 ± 2% perf-profile.self.cycles-pp.__call_rcu_common
1.53 -0.1 1.45 -0.0 1.48 perf-profile.self.cycles-pp.up_write
1.72 -0.1 1.65 -0.0 1.70 perf-profile.self.cycles-pp.mod_objcg_state
0.69 ± 2% -0.1 0.63 -0.1 0.63 perf-profile.self.cycles-pp.rcu_all_qs
1.14 ± 2% -0.1 1.08 -0.0 1.09 ± 2% perf-profile.self.cycles-pp.shuffle_freelist
1.18 -0.1 1.12 -0.0 1.17 perf-profile.self.cycles-pp.vma_merge
1.38 -0.1 1.33 -0.0 1.35 perf-profile.self.cycles-pp.do_vmi_align_munmap
0.51 ± 2% -0.1 0.45 -0.0 0.49 perf-profile.self.cycles-pp.security_mmap_addr
0.62 -0.1 0.56 ± 2% -0.1 0.56 perf-profile.self.cycles-pp.mremap
0.89 -0.1 0.83 -0.0 0.85 perf-profile.self.cycles-pp.___slab_alloc
0.99 -0.1 0.94 -0.0 0.96 perf-profile.self.cycles-pp.mas_prev_slot
1.00 -0.0 0.95 -0.0 0.96 perf-profile.self.cycles-pp.mas_preallocate
0.98 -0.0 0.93 -0.0 0.95 perf-profile.self.cycles-pp.move_ptes
0.85 -0.0 0.80 -0.0 0.82 perf-profile.self.cycles-pp.mas_pop_node
0.94 -0.0 0.90 -0.0 0.91 ± 2% perf-profile.self.cycles-pp.vm_area_free_rcu_cb
1.09 -0.0 1.04 -0.0 1.06 perf-profile.self.cycles-pp.__cond_resched
0.77 -0.0 0.72 -0.0 0.74 perf-profile.self.cycles-pp.percpu_counter_add_batch
0.94 ± 2% -0.0 0.89 ± 2% -0.1 0.87 perf-profile.self.cycles-pp.mas_leaf_max_gap
1.17 -0.0 1.12 -0.0 1.14 perf-profile.self.cycles-pp.clear_bhb_loop
0.68 -0.0 0.63 -0.0 0.65 perf-profile.self.cycles-pp.__split_vma
0.79 -0.0 0.75 -0.0 0.77 perf-profile.self.cycles-pp.mas_wr_store_entry
1.22 -0.0 1.18 -0.0 1.18 perf-profile.self.cycles-pp.move_vma
0.43 ± 2% -0.0 0.40 ± 2% -0.0 0.40 perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath
1.49 -0.0 1.45 +0.0 1.49 perf-profile.self.cycles-pp.kmem_cache_free
0.44 -0.0 0.40 -0.0 0.40 perf-profile.self.cycles-pp.do_munmap
0.45 -0.0 0.42 -0.0 0.43 perf-profile.self.cycles-pp.mas_wr_end_piv
0.89 -0.0 0.86 -0.0 0.88 perf-profile.self.cycles-pp.mas_store_gfp
0.78 -0.0 0.75 -0.0 0.76 perf-profile.self.cycles-pp.userfaultfd_unmap_complete
0.66 -0.0 0.62 -0.0 0.64 perf-profile.self.cycles-pp.mas_store_prealloc
0.60 -0.0 0.58 -0.0 0.59 perf-profile.self.cycles-pp.unmap_region
0.36 ± 4% -0.0 0.33 ± 3% -0.0 0.34 ± 2% perf-profile.self.cycles-pp.syscall_return_via_sysret
0.55 -0.0 0.52 -0.0 0.53 perf-profile.self.cycles-pp.get_old_pud
0.99 -0.0 0.97 -0.0 0.98 perf-profile.self.cycles-pp.mt_find
0.61 -0.0 0.58 -0.0 0.60 perf-profile.self.cycles-pp.copy_vma
0.43 ± 3% -0.0 0.40 -0.0 0.41 ± 4% perf-profile.self.cycles-pp.anon_vma_interval_tree_insert
0.49 -0.0 0.47 -0.0 0.48 perf-profile.self.cycles-pp.find_vma_prev
0.71 -0.0 0.68 -0.0 0.70 perf-profile.self.cycles-pp.unmap_page_range
0.27 -0.0 0.25 -0.0 0.26 perf-profile.self.cycles-pp.mas_prev_setup
0.47 -0.0 0.45 -0.0 0.46 ± 2% perf-profile.self.cycles-pp.flush_tlb_mm_range
0.37 ± 6% -0.0 0.35 -0.0 0.35 perf-profile.self.cycles-pp._raw_spin_lock
0.41 -0.0 0.39 -0.0 0.40 perf-profile.self.cycles-pp._raw_spin_lock_irqsave
0.40 -0.0 0.37 -0.0 0.38 perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
0.27 -0.0 0.25 ± 2% -0.0 0.25 ± 3% perf-profile.self.cycles-pp.mas_put_in_tree
0.49 -0.0 0.47 -0.0 0.49 perf-profile.self.cycles-pp.refill_obj_stock
0.48 -0.0 0.46 -0.0 0.47 perf-profile.self.cycles-pp.entry_SYSCALL_64_after_hwframe
0.27 ± 2% -0.0 0.25 -0.0 0.26 perf-profile.self.cycles-pp.tlb_finish_mmu
0.24 ± 2% -0.0 0.22 -0.0 0.23 perf-profile.self.cycles-pp.mas_prev
0.28 -0.0 0.26 -0.0 0.27 ± 2% perf-profile.self.cycles-pp.mas_alloc_nodes
0.40 -0.0 0.39 -0.0 0.40 perf-profile.self.cycles-pp.__pte_offset_map_lock
0.14 ± 3% -0.0 0.12 ± 2% -0.0 0.13 ± 3% perf-profile.self.cycles-pp.syscall_exit_to_user_mode
0.26 -0.0 0.24 ± 2% -0.0 0.25 perf-profile.self.cycles-pp.__rb_insert_augmented
0.28 -0.0 0.26 -0.0 0.27 perf-profile.self.cycles-pp.alloc_new_pud
0.28 -0.0 0.26 -0.0 0.27 ± 2% perf-profile.self.cycles-pp.flush_tlb_func
0.20 ± 2% -0.0 0.19 -0.0 0.19 ± 2% perf-profile.self.cycles-pp.__get_unmapped_area
0.47 -0.0 0.46 -0.0 0.45 perf-profile.self.cycles-pp.arch_get_unmapped_area_topdown_vmflags
0.06 -0.0 0.05 ± 5% -0.0 0.05 perf-profile.self.cycles-pp.vma_dup_policy
0.06 ± 6% +0.0 0.07 -0.0 0.06 ± 8% perf-profile.self.cycles-pp.mm_get_unmapped_area_vmflags
0.11 ± 4% +0.0 0.12 ± 4% +0.0 0.12 ± 4% perf-profile.self.cycles-pp.free_pgd_range
0.21 +0.0 0.22 ± 2% -0.0 0.20 ± 2% perf-profile.self.cycles-pp.thp_get_unmapped_area_vmflags
0.45 +0.0 0.48 +0.0 0.50 perf-profile.self.cycles-pp.do_vmi_munmap
0.27 +0.0 0.32 -0.0 0.26 perf-profile.self.cycles-pp.free_pgtables
0.36 ± 2% +0.1 0.44 -0.0 0.35 perf-profile.self.cycles-pp.unlink_anon_vmas
1.07 +0.1 1.19 +0.2 1.22 perf-profile.self.cycles-pp.mas_next_slot
1.49 +0.5 2.01 +0.4 1.86 perf-profile.self.cycles-pp.mas_find
0.00 +1.4 1.37 +0.9 0.93 perf-profile.self.cycles-pp.can_modify_mm
3.14 +2.1 5.23 +1.5 4.60 perf-profile.self.cycles-pp.mas_walk
>
>
> >
> > to avoid the impact of other changes, better to apply the patch upon 8be7258a
> > directly.
> >
> > if you prefer other base for this patch, please let us know. then we will
> > supply the results for 4 commits in fact:
> >
> > this patch
> > the base of this patch
> > 8be7258a: mseal: add mseal syscall
> > ff388fe5c: mseal: wire up mseal syscall
> >
> > >
> > > > >
> > > > > Thank you for your time and assistance in helping me on understanding
> > > > > this issue.
> > > >
> > > > due to resource constraint, please expect that we need several days to finish
> > > > this test request.
> > > No problem.
> > >
> > > Thanks for your help!
> > > -Jeff
> > >
> > > > >
> > > > > Best regards,
> > > > > -Jeff
> > > > >
> > > > > > -Jeff
> > > > > >
> > > > > > > [1] https://lore.kernel.org/lkml/202408041602.caa0372-oliver.sang@intel.com/
> > > > > > > [2] https://github.com/peaktocreek/mmperf/blob/main/run_stress_ng.c
> > > > > > >
> > > > > > >
> > > > > > > Jeff Xu (2):
> > > > > > > mseal:selftest mremap across VMA boundaries.
> > > > > > > mseal: refactor mremap to remove can_modify_mm
> > > > > > >
> > > > > > > mm/internal.h | 24 ++
> > > > > > > mm/mremap.c | 77 +++----
> > > > > > > mm/mseal.c | 17 --
> > > > > > > tools/testing/selftests/mm/mseal_test.c | 293 +++++++++++++++++++++++-
> > > > > > > 4 files changed, 353 insertions(+), 58 deletions(-)
> > > > > > >
> > > > > > > --
> > > > > > > 2.46.0.76.ge559c4bf1a-goog
> > > > > > >
Powered by blists - more mailing lists