[linus:master] [btrfs] 4e159150a9: fio.write_iops 6.5% regression

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-lkp,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

Hello,

kernel test robot noticed a 6.5% regression of fio.write_iops on:


commit: 4e159150a9a56d66d247f4b5510bed46fe58aa1c ("btrfs: do not strictly require dirty metadata threshold for metadata writepages")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

[still regression on linus/master      6589b3d76db2d6adbf8f2084c303fb24252a0dc6]
[still regression on linux-next/master fd9678829d6dd0c10fde080b536abf4b1121c346]

testcase: fio-basic
config: x86_64-rhel-9.4
compiler: gcc-14
test machine: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
parameters:

	runtime: 300s
	disk: 1HDD
	fs: btrfs
	nr_task: 1
	test_size: 128G
	rw: write
	bs: 4k
	ioengine: pvsync2
	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 <[email protected]>
| Closes: https://lore.kernel.org/oe-lkp/[email protected]


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


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260212/[email protected]

=========================================================================================
bs/compiler/cpufreq_governor/disk/fs/ioengine/kconfig/nr_task/rootfs/runtime/rw/tbox_group/test_size/testcase:
  4k/gcc-14/performance/1HDD/btrfs/pvsync2/x86_64-rhel-9.4/1/debian-13-x86_64-20250902.cgz/300s/write/lkp-icl-2sp9/128G/fio-basic

commit: 
  3430818739 ("btrfs: add extra device item checks at mount")
  4e159150a9 ("btrfs: do not strictly require dirty metadata threshold for metadata writepages")

