[PATCH 15/16] commoncap: use vfs fscaps interfaces for killpriv checks

kernel test robot oliver.sang at intel.com
Mon Dec 11 07:57:42 UTC 2023



Hello,

kernel test robot noticed a -3.4% regression of unixbench.score on:


commit: 4d9674015c6c6b0d3dd2013f7fbff6a8648e59dd ("[PATCH 15/16] commoncap: use vfs fscaps interfaces for killpriv checks")
url: https://github.com/intel-lab-lkp/linux/commits/Seth-Forshee-DigitalOcean/mnt_idmapping-split-out-core-vfs-ug-id_t-definitions-into-vfsid-h/20231130-055846
patch link: https://lore.kernel.org/all/20231129-idmap-fscap-refactor-v1-15-da5a26058a5b@kernel.org/
patch subject: [PATCH 15/16] commoncap: use vfs fscaps interfaces for killpriv checks

testcase: unixbench
test machine: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
parameters:

	runtime: 300s
	nr_task: 100%
	test: fsbuffer
	cpufreq_governor: performance




If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang at intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202312111506.39e728bf-oliver.sang@intel.com


Details are as below:
-------------------------------------------------------------------------------------------------->


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20231211/202312111506.39e728bf-oliver.sang@intel.com

=========================================================================================
compiler/cpufreq_governor/kconfig/nr_task/rootfs/runtime/tbox_group/test/testcase:
  gcc-12/performance/x86_64-rhel-8.3/100%/debian-11.1-x86_64-20220510.cgz/300s/lkp-icl-2sp9/fsbuffer/unixbench

commit: 
  28b9eedcb5 ("commoncap: remove cap_inode_getsecurity()")
  4d9674015c ("commoncap: use vfs fscaps interfaces for killpriv checks")

