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

From: kernel test robot

Date: Thu Feb 12 2026 - 10:24:37 EST




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 <oliver.sang@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202602122319.d71b793c-lkp@xxxxxxxxx


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


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260212/202602122319.d71b793c-lkp@xxxxxxxxx

=========================================================================================
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