34308187395ff01f 4e159150a9a56d66d247f4b5510 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
  25998829            -6.1%   24422371        cpuidle..usage
      1.06            +3.2%       1.09        iostat.cpu.iowait
      1215 ±  3%     -10.1%       1093 ±  3%  meminfo.Dirty
     80085            -6.5%      74897        vmstat.io.bo
    121741            -6.4%     113948        vmstat.system.cs
     87339            -6.0%      82083        vmstat.system.in
     15.13 ± 50%     +75.9%      26.62 ± 22%  sched_debug.cfs_rq:/.removed.load_avg.avg
    287273            -5.8%     270535        sched_debug.cpu.nr_switches.avg
   1713834 ± 11%     -19.8%    1374291 ± 11%  sched_debug.cpu.nr_switches.max
    418676 ±  7%     -18.5%     341334 ± 11%  sched_debug.cpu.nr_switches.stddev
     47.67            -5.6%      45.00        turbostat.Avg_MHz
      1.32            -0.1        1.26        turbostat.Busy%
  32589252            -6.1%   30597064        turbostat.IRQ
     94552            -5.0%      89817        turbostat.NMI
   6080930            -6.5%    5686530        proc-vmstat.nr_dirtied
    121315            -3.5%     117069        proc-vmstat.nr_slab_unreclaimable
   6080407            -6.5%    5686054        proc-vmstat.nr_written
   7057391            -5.6%    6658839        proc-vmstat.numa_hit
   6991110            -5.7%    6592460        proc-vmstat.numa_local
   7583554            -5.0%    7205949        proc-vmstat.pgalloc_normal
   7342680            -5.0%    6976953        proc-vmstat.pgfree
  24345737            -6.5%   22768702        proc-vmstat.pgpgout
      0.01            +0.0        0.02 ± 12%  fio.latency_1000us%
      0.01 ± 19%      +0.1        0.09 ± 22%  fio.latency_2ms%
      0.02 ± 23%      +0.1        0.10 ± 21%  fio.latency_4ms%
  48595970            -6.5%   45440610        fio.time.file_system_outputs
     25.67            -7.1%      23.83        fio.time.percent_of_cpu_this_job_got
     71.70            -7.2%      66.52        fio.time.system_time
   6108254            -6.5%    5713199        fio.time.voluntary_context_switches
   6074496            -6.5%    5680076        fio.workload
     79.09            -6.5%      73.96        fio.write_bw_MBps
     48958            +7.0%      52394        fio.write_clat_mean_ns
    250398 ±  2%     +31.1%     328384        fio.write_clat_stddev
     20248            -6.5%      18933        fio.write_iops
 5.513e+08            -4.8%  5.247e+08        perf-stat.i.branch-instructions
  21121264            -5.5%   19957666 ±  2%  perf-stat.i.cache-references
    122833            -6.4%     114967        perf-stat.i.context-switches
 3.438e+09            -4.9%  3.269e+09        perf-stat.i.cpu-cycles
 2.651e+09            -4.8%  2.523e+09        perf-stat.i.instructions
      1.92            -6.4%       1.80        perf-stat.i.metric.K/sec
      1.63            +0.1        1.71        perf-stat.overall.branch-miss-rate%
    131286            +1.8%     133654        perf-stat.overall.path-length
 5.496e+08            -4.8%  5.231e+08        perf-stat.ps.branch-instructions
  21055046            -5.5%   19895494 ±  2%  perf-stat.ps.cache-references
    122422            -6.4%     114585        perf-stat.ps.context-switches
 3.429e+09            -4.9%  3.261e+09        perf-stat.ps.cpu-cycles
 2.643e+09            -4.8%  2.516e+09        perf-stat.ps.instructions
 7.975e+11            -4.8%  7.592e+11        perf-stat.total.instructions
      0.61 ±  6%      +0.1        0.70 ±  5%  perf-profile.calltrace.cycles-pp.try_to_block_task.__schedule.schedule.io_schedule.folio_wait_bit_common
      0.68 ±  6%      +0.1        0.78 ±  8%  perf-profile.calltrace.cycles-pp.__sysvec_apic_timer_interrupt.sysvec_apic_timer_interrupt.asm_sysvec_apic_timer_interrupt.pv_native_safe_halt.acpi_safe_halt
      0.65 ±  6%      +0.1        0.75 ±  8%  perf-profile.calltrace.cycles-pp.hrtimer_interrupt.__sysvec_apic_timer_interrupt.sysvec_apic_timer_interrupt.asm_sysvec_apic_timer_interrupt.pv_native_safe_halt
      0.49 ± 45%      +0.2        0.66 ±  5%  perf-profile.calltrace.cycles-pp.dequeue_task_fair.try_to_block_task.__schedule.schedule.io_schedule
      1.29 ±  5%      +0.2        1.49 ±  8%  perf-profile.calltrace.cycles-pp.io_schedule.folio_wait_bit_common.folio_wait_writeback.__filemap_fdatawait_range.filemap_fdatawait_range
      1.24 ±  6%      +0.2        1.44 ±  8%  perf-profile.calltrace.cycles-pp.schedule.io_schedule.folio_wait_bit_common.folio_wait_writeback.__filemap_fdatawait_range
      0.46 ± 45%      +0.3        0.80 ± 29%  perf-profile.calltrace.cycles-pp.dequeue_entities.dequeue_task_fair.try_to_block_task.__schedule.schedule
      0.20 ±  6%      -0.0        0.16 ± 12%  perf-profile.children.cycles-pp.fio_gettime
      0.08 ± 16%      +0.0        0.11 ± 11%  perf-profile.children.cycles-pp.rmqueue_pcplist
      0.32 ±  6%      +0.0        0.36 ± 10%  perf-profile.children.cycles-pp.native_apic_msr_eoi
      0.74 ±  5%      +0.1        0.83 ±  6%  perf-profile.children.cycles-pp.hrtimer_interrupt
      1.29 ±  5%      +0.2        1.49 ±  8%  perf-profile.children.cycles-pp.io_schedule
      0.20 ±  6%      -0.0        0.16 ± 14%  perf-profile.self.cycles-pp.fio_gettime
      0.12 ± 24%      -0.0        0.09 ± 10%  perf-profile.self.cycles-pp.check_delayed_ref
      0.02 ±141%      +0.0        0.06 ±  9%  perf-profile.self.cycles-pp.btrfs_csum_file_blocks




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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.