28b9eedcb59f6969 4d9674015c6c6b0d3dd2013f7fb 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
    442.83 ±  8%     +13.6%     503.17 ±  5%  perf-c2c.DRAM.local
    106496            -3.4%     102870        unixbench.score
  8.46e+09            -3.3%  8.181e+09        unixbench.workload
     22955 ±  9%     -15.1%      19480 ±  8%  sched_debug.cfs_rq:/.load.avg
     52666 ±  8%     -20.2%      42050 ±  6%  sched_debug.cfs_rq:/.load.stddev
    696.27 ± 10%     -22.2%     541.75 ±  9%  sched_debug.cpu.curr->pid.stddev
      0.15 ± 13%     -18.8%       0.12 ± 10%  perf-sched.wait_and_delay.avg.ms.__cond_resched.__filemap_get_folio.simple_write_begin.generic_perform_write.generic_file_write_iter
      0.23 ± 12%     -25.8%       0.17 ± 14%  perf-sched.wait_and_delay.avg.ms.exit_to_user_mode_loop.exit_to_user_mode_prepare.irqentry_exit_to_user_mode.asm_sysvec_apic_timer_interrupt
    413.00 ±  4%     +17.7%     486.00 ±  7%  perf-sched.wait_and_delay.count.__cond_resched.__filemap_get_folio.simple_write_begin.generic_perform_write.generic_file_write_iter
      0.15 ± 13%     -18.8%       0.12 ± 10%  perf-sched.wait_time.avg.ms.__cond_resched.__filemap_get_folio.simple_write_begin.generic_perform_write.generic_file_write_iter
      0.22 ± 14%     -28.2%       0.16 ± 13%  perf-sched.wait_time.avg.ms.exit_to_user_mode_loop.exit_to_user_mode_prepare.irqentry_exit_to_user_mode.asm_sysvec_apic_timer_interrupt
 3.277e+10            +1.2%  3.316e+10        perf-stat.i.branch-instructions
 4.128e+08            -3.2%  3.997e+08        perf-stat.i.cache-references
    282058            -4.5%     269378        perf-stat.i.dTLB-load-misses
      7803 ± 44%     +24.8%       9740        perf-stat.overall.path-length
 2.728e+10 ± 44%     +21.4%  3.313e+10        perf-stat.ps.branch-instructions
     17.86            -1.0       16.83        perf-profile.calltrace.cycles-pp.generic_perform_write.generic_file_write_iter.vfs_write.ksys_write.do_syscall_64
      6.26            -0.3        5.93        perf-profile.calltrace.cycles-pp.simple_write_begin.generic_perform_write.generic_file_write_iter.vfs_write.ksys_write
      5.75            -0.3        5.43        perf-profile.calltrace.cycles-pp.__filemap_get_folio.simple_write_begin.generic_perform_write.generic_file_write_iter.vfs_write
      3.71            -0.2        3.50        perf-profile.calltrace.cycles-pp.copy_page_from_iter_atomic.generic_perform_write.generic_file_write_iter.vfs_write.ksys_write
      3.79            -0.2        3.58        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64.write
      2.55            -0.2        2.34        perf-profile.calltrace.cycles-pp.simple_write_end.generic_perform_write.generic_file_write_iter.vfs_write.ksys_write
      3.11 ±  2%      -0.2        2.93        perf-profile.calltrace.cycles-pp.filemap_get_entry.__filemap_get_folio.simple_write_begin.generic_perform_write.generic_file_write_iter
      2.34            -0.1        2.20        perf-profile.calltrace.cycles-pp.__fsnotify_parent.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
      2.08            -0.1        1.94        perf-profile.calltrace.cycles-pp.file_update_time.__generic_file_write_iter.generic_file_write_iter.vfs_write.ksys_write
      2.74            -0.1        2.62        perf-profile.calltrace.cycles-pp.fault_in_iov_iter_readable.generic_perform_write.generic_file_write_iter.vfs_write.ksys_write
      1.70            -0.1        1.59        perf-profile.calltrace.cycles-pp.inode_needs_update_time.file_update_time.__generic_file_write_iter.generic_file_write_iter.vfs_write
      1.32 ±  2%      -0.1        1.23        perf-profile.calltrace.cycles-pp.xas_load.filemap_get_entry.__filemap_get_folio.simple_write_begin.generic_perform_write
      1.20            -0.1        1.11 ±  2%  perf-profile.calltrace.cycles-pp.down_write.generic_file_write_iter.vfs_write.ksys_write.do_syscall_64
      0.57 ±  3%      -0.1        0.52 ±  2%  perf-profile.calltrace.cycles-pp.xas_descend.xas_load.filemap_get_entry.__filemap_get_folio.simple_write_begin
      0.78 ±  2%      -0.0        0.74        perf-profile.calltrace.cycles-pp.up_write.generic_file_write_iter.vfs_write.ksys_write.do_syscall_64
      1.01            -0.0        0.96        perf-profile.calltrace.cycles-pp.generic_write_checks.generic_file_write_iter.vfs_write.ksys_write.do_syscall_64
      0.75            -0.0        0.71 ±  2%  perf-profile.calltrace.cycles-pp.folio_unlock.simple_write_end.generic_perform_write.generic_file_write_iter.vfs_write
      0.68 ±  5%      +0.1        0.77        perf-profile.calltrace.cycles-pp.xas_descend.xas_load.filemap_get_read_batch.filemap_get_pages.filemap_read
      1.72 ±  3%      +0.1        1.84        perf-profile.calltrace.cycles-pp.xas_load.filemap_get_read_batch.filemap_get_pages.filemap_read.vfs_read
     43.59            +0.3       43.87        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.write
     42.78            +0.3       43.10        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.write
     40.44            +0.4       40.84        perf-profile.calltrace.cycles-pp.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe.write
     38.06            +0.5       38.58        perf-profile.calltrace.cycles-pp.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe.write
      0.00            +0.6        0.55 ±  4%  perf-profile.calltrace.cycles-pp.xattr_resolve_name.vfs_getxattr_alloc.__vfs_get_fscaps.cap_inode_need_killpriv.security_inode_need_killpriv
     28.82            +0.9       29.74        perf-profile.calltrace.cycles-pp.generic_file_write_iter.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.00            +1.5        1.47        perf-profile.calltrace.cycles-pp.strncmp.xattr_permission.vfs_getxattr_alloc.__vfs_get_fscaps.cap_inode_need_killpriv
      0.00            +1.8        1.84        perf-profile.calltrace.cycles-pp.xattr_permission.vfs_getxattr_alloc.__vfs_get_fscaps.cap_inode_need_killpriv.security_inode_need_killpriv
      6.70            +2.2        8.92        perf-profile.calltrace.cycles-pp.__generic_file_write_iter.generic_file_write_iter.vfs_write.ksys_write.do_syscall_64
      3.86            +2.4        6.26        perf-profile.calltrace.cycles-pp.__file_remove_privs.__generic_file_write_iter.generic_file_write_iter.vfs_write.ksys_write
      2.37            +2.5        4.90        perf-profile.calltrace.cycles-pp.security_inode_need_killpriv.__file_remove_privs.__generic_file_write_iter.generic_file_write_iter.vfs_write
      1.94            +2.6        4.52        perf-profile.calltrace.cycles-pp.cap_inode_need_killpriv.security_inode_need_killpriv.__file_remove_privs.__generic_file_write_iter.generic_file_write_iter
      0.00            +3.0        2.98        perf-profile.calltrace.cycles-pp.vfs_getxattr_alloc.__vfs_get_fscaps.cap_inode_need_killpriv.security_inode_need_killpriv.__file_remove_privs
      0.00            +4.1        4.08        perf-profile.calltrace.cycles-pp.__vfs_get_fscaps.cap_inode_need_killpriv.security_inode_need_killpriv.__file_remove_privs.__generic_file_write_iter
     18.27            -1.0       17.22        perf-profile.children.cycles-pp.generic_perform_write
      6.36            -0.3        6.03        perf-profile.children.cycles-pp.simple_write_begin
      5.96            -0.3        5.64        perf-profile.children.cycles-pp.__filemap_get_folio
      2.71            -0.2        2.49        perf-profile.children.cycles-pp.simple_write_end
      3.76            -0.2        3.55        perf-profile.children.cycles-pp.copy_page_from_iter_atomic
      3.21 ±  2%      -0.2        3.02        perf-profile.children.cycles-pp.filemap_get_entry
      2.23            -0.1        2.08        perf-profile.children.cycles-pp.file_update_time
      1.90            -0.1        1.77        perf-profile.children.cycles-pp.inode_needs_update_time
      2.86            -0.1        2.74        perf-profile.children.cycles-pp.fault_in_iov_iter_readable
      4.92            -0.1        4.81        perf-profile.children.cycles-pp.entry_SYSCALL_64
      2.44            -0.1        2.33        perf-profile.children.cycles-pp.fault_in_readable
      1.31            -0.1        1.21 ±  2%  perf-profile.children.cycles-pp.down_write
      3.93            -0.1        3.86        perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.55 ±  3%      -0.1        0.49 ±  2%  perf-profile.children.cycles-pp.folio_mark_dirty
      0.85 ±  3%      -0.1        0.79 ±  2%  perf-profile.children.cycles-pp.up_write
      0.56            -0.1        0.50        perf-profile.children.cycles-pp.balance_dirty_pages_ratelimited_flags
      0.80            -0.1        0.75 ±  2%  perf-profile.children.cycles-pp.folio_unlock
      0.58 ±  2%      -0.0        0.53 ±  2%  perf-profile.children.cycles-pp.w_test
      1.16            -0.0        1.11        perf-profile.children.cycles-pp.generic_write_checks
      1.12            -0.0        1.07        perf-profile.children.cycles-pp.syscall_enter_from_user_mode
      0.54            -0.0        0.50 ±  2%  perf-profile.children.cycles-pp.folio_mapping
      0.62 ±  2%      -0.0        0.59        perf-profile.children.cycles-pp.timestamp_truncate
      0.52            -0.0        0.49 ±  2%  perf-profile.children.cycles-pp.generic_write_check_limits
      0.42            -0.0        0.40 ±  2%  perf-profile.children.cycles-pp.folio_wait_stable
      0.37            -0.0        0.35        perf-profile.children.cycles-pp.setattr_should_drop_suidgid
      0.22 ±  2%      -0.0        0.21 ±  3%  perf-profile.children.cycles-pp.inode_to_bdi
      0.17 ±  2%      -0.0        0.15 ±  3%  perf-profile.children.cycles-pp.is_bad_inode
      0.58 ±  2%      +0.1        0.66 ±  4%  perf-profile.children.cycles-pp.xattr_resolve_name
      0.00            +0.3        0.27 ±  2%  perf-profile.children.cycles-pp.kfree
     86.62            +0.3       86.93        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
     85.38            +0.3       85.71        perf-profile.children.cycles-pp.do_syscall_64
     40.67            +0.4       41.06        perf-profile.children.cycles-pp.ksys_write
     38.45            +0.5       38.96        perf-profile.children.cycles-pp.vfs_write
     29.06            +0.9       29.98        perf-profile.children.cycles-pp.generic_file_write_iter
      0.00            +1.5        1.54        perf-profile.children.cycles-pp.strncmp
      0.00            +2.0        2.00        perf-profile.children.cycles-pp.xattr_permission
      6.86            +2.2        9.07        perf-profile.children.cycles-pp.__generic_file_write_iter
      4.03            +2.4        6.42        perf-profile.children.cycles-pp.__file_remove_privs
      2.49            +2.5        5.00        perf-profile.children.cycles-pp.security_inode_need_killpriv
      2.07            +2.6        4.63        perf-profile.children.cycles-pp.cap_inode_need_killpriv
      0.00            +3.3        3.26        perf-profile.children.cycles-pp.vfs_getxattr_alloc
      0.00            +4.3        4.27        perf-profile.children.cycles-pp.__vfs_get_fscaps
      3.70            -0.2        3.49        perf-profile.self.cycles-pp.copy_page_from_iter_atomic
      3.91            -0.2        3.72        perf-profile.self.cycles-pp.vfs_write
      1.30            -0.1        1.18        perf-profile.self.cycles-pp.simple_write_end
      1.23            -0.1        1.12 ±  2%  perf-profile.self.cycles-pp.__file_remove_privs
      1.86            -0.1        1.75        perf-profile.self.cycles-pp.generic_perform_write
      2.37            -0.1        2.26        perf-profile.self.cycles-pp.fault_in_readable
      1.83            -0.1        1.73        perf-profile.self.cycles-pp.write
      0.90            -0.1        0.81 ±  3%  perf-profile.self.cycles-pp.down_write
      1.98            -0.1        1.89        perf-profile.self.cycles-pp.__filemap_get_folio
      7.88            -0.1        7.80        perf-profile.self.cycles-pp.__fsnotify_parent
      3.80            -0.1        3.73        perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.97            -0.1        0.90 ±  2%  perf-profile.self.cycles-pp.inode_needs_update_time
      0.80 ±  3%      -0.1        0.74 ±  2%  perf-profile.self.cycles-pp.up_write
      0.42            -0.0        0.36 ±  3%  perf-profile.self.cycles-pp.security_inode_need_killpriv
      0.52 ±  2%      -0.0        0.48 ±  2%  perf-profile.self.cycles-pp.w_test
      0.74            -0.0        0.70 ±  2%  perf-profile.self.cycles-pp.folio_unlock
      0.96            -0.0        0.91        perf-profile.self.cycles-pp.syscall_enter_from_user_mode
      0.71            -0.0        0.67        perf-profile.self.cycles-pp.ksys_write
      0.83            -0.0        0.79        perf-profile.self.cycles-pp.generic_file_write_iter
      0.38            -0.0        0.35        perf-profile.self.cycles-pp.balance_dirty_pages_ratelimited_flags
      0.42 ±  2%      -0.0        0.39 ±  3%  perf-profile.self.cycles-pp.generic_write_check_limits
      0.43 ±  2%      -0.0        0.40 ±  2%  perf-profile.self.cycles-pp.folio_mapping
      0.28 ±  5%      -0.0        0.25 ±  2%  perf-profile.self.cycles-pp.folio_mark_dirty
      1.00            -0.0        0.97        perf-profile.self.cycles-pp.__get_task_ioprio
      1.22            -0.0        1.20        perf-profile.self.cycles-pp.entry_SYSCALL_64
      0.41            -0.0        0.39        perf-profile.self.cycles-pp.simple_write_begin
      0.39            -0.0        0.37 ±  2%  perf-profile.self.cycles-pp.fault_in_iov_iter_readable
      0.36 ±  5%      +0.1        0.42 ±  6%  perf-profile.self.cycles-pp.xattr_resolve_name
      0.18 ±  3%      +0.2        0.36        perf-profile.self.cycles-pp.cap_inode_need_killpriv
      0.00            +0.2        0.18 ±  2%  perf-profile.self.cycles-pp.kfree
      0.00            +0.5        0.48        perf-profile.self.cycles-pp.xattr_permission
      0.00            +0.8        0.76        perf-profile.self.cycles-pp.vfs_getxattr_alloc
      0.00            +0.8        0.83        perf-profile.self.cycles-pp.__vfs_get_fscaps
      0.00            +1.4        1.42        perf-profile.self.cycles-pp.strncmp




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.


-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




More information about the Linux-security-module-archive mailing list