Re: [mm/writeback] e5dbd33218: will-it-scale.per_process_ops -3.8% regression

From: Matthew Wilcox
Date: Fri Apr 23 2021 - 08:48:49 EST


On Fri, Apr 23, 2021 at 01:46:01PM +0800, kernel test robot wrote:
> FYI, we noticed a -3.8% regression of will-it-scale.per_process_ops due to commit:
> commit: e5dbd33218bd8d87ab69f730ab90aed5fab7eb26 ("mm/writeback: Add wait_on_page_writeback_killable")

That commit just adds a function. It doesn't add any callers. It must
just be moving something around ...

> 39f985c8f667c80a e5dbd33218bd8d87ab69f730ab9
> ---------------- ---------------------------
> %stddev %change %stddev
> \ | \
> 9359770 -3.8% 9001769 will-it-scale.16.processes
> 584985 -3.8% 562610 will-it-scale.per_process_ops
> 9359770 -3.8% 9001769 will-it-scale.workload
> 15996 -1.2% 15811 proc-vmstat.nr_kernel_stack
> 23577 ± 10% +18.5% 27937 ± 7% softirqs.CPU48.SCHED
> 5183 ± 41% +47.2% 7630 ± 7% interrupts.CPU1.NMI:Non-maskable_interrupts
> 5183 ± 41% +47.2% 7630 ± 7% interrupts.CPU1.PMI:Performance_monitoring_interrupts
> 54.33 ± 12% +18.4% 64.33 ± 7% perf-sched.wait_and_delay.count.schedule_hrtimeout_range_clock.poll_schedule_timeout.constprop.0.do_sys_poll
> 153.34 ± 24% -45.9% 83.00 ± 25% perf-sched.wait_and_delay.max.ms.schedule_timeout.rcu_gp_kthread.kthread.ret_from_fork
> 153.33 ± 24% -45.9% 82.99 ± 25% perf-sched.wait_time.max.ms.schedule_timeout.rcu_gp_kthread.kthread.ret_from_fork
> 2.424e+10 -3.8% 2.332e+10 perf-stat.i.branch-instructions
> 0.47 +3.7% 0.48 perf-stat.i.cpi
> 2.529e+10 -4.0% 2.428e+10 perf-stat.i.dTLB-loads
> 1.15e+10 -3.8% 1.106e+10 perf-stat.i.dTLB-stores
> 54249733 -4.8% 51627939 perf-stat.i.iTLB-load-misses
> 1.004e+11 -3.8% 9.661e+10 perf-stat.i.instructions
> 2.15 -3.6% 2.07 perf-stat.i.ipc
> 693.66 -3.9% 666.70 perf-stat.i.metric.M/sec
> 0.46 +3.7% 0.48 perf-stat.overall.cpi
> 2.15 -3.6% 2.08 perf-stat.overall.ipc
> 2.416e+10 -3.8% 2.324e+10 perf-stat.ps.branch-instructions
> 2.52e+10 -4.0% 2.419e+10 perf-stat.ps.dTLB-loads
> 1.146e+10 -3.8% 1.102e+10 perf-stat.ps.dTLB-stores
> 54065825 -4.8% 51454019 perf-stat.ps.iTLB-load-misses
> 1.001e+11 -3.8% 9.628e+10 perf-stat.ps.instructions
> 3.025e+13 -3.9% 2.908e+13 perf-stat.total.instructions
> 0.89 ± 14% -0.1 0.77 ± 11% perf-profile.calltrace.cycles-pp.atime_needs_update.touch_atime.shmem_mmap.mmap_region.do_mmap
> 0.14 ± 13% -0.1 0.04 ± 71% perf-profile.children.cycles-pp.common_mmap
> 0.61 ± 12% -0.1 0.52 ± 12% perf-profile.children.cycles-pp.common_file_perm
> 0.21 ± 8% -0.0 0.17 ± 11% perf-profile.children.cycles-pp.vma_set_page_prot
> 0.12 ± 8% -0.0 0.09 ± 12% perf-profile.children.cycles-pp.blocking_notifier_call_chain
> 0.12 ± 14% -0.0 0.09 ± 15% perf-profile.children.cycles-pp.get_mmap_base
> 0.09 ± 8% -0.0 0.07 ± 11% perf-profile.children.cycles-pp.vm_pgprot_modify
> 0.13 ± 15% +0.1 0.19 ± 8% perf-profile.children.cycles-pp.cap_capable
> 0.03 ±102% +0.1 0.12 ± 12% perf-profile.children.cycles-pp.munmap@plt
> 0.14 ± 13% +0.1 0.24 ± 6% perf-profile.children.cycles-pp.testcase
> 0.33 ± 10% -0.1 0.23 ± 10% perf-profile.self.cycles-pp.cap_vm_enough_memory
> 0.13 ± 11% -0.1 0.03 ±100% perf-profile.self.cycles-pp.common_mmap
> 0.48 ± 12% -0.1 0.41 ± 12% perf-profile.self.cycles-pp.common_file_perm
> 0.49 ± 12% -0.1 0.43 ± 13% perf-profile.self.cycles-pp.vm_area_alloc
> 0.12 ± 8% -0.0 0.09 ± 12% perf-profile.self.cycles-pp.blocking_notifier_call_chain
> 0.12 ± 13% -0.0 0.09 ± 14% perf-profile.self.cycles-pp.get_mmap_base
> 0.11 ± 8% +0.0 0.16 ± 10% perf-profile.self.cycles-pp.__x64_sys_munmap
> 0.11 ± 14% +0.1 0.18 ± 8% perf-profile.self.cycles-pp.cap_capable
> 0.12 ± 11% +0.1 0.20 ± 6% perf-profile.self.cycles-pp.testcase
> 0.01 ±223% +0.1 0.11 ± 13% perf-profile.self.cycles-pp.munmap@plt

I'm struggling to see anything in that that says anything other than
"we did 3-4% less work". Maybe someone else has something useful to
say about it?