Hi Rong,

On 11/02/2018 03:14 AM, kernel test robot wrote:
> Greeting,
> 
> FYI, we noticed a -4.0% regression of will-it-scale.per_process_ops due to 
> commit:
> 
> 
> commit: fd978bf7fd312581a7ca454a991f0ffb34c4204b ("bpf: Add reference 
> tracking to verifier")
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master
> 
> in testcase: will-it-scale
> on test machine: 80 threads Skylake with 64G memory
> with following parameters:
> 
>       nr_task: 100%
>       mode: process
>       test: mmap1
>       cpufreq_governor: performance

Hmm, so the test cases you are running are these ones:

  https://github.com/antonblanchard/will-it-scale/blob/master/tests/mmap1.c
  https://github.com/antonblanchard/will-it-scale/blob/master/tests/mmap2.c

The commit from Joe referenced above only adds a feature to the (eBPF) 
verifier. Looking
through will-it-scale test suite, looks like there's neither cBPF nor eBPF in 
use and if
it would have been the former (e.g. via seccomp BPF), then also this has no 
effect on it
since this doesn't load through bpf(2); meaning if so then something must use 
eBPF here,
but then it's also unclear right now how this would even remotely affect mmap() 
test
performance by -4%. Hm, are you certain it's not a false bisection? If so, what 
else is
loading eBPF on your machine in parallel when you run the tests?

Thanks,
Daniel

> test-description: Will It Scale takes a testcase and runs it from 1 through 
> to n parallel copies to see if the testcase will scale. It builds both a 
> process and threads based test in order to see any differences between the 
> two.
> test-url: https://github.com/antonblanchard/will-it-scale
> 
> In addition to that, the commit also has significant impact on the following 
> tests:
> 
> +------------------+---------------------------------------------------------------+
> | testcase: change | will-it-scale: will-it-scale.per_process_ops -3.8% 
> regression |
> | test machine     | 80 threads Skylake with 64G memory                       
>      |
> | test parameters  | cpufreq_governor=performance                             
>      |
> |                  | mode=process                                             
>      |
> |                  | nr_task=100%                                             
>      |
> |                  | test=mmap2                                               
>      |
> +------------------+---------------------------------------------------------------+
> 
> 
> Details are as below:
> -------------------------------------------------------------------------------------------------->
> 
> 
> To reproduce:
> 
>         git clone https://github.com/intel/lkp-tests.git
>         cd lkp-tests
>         bin/lkp install job.yaml  # job file is attached in this email
>         bin/lkp run     job.yaml
> 
> =========================================================================================
> compiler/cpufreq_governor/kconfig/mode/nr_task/rootfs/tbox_group/test/testcase:
>   
> gcc-7/performance/x86_64-rhel-7.2/process/100%/debian-x86_64-2018-04-03.cgz/lkp-skl-2sp2/mmap1/will-it-scale
> 
> commit: 
>   84dbf35073 ("bpf: Macrofy stack state copy")
>   fd978bf7fd ("bpf: Add reference tracking to verifier")
> 
> 84dbf3507349696b fd978bf7fd312581a7ca454a99 
> ---------------- -------------------------- 
>          %stddev     %change         %stddev
>              \          |                \  
>      16811            -4.0%      16140        will-it-scale.per_process_ops
>    1344946            -4.0%    1291230        will-it-scale.workload
>     107.75 ± 38%    +252.4%     379.75 ± 93%  cpuidle.POLL.usage
>     121.70 ± 18%     +18.9%     144.70 ±  4%  
> sched_debug.cfs_rq:/.exec_clock.stddev
>       4933            +2.0%       5031        proc-vmstat.nr_inactive_anon
>       4933            +2.0%       5031        
> proc-vmstat.nr_zone_inactive_anon
>       9874            +9.0%      10765 ±  7%  
> slabinfo.proc_inode_cache.active_objs
>       9874            +9.0%      10765 ±  7%  
> slabinfo.proc_inode_cache.num_objs
>      12248 ± 50%     +52.2%      18640 ±  2%  numa-meminfo.node0.Inactive
>      33943 ±  8%     +16.2%      39453 ±  6%  numa-meminfo.node0.SReclaimable
>      91549 ±  9%      -9.9%      82530 ±  7%  numa-meminfo.node1.Slab
>      18091 ± 15%     +29.2%      23382 ± 17%  numa-vmstat.node0
>       3027 ± 52%     +52.6%       4620 ±  3%  
> numa-vmstat.node0.nr_inactive_anon
>       8485 ±  8%     +16.2%       9862 ±  6%  
> numa-vmstat.node0.nr_slab_reclaimable
>       3027 ± 52%     +52.6%       4620 ±  3%  
> numa-vmstat.node0.nr_zone_inactive_anon
>    1.4e+12            -2.5%  1.364e+12        perf-stat.branch-instructions
>      41.42            +0.7       42.15        perf-stat.cache-miss-rate%
>  2.166e+10            -2.1%   2.12e+10        perf-stat.cache-references
>      12.16            +2.7%      12.49        perf-stat.cpi
>  1.741e+12            -2.8%  1.692e+12        perf-stat.dTLB-loads
>       0.00 ±  3%      +0.0        0.00 ±  9%  perf-stat.dTLB-store-miss-rate%
>  5.713e+11            -3.9%   5.49e+11        perf-stat.dTLB-stores
>  6.103e+12            -2.6%  5.943e+12        perf-stat.instructions
>       0.08            -2.6%       0.08        perf-stat.ipc
>  1.954e+09            -1.8%  1.919e+09        perf-stat.node-load-misses
>    4538060            +1.4%    4602862        perf-stat.path-length
>      49.62            -0.5       49.14        
> perf-profile.calltrace.cycles-pp.do_munmap.vm_munmap.__x64_sys_munmap.do_syscall_64.entry_SYSCALL_64_after_hwframe
>      47.64            -0.5       47.17        
> perf-profile.calltrace.cycles-pp._raw_spin_lock_irqsave.percpu_counter_add_batch.do_munmap.vm_munmap.__x64_sys_munmap
>      47.49            -0.5       47.02        
> perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock_irqsave.percpu_counter_add_batch.do_munmap.vm_munmap
>      49.99            -0.5       49.53        
> perf-profile.calltrace.cycles-pp.__x64_sys_munmap.do_syscall_64.entry_SYSCALL_64_after_hwframe
>      49.96            -0.5       49.51        
> perf-profile.calltrace.cycles-pp.vm_munmap.__x64_sys_munmap.do_syscall_64.entry_SYSCALL_64_after_hwframe
>      48.02            -0.4       47.58        
> perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.do_munmap.vm_munmap.__x64_sys_munmap.do_syscall_64
>       1.41            -0.0        1.37        
> perf-profile.calltrace.cycles-pp.unmap_region.do_munmap.vm_munmap.__x64_sys_munmap.do_syscall_64
>      47.73            +0.4       48.11        
> perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock_irqsave.percpu_counter_add_batch.__vm_enough_memory.mmap_region
>      47.85            +0.4       48.25        
> perf-profile.calltrace.cycles-pp._raw_spin_lock_irqsave.percpu_counter_add_batch.__vm_enough_memory.mmap_region.do_mmap
>      48.28            +0.4       48.68        
> perf-profile.calltrace.cycles-pp.__vm_enough_memory.mmap_region.do_mmap.vm_mmap_pgoff.ksys_mmap_pgoff
>      48.23            +0.4       48.63        
> perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.__vm_enough_memory.mmap_region.do_mmap.vm_mmap_pgoff
>      48.96            +0.4       49.41        
> perf-profile.calltrace.cycles-pp.mmap_region.do_mmap.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64
>      49.11            +0.5       49.56        
> perf-profile.calltrace.cycles-pp.do_mmap.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
>      49.24            +0.5       49.70        
> perf-profile.calltrace.cycles-pp.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
>      49.25            +0.5       49.72        
> perf-profile.calltrace.cycles-pp.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
>      49.62            -0.5       49.15        
> perf-profile.children.cycles-pp.do_munmap
>      49.99            -0.5       49.53        
> perf-profile.children.cycles-pp.__x64_sys_munmap
>      49.97            -0.5       49.51        
> perf-profile.children.cycles-pp.vm_munmap
>       0.51 ±  2%      -0.0        0.46        
> perf-profile.children.cycles-pp.___might_sleep
>       1.16            -0.0        1.11        
> perf-profile.children.cycles-pp.unmap_vmas
>       1.15            -0.0        1.10        
> perf-profile.children.cycles-pp.unmap_page_range
>       1.41            -0.0        1.37        
> perf-profile.children.cycles-pp.unmap_region
>       0.32 ±  2%      +0.0        0.34 ±  2%  
> perf-profile.children.cycles-pp.up_write
>       0.32 ±  2%      +0.0        0.34        
> perf-profile.children.cycles-pp.vm_area_alloc
>       0.29            +0.0        0.32        
> perf-profile.children.cycles-pp.kmem_cache_alloc
>      48.28            +0.4       48.68        
> perf-profile.children.cycles-pp.__vm_enough_memory
>      48.96            +0.4       49.41        
> perf-profile.children.cycles-pp.mmap_region
>      49.11            +0.5       49.56        
> perf-profile.children.cycles-pp.do_mmap
>      49.25            +0.5       49.71        
> perf-profile.children.cycles-pp.vm_mmap_pgoff
>      49.25            +0.5       49.72        
> perf-profile.children.cycles-pp.ksys_mmap_pgoff
>       0.47 ±  3%      -0.0        0.43        
> perf-profile.self.cycles-pp.___might_sleep
>       0.32 ±  3%      +0.0        0.34 ±  2%  
> perf-profile.self.cycles-pp.up_write
>       0.27            +0.0        0.30        
> perf-profile.self.cycles-pp.kmem_cache_alloc
>       0.49            +0.0        0.53        
> perf-profile.self.cycles-pp.percpu_counter_add_batch
> 
> 
>                                                                               
>   
>                             will-it-scale.per_process_ops                     
>   
>                                                                               
>   
>   18000 +-+-----------------------------------------------------------------+ 
>   
>         |                                                                   | 
>   
>   17500 +-+   +.+                                                           | 
>   
>         |+.+++  :            +.++++.+++           ++++.++++.++              | 
>   
>         |        :++. +      :        :          :            :             | 
>   
>   17000 +-+      +   + ++.++:          :  ++.+++ :            ++.+ ++.   +. | 
>   
>         |                   +          +.+      +                 +   +++  +| 
>   
>   16500 +-+                                                                 | 
>   
>         |              O  OOOO OOOO O O                                     | 
>   
>   16000 +-+           O O            O O O                                  | 
>   
>         |                                                                   | 
>   
>         O     O  OOO O                                                      | 
>   
>   15500 +O+OOO  O                                                           | 
>   
>         |                                                                   | 
>   
>   15000 +-+-----------------------------------------------------------------+ 
>   
>                                                                               
>   
>                                                                               
>                                                                               
>     
>                                 will-it-scale.workload                        
>   
>                                                                               
>   
>   1.42e+06 +-+--------------------------------------------------------------+ 
>   
>    1.4e+06 +-+   ++                                                         | 
>   
>            |++.++ :                 ++.                   +++.+             | 
>   
>   1.38e+06 +-+     :           +.+++   ++          ++++.++    :             | 
>   
>   1.36e+06 +-+     +.+++++.    :         :         :           :+           | 
>   
>            |               ++++          ++.+++++.+            + ++.+++++.++| 
>   
>   1.34e+06 +-+                                                              | 
>   
>   1.32e+06 +-+                                                              | 
>   
>    1.3e+06 +-+               O                                              | 
>   
>            |            OO OO OO OOOOO  OOO                                 | 
>   
>   1.28e+06 +-+                         O                                    | 
>   
>   1.26e+06 +-+       O                                                      | 
>   
>            O     O O  OO                                                    | 
>   
>   1.24e+06 +OO OO O                                                         | 
>   
>   1.22e+06 +-+--------------------------------------------------------------+ 
>   
>                                                                               
>   
>                                                                               
>   
> [*] bisect-good sample
> [O] bisect-bad  sample
> 
> ***************************************************************************************************
> lkp-skl-2sp2: 80 threads Skylake with 64G memory
> =========================================================================================
> compiler/cpufreq_governor/kconfig/mode/nr_task/rootfs/tbox_group/test/testcase:
>   
> gcc-7/performance/x86_64-rhel-7.2/process/100%/debian-x86_64-2018-04-03.cgz/lkp-skl-2sp2/mmap2/will-it-scale
> 
> commit: 
>   84dbf35073 ("bpf: Macrofy stack state copy")
>   fd978bf7fd ("bpf: Add reference tracking to verifier")
> 
> 84dbf3507349696b fd978bf7fd312581a7ca454a99 
> ---------------- -------------------------- 
>          %stddev     %change         %stddev
>              \          |                \  
>      16832            -3.8%      16186        will-it-scale.per_process_ops
>    1346634            -3.8%    1294984        will-it-scale.workload
>     390809 ± 21%     +51.6%     592424 ± 27%  cpuidle.C1.time
>       6897            +2.7%       7085        proc-vmstat.nr_mapped
>     936.00 ±  7%     +15.6%       1082 ±  5%  
> slabinfo.Acpi-ParseExt.active_objs
>     936.00 ±  7%     +15.6%       1082 ±  5%  slabinfo.Acpi-ParseExt.num_objs
>     968.00 ±  9%     +27.5%       1233 ± 16%  
> slabinfo.pool_workqueue.active_objs
>     968.00 ±  9%     +29.7%       1255 ± 16%  slabinfo.pool_workqueue.num_objs
>       8430           -14.1%       7244 ±  2%  numa-meminfo.node0.KernelStack
>       4283 ± 14%     -22.4%       3325 ± 10%  numa-meminfo.node0.PageTables
>      73929 ±  3%     -10.6%      66061 ±  6%  numa-meminfo.node0.SUnreclaim
>       5569 ±  2%     +21.0%       6738 ±  3%  numa-meminfo.node1.KernelStack
>      55085 ±  5%     +17.5%      64739 ±  5%  numa-meminfo.node1.SUnreclaim
>      81155 ±  6%     +16.2%      94292 ±  7%  numa-meminfo.node1.Slab
>     230.00          -100.0%       0.00        numa-vmstat.node0.nr_active_file
>     100.25 ±  3%     -88.8%      11.25 ±173%  
> numa-vmstat.node0.nr_inactive_file
>       8431           -14.1%       7245 ±  2%  
> numa-vmstat.node0.nr_kernel_stack
>       1071 ± 14%     -22.4%     831.25 ± 10%  
> numa-vmstat.node0.nr_page_table_pages
>      18482 ±  3%     -10.6%      16515 ±  6%  
> numa-vmstat.node0.nr_slab_unreclaimable
>     230.00          -100.0%       0.00        
> numa-vmstat.node0.nr_zone_active_file
>     100.25 ±  3%     -88.8%      11.25 ±173%  
> numa-vmstat.node0.nr_zone_inactive_file
>       5569 ±  2%     +21.0%       6738 ±  3%  
> numa-vmstat.node1.nr_kernel_stack
>       2778 ±  3%     +28.4%       3567 ± 16%  numa-vmstat.node1.nr_mapped
>      13771 ±  5%     +17.5%      16184 ±  5%  
> numa-vmstat.node1.nr_slab_unreclaimable
>  1.506e+12            -2.5%  1.468e+12        perf-stat.branch-instructions
>      41.41            +0.8       42.20        perf-stat.cache-miss-rate%
>  2.165e+10            -1.7%  2.129e+10        perf-stat.cache-references
>      11.25            +2.8%      11.57        perf-stat.cpi
>  1.891e+12            -2.8%  1.838e+12        perf-stat.dTLB-loads
>  6.543e+11            -3.7%    6.3e+11        perf-stat.dTLB-stores
>  6.591e+12            -2.6%  6.419e+12        perf-stat.instructions
>       0.09            -2.7%       0.09        perf-stat.ipc
>  1.967e+09            -1.3%  1.941e+09        perf-stat.node-load-misses
>    4894750            +1.3%    4956596        perf-stat.path-length
>      40.37 ± 12%     -16.2%      33.81 ±  7%  
> sched_debug.cfs_rq:/.load_avg.stddev
>       0.05 ±  2%     +18.7%       0.06 ±  3%  
> sched_debug.cfs_rq:/.nr_running.stddev
>       6.37 ± 40%     -50.2%       3.17 ± 32%  
> sched_debug.cfs_rq:/.removed.load_avg.avg
>      31.64 ± 18%     -28.5%      22.63 ± 16%  
> sched_debug.cfs_rq:/.removed.load_avg.stddev
>     293.89 ± 40%     -50.1%     146.61 ± 32%  
> sched_debug.cfs_rq:/.removed.runnable_sum.avg
>       1459 ± 18%     -28.3%       1045 ± 16%  
> sched_debug.cfs_rq:/.removed.runnable_sum.stddev
>       2.46 ± 43%     -60.9%       0.96 ± 66%  
> sched_debug.cfs_rq:/.removed.util_avg.avg
>      12.42 ± 26%     -46.5%       6.64 ± 59%  
> sched_debug.cfs_rq:/.removed.util_avg.stddev
>     385.92 ±  6%     +12.8%     435.46 ±  2%  sched_debug.cpu.nr_switches.min
>     -14.21           -31.4%      -9.75        
> sched_debug.cpu.nr_uninterruptible.min
>      47.54            -0.2       47.31        
> perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock_irqsave.percpu_counter_add_batch.do_munmap.vm_munmap
>      47.67            -0.2       47.45        
> perf-profile.calltrace.cycles-pp._raw_spin_lock_irqsave.percpu_counter_add_batch.do_munmap.vm_munmap.__x64_sys_munmap
>      48.04            -0.2       47.86        
> perf-profile.calltrace.cycles-pp.percpu_counter_add_batch.do_munmap.vm_munmap.__x64_sys_munmap.do_syscall_64
>      99.36            -0.0       99.34        
> perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe
>       1.47            +0.0        1.51        
> perf-profile.calltrace.cycles-pp.unmap_region.do_munmap.vm_munmap.__x64_sys_munmap.do_syscall_64
>      94.77            -0.3       94.52        
> perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
>      95.04            -0.2       94.81        
> perf-profile.children.cycles-pp._raw_spin_lock_irqsave
>      95.77            -0.2       95.60        
> perf-profile.children.cycles-pp.percpu_counter_add_batch
>      49.72            -0.1       49.58        
> perf-profile.children.cycles-pp.do_munmap
>       0.53 ±  2%      -0.1        0.47        
> perf-profile.children.cycles-pp.___might_sleep
>       0.30 ±  2%      +0.0        0.33        
> perf-profile.children.cycles-pp.perf_event_mmap
>       0.30 ±  3%      +0.0        0.33 ±  2%  
> perf-profile.children.cycles-pp.vm_area_alloc
>       0.33 ±  2%      +0.0        0.36 ±  2%  
> perf-profile.children.cycles-pp.up_write
>       1.48            +0.0        1.51        
> perf-profile.children.cycles-pp.unmap_region
>      94.77            -0.3       94.52        
> perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath
>       0.48 ±  2%      -0.0        0.44        
> perf-profile.self.cycles-pp.___might_sleep
>       0.33 ±  2%      +0.0        0.36 ±  2%  
> perf-profile.self.cycles-pp.up_write
>       0.53            +0.0        0.57        
> perf-profile.self.cycles-pp.unmap_page_range
>       0.47            +0.0        0.52 ±  2%  
> perf-profile.self.cycles-pp.percpu_counter_add_batch
> 
> 
> 
> 
> 
> Disclaimer:
> Results have been estimated based on internal Intel analysis and are provided
> for informational purposes only. Any difference in system hardware or software
> design or configuration may affect actual performance.
> 
> 
> Thanks,
> Rong Chen
> 

Reply via email to