diff mbox series

[v2,4/4] blk-flush: don't need to end rq twice for non postflush

Message ID 20230725130102.3030032-5-chengming.zhou@linux.dev (mailing list archive)
State New, archived
Headers show
Series blk-flush: optimize non-postflush requests | expand

Commit Message

Chengming Zhou July 25, 2023, 1:01 p.m. UTC
From: Chengming Zhou <zhouchengming@bytedance.com>

Now we unconditionally blk_rq_init_flush() to replace rq->end_io to
make rq return twice back to the flush state machine for post-flush.

Obviously, non post-flush requests don't need it, they don't need to
end request twice, so they don't need to replace rq->end_io callback.
And the same for requests with the FUA bit on hardware with FUA support.

There are also some other good points:
1. all requests on hardware with FUA support won't have post-flush, so
   all of them don't need to end twice.

2. non post-flush requests won't have RQF_FLUSH_SEQ rq_flags set, so
   they can merge like normal requests.

3. we don't account non post-flush requests in flush_data_in_flight,
   since there is no point to defer pending flush for these requests.

Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
---
 block/blk-flush.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Christoph Hellwig July 31, 2023, 6:20 a.m. UTC | #1
Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
kernel test robot Aug. 10, 2023, 2:25 p.m. UTC | #2
Hello,

kernel test robot noticed a -54.7% regression of stress-ng.symlink.ops_per_sec on:


commit: b3afbe4f56ec07dd9cbfd59734fe5bc084f4d307 ("[PATCH v2 4/4] blk-flush: don't need to end rq twice for non postflush")
url: https://github.com/intel-lab-lkp/linux/commits/chengming-zhou-linux-dev/blk-flush-flush_rq-should-inherit-first_rq-s-cmd_flags/20230725-212146
base: https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git for-next
patch link: https://lore.kernel.org/all/20230725130102.3030032-5-chengming.zhou@linux.dev/
patch subject: [PATCH v2 4/4] blk-flush: don't need to end rq twice for non postflush

testcase: stress-ng
test machine: 36 threads 1 sockets Intel(R) Core(TM) i9-9980XE CPU @ 3.00GHz (Skylake) with 32G memory
parameters:

	nr_threads: 10%
	disk: 1SSD
	testtime: 60s
	fs: ext4
	class: filesystem
	test: symlink
	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@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202308102227.eb19f29a-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/20230810/202308102227.eb19f29a-oliver.sang@intel.com

=========================================================================================
class/compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  filesystem/gcc-12/performance/1SSD/ext4/x86_64-rhel-8.3/10%/debian-11.1-x86_64-20220510.cgz/lkp-skl-d08/symlink/stress-ng/60s

commit: 
  9e046e4b9a ("blk-flush: kill the flush state machine")
  b3afbe4f56 ("blk-flush: don't need to end rq twice for non postflush")

9e046e4b9a326538 b3afbe4f56ec07dd9cbfd59734f 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
     81.33 ± 23%    +701.4%     651.83 ±  8%  perf-c2c.DRAM.local
    385.00 ± 24%     -60.2%     153.33 ± 18%  perf-c2c.HITM.local
     12838 ±  9%     -83.6%       2111 ± 19%  vmstat.io.bo
   4894104 ±  2%     -25.0%    3672720 ±  4%  vmstat.memory.buff
      0.03 ±  9%      +2.1        2.12 ±  5%  mpstat.cpu.all.iowait%
      0.05 ±  6%      -0.0        0.03 ±  7%  mpstat.cpu.all.soft%
      1.01 ±  2%      -0.4        0.65 ±  5%  mpstat.cpu.all.usr%
     91.34            -2.4%      89.12        iostat.cpu.idle
      0.04 ±  9%   +5309.5%       2.10 ±  5%  iostat.cpu.iowait
      7.60            +6.7%       8.11        iostat.cpu.system
      1.02 ±  2%     -34.2%       0.67 ±  5%  iostat.cpu.user
      2.70 ±  7%      +2.0        4.75 ±  4%  turbostat.C1E%
      0.22 ±  3%     -43.2%       0.12 ±  6%  turbostat.IPC
      1.24 ± 63%    -100.0%       0.00        turbostat.Pkg%pc2
     82.91            -4.1%      79.50        turbostat.PkgWatt
    395.50           -54.7%     179.17 ±  6%  stress-ng.symlink.ops
      6.58           -54.7%       2.98 ±  6%  stress-ng.symlink.ops_per_sec
     19194 ±  2%     -57.0%       8247 ±  8%  stress-ng.time.involuntary_context_switches
    280.33            +1.7%     285.00        stress-ng.time.percent_of_cpu_this_job_got
    157.58            +7.8%     169.80        stress-ng.time.system_time
     16.88           -54.6%       7.67 ±  6%  stress-ng.time.user_time
   4864550 ±  2%     -24.0%    3694800 ±  4%  meminfo.Active
   4805969 ±  2%     -24.3%    3637287 ±  4%  meminfo.Active(file)
   4807385 ±  2%     -24.3%    3638747 ±  4%  meminfo.Buffers
    137311 ±  8%     -93.5%       8969 ± 61%  meminfo.Dirty
    253893            -8.9%     231389        meminfo.KReclaimable
   8558145           -13.9%    7368683 ±  2%  meminfo.Memused
    253893            -8.9%     231389        meminfo.SReclaimable
   8560008           -13.9%    7372705 ±  2%  meminfo.max_used_kB
   1201519 ±  2%     -24.3%     909340 ±  4%  proc-vmstat.nr_active_file
    146816 ±  4%     -90.7%      13672 ± 38%  proc-vmstat.nr_dirtied
     34328 ±  8%     -93.5%       2241 ± 61%  proc-vmstat.nr_dirty
   1918325           -15.2%    1626003 ±  2%  proc-vmstat.nr_file_pages
   6000925            +5.0%    6298304        proc-vmstat.nr_free_pages
     10094            +1.8%      10278        proc-vmstat.nr_mapped
     63476            -8.9%      57854        proc-vmstat.nr_slab_reclaimable
     25073            -3.4%      24225        proc-vmstat.nr_slab_unreclaimable
    101605 ±  6%     -86.6%      13660 ± 38%  proc-vmstat.nr_written
   1201519 ±  2%     -24.3%     909340 ±  4%  proc-vmstat.nr_zone_active_file
     34329 ±  8%     -93.5%       2242 ± 61%  proc-vmstat.nr_zone_write_pending
   2922100           -39.4%    1771460 ±  4%  proc-vmstat.numa_hit
   2925326           -39.4%    1771382 ±  4%  proc-vmstat.numa_local
    182296           -37.3%     114290 ±  4%  proc-vmstat.pgactivate
   3716779           -41.6%    2171212 ±  5%  proc-vmstat.pgalloc_normal
   1205341 ±  4%     -41.5%     705041 ±  5%  proc-vmstat.pgfree
    852188 ± 10%     -83.7%     138853 ± 20%  proc-vmstat.pgpgout
      0.01 ± 26%    -100.0%       0.00        perf-sched.sch_delay.avg.ms.__cond_resched.jbd2_journal_commit_transaction.kjournald2.kthread.ret_from_fork
      0.01 ± 62%    -100.0%       0.00        perf-sched.sch_delay.avg.ms.kjournald2.kthread.ret_from_fork.ret_from_fork_asm
      0.01 ± 26%    -100.0%       0.00        perf-sched.sch_delay.max.ms.__cond_resched.jbd2_journal_commit_transaction.kjournald2.kthread.ret_from_fork
      0.01 ± 29%     -69.0%       0.00 ±101%  perf-sched.sch_delay.max.ms.exit_to_user_mode_loop.exit_to_user_mode_prepare.irqentry_exit_to_user_mode.asm_sysvec_apic_timer_interrupt
      0.01 ± 21%     -40.0%       0.01 ± 23%  perf-sched.sch_delay.max.ms.io_schedule.bit_wait_io.__wait_on_bit.out_of_line_wait_on_bit
      0.01 ± 62%    -100.0%       0.00        perf-sched.sch_delay.max.ms.kjournald2.kthread.ret_from_fork.ret_from_fork_asm
      0.03 ± 14%    +166.0%       0.09 ± 58%  perf-sched.sch_delay.max.ms.worker_thread.kthread.ret_from_fork.ret_from_fork_asm
    101.49 ±  7%     +59.7%     162.10 ± 17%  perf-sched.wait_and_delay.avg.ms.smpboot_thread_fn.kthread.ret_from_fork.ret_from_fork_asm
      2048 ±  3%     -33.5%       1363 ± 19%  perf-sched.wait_and_delay.count.smpboot_thread_fn.kthread.ret_from_fork.ret_from_fork_asm
      0.03 ±  6%     +40.8%       0.05 ± 13%  perf-sched.wait_time.avg.ms.__cond_resched.__ext4_handle_dirty_metadata.ext4_getblk.ext4_bread.ext4_init_symlink_block
      0.05 ± 11%     +24.3%       0.06 ± 14%  perf-sched.wait_time.avg.ms.__cond_resched.__getblk_gfp.ext4_getblk.ext4_bread.__ext4_read_dirblock
      0.03 ± 51%     -90.6%       0.00 ±150%  perf-sched.wait_time.avg.ms.__cond_resched.down_read.__ext4_new_inode.ext4_symlink.vfs_symlink
      5.83 ± 73%    -100.0%       0.00        perf-sched.wait_time.avg.ms.__cond_resched.jbd2_journal_commit_transaction.kjournald2.kthread.ret_from_fork
      0.03 ± 61%     -84.7%       0.01 ±183%  perf-sched.wait_time.avg.ms.__cond_resched.kmem_cache_alloc.security_file_alloc.init_file.alloc_empty_file
      5.73 ±140%     -99.2%       0.05 ±223%  perf-sched.wait_time.avg.ms.io_schedule.bit_wait_io.__wait_on_bit.out_of_line_wait_on_bit
      0.70 ± 18%    -100.0%       0.00        perf-sched.wait_time.avg.ms.kjournald2.kthread.ret_from_fork.ret_from_fork_asm
    101.46 ±  7%     +59.7%     162.08 ± 17%  perf-sched.wait_time.avg.ms.smpboot_thread_fn.kthread.ret_from_fork.ret_from_fork_asm
      0.04 ± 41%     -93.0%       0.00 ±150%  perf-sched.wait_time.max.ms.__cond_resched.down_read.__ext4_new_inode.ext4_symlink.vfs_symlink
     16.16 ±215%     -97.7%       0.38 ± 22%  perf-sched.wait_time.max.ms.__cond_resched.dput.path_put.user_statfs.__do_sys_statfs
      5.83 ± 73%    -100.0%       0.00        perf-sched.wait_time.max.ms.__cond_resched.jbd2_journal_commit_transaction.kjournald2.kthread.ret_from_fork
      0.07 ± 82%     -90.7%       0.01 ±171%  perf-sched.wait_time.max.ms.__cond_resched.kmem_cache_alloc.security_file_alloc.init_file.alloc_empty_file
     25.16 ±122%     -99.3%       0.16 ±223%  perf-sched.wait_time.max.ms.io_schedule.bit_wait_io.__wait_on_bit.out_of_line_wait_on_bit
      0.70 ± 18%    -100.0%       0.00        perf-sched.wait_time.max.ms.kjournald2.kthread.ret_from_fork.ret_from_fork_asm
      9.77 ± 18%     +57.5%      15.38        perf-stat.i.MPKI
 1.759e+09           -44.0%  9.852e+08 ±  4%  perf-stat.i.branch-instructions
  20930583           -32.7%   14087563 ±  4%  perf-stat.i.branch-misses
     10.78            +4.2       14.98 ±  4%  perf-stat.i.cache-miss-rate%
   8025531            -4.2%    7684648        perf-stat.i.cache-misses
  77754557 ±  2%     -25.5%   57916998 ±  3%  perf-stat.i.cache-references
      1.45 ±  8%    +173.5%       3.96 ±  5%  perf-stat.i.cpi
 1.221e+10            +1.7%  1.241e+10        perf-stat.i.cpu-cycles
      1592            +8.1%       1721        perf-stat.i.cycles-between-cache-misses
    661039           -47.4%     347558 ±  5%  perf-stat.i.dTLB-load-misses
  2.38e+09           -45.8%  1.289e+09 ±  4%  perf-stat.i.dTLB-loads
     10275 ±  9%     -13.3%       8913 ±  2%  perf-stat.i.dTLB-store-misses
  1.15e+09           -48.8%  5.892e+08 ±  5%  perf-stat.i.dTLB-stores
     45.27 ±  3%     -14.9       30.42 ±  5%  perf-stat.i.iTLB-load-miss-rate%
    796188 ±  8%     -47.8%     415706 ±  8%  perf-stat.i.iTLB-load-misses
    929612 ±  3%     -10.6%     830862        perf-stat.i.iTLB-loads
 9.024e+09           -45.7%  4.902e+09 ±  5%  perf-stat.i.instructions
      0.75           -45.0%       0.41 ±  4%  perf-stat.i.ipc
      0.34            +1.7%       0.34        perf-stat.i.metric.GHz
    191.07 ±  8%     +60.2%     306.12 ± 11%  perf-stat.i.metric.K/sec
    149.18           -45.7%      81.00 ±  5%  perf-stat.i.metric.M/sec
   1273025 ±  2%    +178.5%    3545558 ±  5%  perf-stat.i.node-loads
   3427034 ±  2%     -43.4%    1939169 ±  5%  perf-stat.i.node-stores
      8.60           +37.5%      11.82        perf-stat.overall.MPKI
      1.19            +0.2        1.43 ±  4%  perf-stat.overall.branch-miss-rate%
     10.33            +3.0       13.29 ±  4%  perf-stat.overall.cache-miss-rate%
      1.35           +87.9%       2.54 ±  4%  perf-stat.overall.cpi
      1520            +6.2%       1614        perf-stat.overall.cycles-between-cache-misses
      0.03            -0.0        0.03        perf-stat.overall.dTLB-load-miss-rate%
      0.00 ± 11%      +0.0        0.00 ±  5%  perf-stat.overall.dTLB-store-miss-rate%
     46.13 ±  3%     -12.8       33.30 ±  5%  perf-stat.overall.iTLB-load-miss-rate%
      0.74           -46.7%       0.40 ±  5%  perf-stat.overall.ipc
 1.734e+09           -44.1%  9.699e+08 ±  4%  perf-stat.ps.branch-instructions
  20610819           -32.7%   13862952 ±  4%  perf-stat.ps.branch-misses
   7900440            -4.3%    7563578        perf-stat.ps.cache-misses
  76460521 ±  2%     -25.4%   57007500 ±  3%  perf-stat.ps.cache-references
 1.201e+10            +1.7%  1.221e+10        perf-stat.ps.cpu-cycles
    652055           -47.5%     342193 ±  5%  perf-stat.ps.dTLB-load-misses
 2.347e+09           -45.9%  1.269e+09 ±  4%  perf-stat.ps.dTLB-loads
     10120 ±  9%     -13.3%       8770 ±  2%  perf-stat.ps.dTLB-store-misses
 1.134e+09           -48.8%  5.801e+08 ±  5%  perf-stat.ps.dTLB-stores
    785838 ±  8%     -47.9%     409304 ±  8%  perf-stat.ps.iTLB-load-misses
    915395 ±  3%     -10.7%     817774        perf-stat.ps.iTLB-loads
 8.896e+09           -45.8%  4.826e+09 ±  5%  perf-stat.ps.instructions
   1253851 ±  2%    +178.3%    3488888 ±  5%  perf-stat.ps.node-loads
   3362358 ±  2%     -43.2%    1909414 ±  5%  perf-stat.ps.node-stores
 5.702e+11           -46.4%  3.056e+11 ±  4%  perf-stat.total.instructions
     18.41 ±  6%     -11.3        7.13 ± 37%  perf-profile.calltrace.cycles-pp.unlink
     18.05 ±  6%     -11.0        7.05 ± 38%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.unlink
     17.92 ±  6%     -10.9        7.02 ± 38%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.unlink
     17.61 ±  6%     -10.7        6.94 ± 38%  perf-profile.calltrace.cycles-pp.__x64_sys_unlink.do_syscall_64.entry_SYSCALL_64_after_hwframe.unlink
     17.45 ±  6%     -10.5        6.90 ± 39%  perf-profile.calltrace.cycles-pp.do_unlinkat.__x64_sys_unlink.do_syscall_64.entry_SYSCALL_64_after_hwframe.unlink
     12.32 ±  8%      -6.7        5.61 ± 48%  perf-profile.calltrace.cycles-pp.evict.do_unlinkat.__x64_sys_unlink.do_syscall_64.entry_SYSCALL_64_after_hwframe
      8.70 ±  5%      -6.6        2.05 ± 14%  perf-profile.calltrace.cycles-pp.__statfs
     12.06 ±  8%      -6.5        5.56 ± 49%  perf-profile.calltrace.cycles-pp.ext4_evict_inode.evict.do_unlinkat.__x64_sys_unlink.do_syscall_64
      7.28 ±  5%      -5.5        1.74 ± 14%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.__statfs
      6.78 ±  5%      -5.2        1.62 ± 13%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.__statfs
      6.90 ±  5%      -5.1        1.79 ± 14%  perf-profile.calltrace.cycles-pp.ext4_map_blocks.ext4_getblk.ext4_bread.ext4_init_symlink_block.ext4_symlink
      6.55 ±  5%      -4.8        1.72 ± 14%  perf-profile.calltrace.cycles-pp.ext4_ext_map_blocks.ext4_map_blocks.ext4_getblk.ext4_bread.ext4_init_symlink_block
      5.91 ±  5%      -4.5        1.40 ± 14%  perf-profile.calltrace.cycles-pp.__do_sys_statfs.do_syscall_64.entry_SYSCALL_64_after_hwframe.__statfs
      5.69 ±  5%      -4.3        1.35 ± 14%  perf-profile.calltrace.cycles-pp.user_statfs.__do_sys_statfs.do_syscall_64.entry_SYSCALL_64_after_hwframe.__statfs
      5.46 ±  5%      -4.0        1.44 ± 14%  perf-profile.calltrace.cycles-pp.ext4_mb_new_blocks.ext4_ext_map_blocks.ext4_map_blocks.ext4_getblk.ext4_bread
      4.23 ±  5%      -3.2        1.06 ± 10%  perf-profile.calltrace.cycles-pp.vfs_unlink.do_unlinkat.__x64_sys_unlink.do_syscall_64.entry_SYSCALL_64_after_hwframe
      3.96 ±  6%      -3.0        0.94 ± 12%  perf-profile.calltrace.cycles-pp.statfs_by_dentry.user_statfs.__do_sys_statfs.do_syscall_64.entry_SYSCALL_64_after_hwframe
      4.16 ±  5%      -3.0        1.14 ±  5%  perf-profile.calltrace.cycles-pp.ext4_add_nondir.ext4_symlink.vfs_symlink.do_symlinkat.__x64_sys_symlink
      3.98 ±  5%      -3.0        1.00 ± 11%  perf-profile.calltrace.cycles-pp.ext4_unlink.vfs_unlink.do_unlinkat.__x64_sys_unlink.do_syscall_64
      3.95 ±  5%      -3.0        0.99 ± 11%  perf-profile.calltrace.cycles-pp.__ext4_unlink.ext4_unlink.vfs_unlink.do_unlinkat.__x64_sys_unlink
      3.87 ±  6%      -3.0        0.92 ± 13%  perf-profile.calltrace.cycles-pp.ext4_statfs.statfs_by_dentry.user_statfs.__do_sys_statfs.do_syscall_64
      3.50 ±  6%      -2.7        0.83 ± 12%  perf-profile.calltrace.cycles-pp.__percpu_counter_sum.ext4_statfs.statfs_by_dentry.user_statfs.__do_sys_statfs
      3.57 ±  5%      -2.6        0.99 ±  5%  perf-profile.calltrace.cycles-pp.ext4_add_entry.ext4_add_nondir.ext4_symlink.vfs_symlink.do_symlinkat
      3.45 ±  5%      -2.5        0.96 ±  5%  perf-profile.calltrace.cycles-pp.ext4_dx_add_entry.ext4_add_entry.ext4_add_nondir.ext4_symlink.vfs_symlink
      3.36 ±  5%      -2.4        0.97 ± 14%  perf-profile.calltrace.cycles-pp.ext4_mb_regular_allocator.ext4_mb_new_blocks.ext4_ext_map_blocks.ext4_map_blocks.ext4_getblk
      3.13 ±  5%      -2.3        0.78 ± 11%  perf-profile.calltrace.cycles-pp.__ext4_new_inode.ext4_symlink.vfs_symlink.do_symlinkat.__x64_sys_symlink
      2.53 ±  6%      -1.9        0.65 ± 10%  perf-profile.calltrace.cycles-pp.ext4_mb_clear_bb.ext4_remove_blocks.ext4_ext_rm_leaf.ext4_ext_remove_space.ext4_ext_truncate
      2.48 ±  4%      -1.8        0.65 ±  5%  perf-profile.calltrace.cycles-pp.add_dirent_to_buf.ext4_dx_add_entry.ext4_add_entry.ext4_add_nondir.ext4_symlink
      1.92 ±  5%      -1.6        0.35 ± 70%  perf-profile.calltrace.cycles-pp.ext4_mb_complex_scan_group.ext4_mb_regular_allocator.ext4_mb_new_blocks.ext4_ext_map_blocks.ext4_map_blocks
     36.63 ±  5%     +23.9       60.51 ±  5%  perf-profile.calltrace.cycles-pp.symlink
     36.25 ±  5%     +24.2       60.42 ±  5%  perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.symlink
     36.12 ±  5%     +24.3       60.40 ±  5%  perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.symlink
     35.81 ±  5%     +24.5       60.32 ±  5%  perf-profile.calltrace.cycles-pp.__x64_sys_symlink.do_syscall_64.entry_SYSCALL_64_after_hwframe.symlink
     35.53 ±  5%     +24.7       60.24 ±  5%  perf-profile.calltrace.cycles-pp.do_symlinkat.__x64_sys_symlink.do_syscall_64.entry_SYSCALL_64_after_hwframe.symlink
     34.80 ±  5%     +25.3       60.07 ±  5%  perf-profile.calltrace.cycles-pp.vfs_symlink.do_symlinkat.__x64_sys_symlink.do_syscall_64.entry_SYSCALL_64_after_hwframe
     34.73 ±  5%     +25.3       60.06 ±  5%  perf-profile.calltrace.cycles-pp.ext4_symlink.vfs_symlink.do_symlinkat.__x64_sys_symlink.do_syscall_64
      4.32 ± 22%     +28.7       32.98 ±  8%  perf-profile.calltrace.cycles-pp._raw_spin_lock.find_revoke_record.jbd2_journal_cancel_revoke.jbd2_journal_get_create_access.__ext4_journal_get_create_access
      4.29 ± 22%     +28.7       32.97 ±  8%  perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.find_revoke_record.jbd2_journal_cancel_revoke.jbd2_journal_get_create_access
     27.14 ±  6%     +30.9       58.06 ±  5%  perf-profile.calltrace.cycles-pp.ext4_init_symlink_block.ext4_symlink.vfs_symlink.do_symlinkat.__x64_sys_symlink
     27.08 ±  6%     +31.0       58.05 ±  5%  perf-profile.calltrace.cycles-pp.ext4_bread.ext4_init_symlink_block.ext4_symlink.vfs_symlink.do_symlinkat
     27.08 ±  6%     +31.0       58.04 ±  5%  perf-profile.calltrace.cycles-pp.ext4_getblk.ext4_bread.ext4_init_symlink_block.ext4_symlink.vfs_symlink
     18.24 ±  8%     +37.4       55.63 ±  5%  perf-profile.calltrace.cycles-pp.__ext4_journal_get_create_access.ext4_getblk.ext4_bread.ext4_init_symlink_block.ext4_symlink
     18.24 ±  8%     +37.4       55.63 ±  5%  perf-profile.calltrace.cycles-pp.jbd2_journal_get_create_access.__ext4_journal_get_create_access.ext4_getblk.ext4_bread.ext4_init_symlink_block
     17.96 ±  8%     +37.6       55.56 ±  5%  perf-profile.calltrace.cycles-pp.jbd2_journal_cancel_revoke.jbd2_journal_get_create_access.__ext4_journal_get_create_access.ext4_getblk.ext4_bread
     17.84 ±  8%     +37.7       55.53 ±  5%  perf-profile.calltrace.cycles-pp.find_revoke_record.jbd2_journal_cancel_revoke.jbd2_journal_get_create_access.__ext4_journal_get_create_access.ext4_getblk
     18.44 ±  6%     -11.3        7.14 ± 37%  perf-profile.children.cycles-pp.unlink
     17.61 ±  6%     -10.7        6.94 ± 38%  perf-profile.children.cycles-pp.__x64_sys_unlink
     17.46 ±  6%     -10.6        6.90 ± 39%  perf-profile.children.cycles-pp.do_unlinkat
     12.32 ±  8%      -6.7        5.61 ± 48%  perf-profile.children.cycles-pp.evict
      8.76 ±  5%      -6.7        2.06 ± 14%  perf-profile.children.cycles-pp.__statfs
     12.07 ±  8%      -6.5        5.56 ± 49%  perf-profile.children.cycles-pp.ext4_evict_inode
      7.58 ±  5%      -5.6        1.97 ± 13%  perf-profile.children.cycles-pp.ext4_map_blocks
      7.08 ±  4%      -5.3        1.77 ±  9%  perf-profile.children.cycles-pp.__ext4_mark_inode_dirty
      6.56 ±  5%      -4.8        1.72 ± 14%  perf-profile.children.cycles-pp.ext4_ext_map_blocks
      5.91 ±  5%      -4.5        1.40 ± 14%  perf-profile.children.cycles-pp.__do_sys_statfs
      5.92 ±  4%      -4.4        1.49 ±  9%  perf-profile.children.cycles-pp.ext4_mark_iloc_dirty
      5.69 ±  5%      -4.3        1.35 ± 14%  perf-profile.children.cycles-pp.user_statfs
      5.43 ±  3%      -4.1        1.35 ± 10%  perf-profile.children.cycles-pp.ext4_do_update_inode
      5.46 ±  5%      -4.0        1.45 ± 14%  perf-profile.children.cycles-pp.ext4_mb_new_blocks
      4.23 ±  5%      -3.2        1.06 ± 10%  perf-profile.children.cycles-pp.vfs_unlink
      4.10 ±  5%      -3.0        1.06 ± 12%  perf-profile.children.cycles-pp.crc32c_pcl_intel_update
      3.96 ±  6%      -3.0        0.94 ± 12%  perf-profile.children.cycles-pp.statfs_by_dentry
      4.16 ±  5%      -3.0        1.14 ±  5%  perf-profile.children.cycles-pp.ext4_add_nondir
      3.98 ±  5%      -3.0        1.00 ± 11%  perf-profile.children.cycles-pp.ext4_unlink
      3.96 ±  5%      -3.0        0.99 ± 11%  perf-profile.children.cycles-pp.__ext4_unlink
      3.88 ±  6%      -3.0        0.92 ± 13%  perf-profile.children.cycles-pp.ext4_statfs
      3.96 ±  3%      -3.0        1.00 ± 11%  perf-profile.children.cycles-pp.ext4_fill_raw_inode
      3.64 ±  6%      -2.8        0.86 ± 13%  perf-profile.children.cycles-pp.__percpu_counter_sum
      3.57 ±  5%      -2.6        0.99 ±  5%  perf-profile.children.cycles-pp.ext4_add_entry
      3.45 ±  5%      -2.5        0.96 ±  5%  perf-profile.children.cycles-pp.ext4_dx_add_entry
      3.36 ±  5%      -2.4        0.97 ± 14%  perf-profile.children.cycles-pp.ext4_mb_regular_allocator
      3.14 ±  5%      -2.4        0.78 ± 11%  perf-profile.children.cycles-pp.__ext4_new_inode
      2.85 ±  3%      -2.1        0.70 ± 13%  perf-profile.children.cycles-pp.ext4_inode_csum_set
      2.75 ±  4%      -2.1        0.64 ±  8%  perf-profile.children.cycles-pp.__find_get_block
      2.68 ±  3%      -2.0        0.66 ± 13%  perf-profile.children.cycles-pp.ext4_inode_csum
      2.64 ±  7%      -1.9        0.72 ±  7%  perf-profile.children.cycles-pp.syscall_exit_to_user_mode
      2.54 ±  7%      -1.9        0.65 ± 10%  perf-profile.children.cycles-pp.ext4_mb_clear_bb
      2.54 ±  5%      -1.9        0.66 ± 12%  perf-profile.children.cycles-pp.syscall_return_via_sysret
      2.48 ±  4%      -1.8        0.65 ±  5%  perf-profile.children.cycles-pp.add_dirent_to_buf
      2.42 ±  5%      -1.8        0.61 ± 14%  perf-profile.children.cycles-pp.ext4_reserve_inode_write
      2.29 ±  6%      -1.7        0.56 ± 16%  perf-profile.children.cycles-pp.user_path_at_empty
      2.32 ±  4%      -1.7        0.63 ±  7%  perf-profile.children.cycles-pp.__filemap_get_folio
      1.92 ±  5%      -1.4        0.49 ± 12%  perf-profile.children.cycles-pp.ext4_mb_complex_scan_group
      1.82 ±  4%      -1.3        0.47 ± 10%  perf-profile.children.cycles-pp.open64
      1.71 ±  6%      -1.3        0.44 ± 10%  perf-profile.children.cycles-pp.do_readlinkat
      1.63 ±  8%      -1.2        0.40 ± 15%  perf-profile.children.cycles-pp.filename_lookup
      1.66 ±  7%      -1.2        0.44 ± 11%  perf-profile.children.cycles-pp.readlinkat
      1.66 ±  7%      -1.2        0.44 ±  9%  perf-profile.children.cycles-pp.crc_pcl
      1.60 ±  3%      -1.2        0.38 ±  3%  perf-profile.children.cycles-pp.filemap_get_entry
      1.57 ±  6%      -1.2        0.36 ± 11%  perf-profile.children.cycles-pp.syscall
      1.58 ±  3%      -1.2        0.40 ±  7%  perf-profile.children.cycles-pp.ext4_find_dest_de
      1.63 ±  6%      -1.2        0.46 ±  9%  perf-profile.children.cycles-pp.__getblk_gfp
      1.29 ± 15%      -1.1        0.14 ± 22%  perf-profile.children.cycles-pp.ret_from_fork_asm
      1.29 ± 15%      -1.1        0.14 ± 22%  perf-profile.children.cycles-pp.ret_from_fork
      1.29 ± 15%      -1.1        0.14 ± 22%  perf-profile.children.cycles-pp.kthread
      1.48 ±  8%      -1.1        0.36 ± 16%  perf-profile.children.cycles-pp.path_lookupat
      1.49 ±  5%      -1.1        0.38 ± 14%  perf-profile.children.cycles-pp.getname_flags
      1.41 ±  5%      -1.0        0.36 ± 13%  perf-profile.children.cycles-pp.__lxstat64
      1.42 ±  4%      -1.0        0.37 ± 15%  perf-profile.children.cycles-pp.ext4_get_inode_loc
      1.37 ±  4%      -1.0        0.36 ± 15%  perf-profile.children.cycles-pp.__ext4_get_inode_loc
      1.27 ±  8%      -1.0        0.30 ± 20%  perf-profile.children.cycles-pp.__ext4_journal_get_write_access
      1.29 ±  7%      -1.0        0.32 ± 13%  perf-profile.children.cycles-pp.__mark_inode_dirty
      1.26 ±  5%      -0.9        0.31 ± 15%  perf-profile.children.cycles-pp.__entry_text_start
      1.28 ±  7%      -0.9        0.38 ± 12%  perf-profile.children.cycles-pp.__ext4_read_dirblock
      1.24 ±  4%      -0.9        0.35 ± 10%  perf-profile.children.cycles-pp._find_next_bit
      1.16 ±  9%      -0.9        0.30 ± 10%  perf-profile.children.cycles-pp.ext4_orphan_del
      1.12 ±  6%      -0.9        0.27 ± 10%  perf-profile.children.cycles-pp.__close
      1.09 ±  2%      -0.8        0.30 ±  9%  perf-profile.children.cycles-pp.__x64_sys_openat
      1.05 ±  9%      -0.8        0.26 ± 14%  perf-profile.children.cycles-pp.ext4_orphan_add
      1.02 ±  7%      -0.8        0.24 ± 13%  perf-profile.children.cycles-pp.ext4_mb_mark_diskspace_used
      1.07            -0.8        0.29 ±  8%  perf-profile.children.cycles-pp.do_sys_openat2
      1.03 ±  8%      -0.8        0.26 ± 13%  perf-profile.children.cycles-pp.ext4_dirty_inode
      0.99 ±  5%      -0.7        0.26 ± 10%  perf-profile.children.cycles-pp.kmem_cache_alloc
      0.96 ±  6%      -0.7        0.24 ± 16%  perf-profile.children.cycles-pp.strncpy_from_user
      1.09 ±  6%      -0.7        0.37 ± 11%  perf-profile.children.cycles-pp.__getblk_slow
      0.92 ±  9%      -0.7        0.22 ± 17%  perf-profile.children.cycles-pp.__ext4_find_entry
      0.88 ±  7%      -0.7        0.21 ± 16%  perf-profile.children.cycles-pp.ext4_dx_find_entry
      0.89 ± 10%      -0.7        0.22 ± 15%  perf-profile.children.cycles-pp._find_next_or_bit
      0.91 ±  5%      -0.6        0.26 ±  9%  perf-profile.children.cycles-pp.__x64_sys_readlinkat
      0.84 ±  7%      -0.6        0.19 ± 12%  perf-profile.children.cycles-pp.__x64_sys_readlink
      0.86 ±  7%      -0.6        0.22 ±  9%  perf-profile.children.cycles-pp.__ext4_handle_dirty_metadata
      0.89 ±  8%      -0.6        0.26 ± 18%  perf-profile.children.cycles-pp.ext4_block_bitmap_csum_set
      0.84 ±  6%      -0.6        0.22 ± 15%  perf-profile.children.cycles-pp.link_path_walk
      0.80 ±  4%      -0.6        0.20 ±  6%  perf-profile.children.cycles-pp.xas_load
      0.81 ±  2%      -0.6        0.21 ± 12%  perf-profile.children.cycles-pp.do_filp_open
      0.77 ±  3%      -0.6        0.20 ± 12%  perf-profile.children.cycles-pp.path_openat
      0.74 ±  7%      -0.6        0.18 ± 11%  perf-profile.children.cycles-pp.ext4_free_inode
      0.70 ±  9%      -0.6        0.14 ± 21%  perf-profile.children.cycles-pp.jbd2__journal_start
      0.77 ±  7%      -0.6        0.21 ±  8%  perf-profile.children.cycles-pp.dx_probe
      0.69 ±  7%      -0.5        0.15 ± 18%  perf-profile.children.cycles-pp.complete_walk
      0.71 ±  4%      -0.5        0.18 ± 13%  perf-profile.children.cycles-pp.__check_object_size
      0.69 ±  8%      -0.5        0.18 ± 15%  perf-profile.children.cycles-pp.__do_sys_newlstat
      0.64 ±  8%      -0.5        0.14 ± 18%  perf-profile.children.cycles-pp.try_to_unlazy
      0.64 ±  5%      -0.5        0.15 ± 10%  perf-profile.children.cycles-pp.vfs_readlink
      0.77 ± 12%      -0.5        0.31 ± 13%  perf-profile.children.cycles-pp.__do_softirq
      0.66 ±  7%      -0.5        0.19 ± 10%  perf-profile.children.cycles-pp._raw_spin_lock_irqsave
      0.64 ±  3%      -0.5        0.18 ± 19%  perf-profile.children.cycles-pp.ext4_handle_dirty_dirblock
      0.59 ±  8%      -0.5        0.13 ± 13%  perf-profile.children.cycles-pp.filename_create
      0.63 ±  8%      -0.5        0.18 ± 12%  perf-profile.children.cycles-pp.new_inode
      0.57 ±  9%      -0.4        0.13 ± 18%  perf-profile.children.cycles-pp.__legitimize_path
      0.60 ±  9%      -0.4        0.16 ± 12%  perf-profile.children.cycles-pp.vfs_fstatat
      0.55 ±  7%      -0.4        0.13 ± 15%  perf-profile.children.cycles-pp.__cond_resched
      0.58 ± 14%      -0.4        0.16 ± 18%  perf-profile.children.cycles-pp.rcu_core
      0.54 ± 10%      -0.4        0.13 ± 12%  perf-profile.children.cycles-pp.ext4_es_remove_extent
      0.51 ±  8%      -0.4        0.10 ± 21%  perf-profile.children.cycles-pp.start_this_handle
      0.55 ±  8%      -0.4        0.14 ± 12%  perf-profile.children.cycles-pp.ext4_mb_load_buddy_gfp
      0.52 ±  6%      -0.4        0.13 ± 23%  perf-profile.children.cycles-pp.lookup_one_qstr_excl
      0.48 ±  3%      -0.4        0.09 ± 22%  perf-profile.children.cycles-pp.percpu_counter_add_batch
      0.53 ±  9%      -0.4        0.14 ± 14%  perf-profile.children.cycles-pp.__ext4_journal_stop
      0.55 ±  8%      -0.4        0.16 ± 13%  perf-profile.children.cycles-pp.alloc_inode
      0.52 ±  7%      -0.4        0.13 ± 23%  perf-profile.children.cycles-pp.lookup_dcache
      0.51 ±  9%      -0.4        0.12 ± 10%  perf-profile.children.cycles-pp.__es_remove_extent
      0.51 ±  8%      -0.4        0.12 ± 14%  perf-profile.children.cycles-pp.__filename_parentat
      0.54 ± 15%      -0.4        0.15 ± 17%  perf-profile.children.cycles-pp.rcu_do_batch
      0.51 ±  6%      -0.4        0.13 ± 23%  perf-profile.children.cycles-pp.d_lookup
      0.51 ±  6%      -0.4        0.13 ± 23%  perf-profile.children.cycles-pp.__d_lookup
      0.50 ± 10%      -0.4        0.12 ± 17%  perf-profile.children.cycles-pp.ext4_ext_insert_extent
      0.46 ±  3%      -0.4        0.10 ± 11%  perf-profile.children.cycles-pp.__ext4_check_dir_entry
      0.47 ±  8%      -0.4        0.11 ± 16%  perf-profile.children.cycles-pp.exit_to_user_mode_prepare
      0.49 ± 10%      -0.4        0.14 ± 17%  perf-profile.children.cycles-pp.ext4_alloc_inode
      0.48 ±  9%      -0.4        0.13 ± 14%  perf-profile.children.cycles-pp.jbd2_journal_stop
      0.48 ± 10%      -0.3        0.13 ±  8%  perf-profile.children.cycles-pp.ext4_es_lookup_extent
      0.44 ±  9%      -0.3        0.10 ± 17%  perf-profile.children.cycles-pp.path_parentat
      0.45 ±  6%      -0.3        0.11 ± 18%  perf-profile.children.cycles-pp.kmem_cache_free
      0.42 ±  8%      -0.3        0.08 ± 22%  perf-profile.children.cycles-pp.jbd2_journal_revoke
      0.47 ±  4%      -0.3        0.14 ± 25%  perf-profile.children.cycles-pp.jbd2_journal_get_write_access
      0.46 ±  9%      -0.3        0.13 ± 12%  perf-profile.children.cycles-pp.pagecache_get_page
      0.44 ±  6%      -0.3        0.12 ± 14%  perf-profile.children.cycles-pp.ext4_delete_entry
      0.42 ± 13%      -0.3        0.09 ± 11%  perf-profile.children.cycles-pp._raw_read_lock
      0.44 ± 10%      -0.3        0.12 ± 14%  perf-profile.children.cycles-pp.vfs_statx
      0.42 ±  8%      -0.3        0.11 ± 16%  perf-profile.children.cycles-pp.jbd2_journal_dirty_metadata
      0.43 ± 11%      -0.3        0.12 ± 11%  perf-profile.children.cycles-pp.kmem_cache_alloc_lru
      0.41 ±  4%      -0.3        0.10 ± 18%  perf-profile.children.cycles-pp.check_heap_object
      0.41 ± 10%      -0.3        0.10 ± 13%  perf-profile.children.cycles-pp.xas_descend
      0.39 ± 10%      -0.3        0.09 ± 12%  perf-profile.children.cycles-pp.__brelse
      0.37 ±  8%      -0.3        0.08 ± 19%  perf-profile.children.cycles-pp.ext4_es_insert_extent
      0.40 ± 11%      -0.3        0.12 ± 23%  perf-profile.children.cycles-pp.smpboot_thread_fn
      0.39 ±  8%      -0.3        0.10 ± 16%  perf-profile.children.cycles-pp.fscrypt_match_name
      0.36 ±  7%      -0.3        0.08 ± 22%  perf-profile.children.cycles-pp.dput
      0.38 ± 12%      -0.3        0.11 ± 22%  perf-profile.children.cycles-pp.run_ksoftirqd
      0.36 ±  7%      -0.3        0.09 ± 23%  perf-profile.children.cycles-pp.ext4_group_desc_csum_set
      0.36 ±  8%      -0.3        0.09 ± 21%  perf-profile.children.cycles-pp.mb_find_extent
      0.36 ± 16%      -0.3        0.09 ± 24%  perf-profile.children.cycles-pp.lockref_get_not_dead
      0.35 ±  9%      -0.3        0.08 ± 16%  perf-profile.children.cycles-pp.ext4_get_link
      0.34 ±  7%      -0.3        0.08 ± 23%  perf-profile.children.cycles-pp.ext4_group_desc_csum
      0.30 ±  8%      -0.3        0.05 ± 48%  perf-profile.children.cycles-pp.ext4_get_group_desc
      0.34 ± 12%      -0.2        0.10 ± 21%  perf-profile.children.cycles-pp.inode_permission
      0.36 ±  6%      -0.2        0.11 ± 26%  perf-profile.children.cycles-pp.jbd2_write_access_granted
      0.30 ±  6%      -0.2        0.06 ± 51%  perf-profile.children.cycles-pp.jbd2_journal_forget
      0.32 ±  7%      -0.2        0.08 ± 20%  perf-profile.children.cycles-pp.__slab_free
      0.31 ±  6%      -0.2        0.08 ± 20%  perf-profile.children.cycles-pp._IO_default_xsputn
      0.31 ± 10%      -0.2        0.08 ± 19%  perf-profile.children.cycles-pp.alloc_empty_file
      0.29 ± 11%      -0.2        0.06 ± 15%  perf-profile.children.cycles-pp.__es_insert_extent
      0.31 ±  8%      -0.2        0.08 ± 14%  perf-profile.children.cycles-pp.mb_find_order_for_block
      0.32 ±  2%      -0.2        0.09 ± 10%  perf-profile.children.cycles-pp.memset_orig
      0.31 ± 13%      -0.2        0.09 ± 32%  perf-profile.children.cycles-pp._raw_spin_trylock
      0.34 ± 11%      -0.2        0.13 ± 11%  perf-profile.children.cycles-pp.filemap_add_folio
      0.27 ±  5%      -0.2        0.06 ± 11%  perf-profile.children.cycles-pp.crypto_shash_update
      0.25 ± 13%      -0.2        0.04 ± 71%  perf-profile.children.cycles-pp.path_init
      0.29 ±  9%      -0.2        0.08 ± 11%  perf-profile.children.cycles-pp.___slab_alloc
      0.24 ±  8%      -0.2        0.03 ±101%  perf-profile.children.cycles-pp.path_put
      0.26 ± 11%      -0.2        0.06 ± 17%  perf-profile.children.cycles-pp.exit_to_user_mode_loop
      0.44 ± 13%      -0.2        0.25 ± 12%  perf-profile.children.cycles-pp.__irq_exit_rcu
      0.25 ± 10%      -0.2        0.06 ± 47%  perf-profile.children.cycles-pp.ext4_read_block_bitmap
      0.28 ± 11%      -0.2        0.08 ± 22%  perf-profile.children.cycles-pp.ext4_mb_free_metadata
      0.23 ± 18%      -0.2        0.04 ± 72%  perf-profile.children.cycles-pp.ext4_inode_bitmap_csum_set
      0.29 ± 13%      -0.2        0.10 ± 40%  perf-profile.children.cycles-pp.ext4_mb_prefetch
      0.22 ±  6%      -0.2        0.03 ±105%  perf-profile.children.cycles-pp.lockref_put_return
      0.22 ± 12%      -0.2        0.04 ± 72%  perf-profile.children.cycles-pp.task_work_run
      0.24 ± 10%      -0.2        0.06 ± 47%  perf-profile.children.cycles-pp.ext4_read_block_bitmap_nowait
      0.21 ±  9%      -0.2        0.03 ±100%  perf-profile.children.cycles-pp.ext4_es_free_extent
      0.22 ± 10%      -0.2        0.04 ± 72%  perf-profile.children.cycles-pp.__check_block_validity
      0.22 ± 13%      -0.2        0.04 ± 77%  perf-profile.children.cycles-pp.generic_permission
      0.24 ±  8%      -0.2        0.07 ± 20%  perf-profile.children.cycles-pp.ext4_sb_block_valid
      0.24 ±  4%      -0.2        0.07 ± 17%  perf-profile.children.cycles-pp.__virt_addr_valid
      0.24 ± 14%      -0.2        0.07 ± 14%  perf-profile.children.cycles-pp.allocate_slab
      0.20 ±  9%      -0.2        0.02 ± 99%  perf-profile.children.cycles-pp.__check_heap_object
      0.20 ± 14%      -0.2        0.03 ±102%  perf-profile.children.cycles-pp.walk_component
      0.25 ± 10%      -0.2        0.08 ± 22%  perf-profile.children.cycles-pp.ext4_get_group_info
      0.23 ± 11%      -0.2        0.06 ± 14%  perf-profile.children.cycles-pp.do_open
      0.22 ±  9%      -0.2        0.06 ± 13%  perf-profile.children.cycles-pp.ext4_mb_use_best_found
      0.22 ±  9%      -0.2        0.06 ± 46%  perf-profile.children.cycles-pp.entry_SYSCALL_64_safe_stack
      0.22 ± 11%      -0.2        0.06 ± 15%  perf-profile.children.cycles-pp.readlink_copy
      0.21 ± 10%      -0.2        0.04 ± 45%  perf-profile.children.cycles-pp.__ext4fs_dirhash
      0.25 ± 11%      -0.2        0.10 ± 11%  perf-profile.children.cycles-pp.__filemap_add_folio
      0.20 ±  9%      -0.2        0.04 ± 45%  perf-profile.children.cycles-pp.ext4_mb_prefetch_fini
      0.20 ± 18%      -0.2        0.05 ± 46%  perf-profile.children.cycles-pp.shuffle_freelist
      0.22 ± 11%      -0.2        0.07 ± 21%  perf-profile.children.cycles-pp.folio_mark_accessed
      0.19 ± 16%      -0.1        0.04 ± 45%  perf-profile.children.cycles-pp.__list_del_entry_valid
      0.20 ± 12%      -0.1        0.06 ± 19%  perf-profile.children.cycles-pp._copy_to_user
      0.19 ±  3%      -0.1        0.05 ± 46%  perf-profile.children.cycles-pp.__jbd2_journal_file_buffer
      0.18 ± 18%      -0.1        0.04 ± 45%  perf-profile.children.cycles-pp.setup_object
      0.17 ± 15%      -0.1        0.05 ± 46%  perf-profile.children.cycles-pp.ext4_fc_init_inode
      0.16 ± 10%      -0.1        0.04 ± 45%  perf-profile.children.cycles-pp.memcg_slab_post_alloc_hook
      0.16 ± 13%      -0.1        0.05 ± 75%  perf-profile.children.cycles-pp.folio_alloc
      0.17 ± 13%      -0.1        0.06 ± 53%  perf-profile.children.cycles-pp.__alloc_pages
      0.13 ± 19%      -0.1        0.03 ±103%  perf-profile.children.cycles-pp.get_page_from_freelist
      0.27 ± 12%      -0.1        0.18 ± 17%  perf-profile.children.cycles-pp.ext4_mb_find_good_group_avg_frag_lists
      0.12 ±  8%      -0.1        0.04 ± 73%  perf-profile.children.cycles-pp.touch_atime
      0.11 ± 14%      -0.1        0.04 ± 72%  perf-profile.children.cycles-pp._raw_spin_lock_irq
     36.65 ±  5%     +23.9       60.52 ±  5%  perf-profile.children.cycles-pp.symlink
     35.81 ±  5%     +24.5       60.32 ±  5%  perf-profile.children.cycles-pp.__x64_sys_symlink
     35.54 ±  5%     +24.7       60.24 ±  5%  perf-profile.children.cycles-pp.do_symlinkat
     34.80 ±  5%     +25.3       60.07 ±  5%  perf-profile.children.cycles-pp.vfs_symlink
     34.73 ±  5%     +25.3       60.06 ±  5%  perf-profile.children.cycles-pp.ext4_symlink
      8.16 ±  6%     +28.3       36.49 ±  4%  perf-profile.children.cycles-pp._raw_spin_lock
      6.76 ±  6%     +29.4       36.14 ±  4%  perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
     28.56 ±  6%     +29.9       58.46 ±  5%  perf-profile.children.cycles-pp.ext4_bread
     28.54 ±  6%     +29.9       58.46 ±  5%  perf-profile.children.cycles-pp.ext4_getblk
     27.14 ±  6%     +30.9       58.06 ±  5%  perf-profile.children.cycles-pp.ext4_init_symlink_block
     18.24 ±  8%     +37.4       55.63 ±  5%  perf-profile.children.cycles-pp.__ext4_journal_get_create_access
     18.24 ±  8%     +37.4       55.63 ±  5%  perf-profile.children.cycles-pp.jbd2_journal_get_create_access
     17.96 ±  8%     +37.6       55.56 ±  5%  perf-profile.children.cycles-pp.jbd2_journal_cancel_revoke
     17.85 ±  8%     +37.7       55.53 ±  5%  perf-profile.children.cycles-pp.find_revoke_record
      2.53 ±  5%      -1.9        0.66 ± 12%  perf-profile.self.cycles-pp.syscall_return_via_sysret
      2.23 ±  5%      -1.7        0.54 ± 15%  perf-profile.self.cycles-pp.__percpu_counter_sum
      2.19 ±  4%      -1.6        0.56 ± 13%  perf-profile.self.cycles-pp.crc32c_pcl_intel_update
      2.15 ±  7%      -1.5        0.60 ±  8%  perf-profile.self.cycles-pp.syscall_exit_to_user_mode
      1.64 ±  7%      -1.2        0.44 ±  9%  perf-profile.self.cycles-pp.crc_pcl
      1.47 ±  4%      -1.1        0.40 ± 15%  perf-profile.self.cycles-pp.entry_SYSCALL_64_after_hwframe
      1.41 ±  8%      -1.0        0.36 ±  8%  perf-profile.self.cycles-pp._raw_spin_lock
      1.28 ±  6%      -1.0        0.30 ± 15%  perf-profile.self.cycles-pp.__find_get_block
      1.24 ±  4%      -0.9        0.35 ± 11%  perf-profile.self.cycles-pp._find_next_bit
      1.10 ±  5%      -0.8        0.27 ± 16%  perf-profile.self.cycles-pp.__entry_text_start
      0.96 ±  5%      -0.7        0.26 ± 13%  perf-profile.self.cycles-pp.ext4_fill_raw_inode
      0.82 ±  6%      -0.6        0.19 ± 11%  perf-profile.self.cycles-pp.filemap_get_entry
      0.76 ±  9%      -0.6        0.18 ± 17%  perf-profile.self.cycles-pp._find_next_or_bit
      0.76 ±  4%      -0.6        0.20 ± 11%  perf-profile.self.cycles-pp.ext4_find_dest_de
      0.66 ±  6%      -0.5        0.17 ± 16%  perf-profile.self.cycles-pp.__ext4_get_inode_loc
      0.60 ±  5%      -0.5        0.14 ±  3%  perf-profile.self.cycles-pp.kmem_cache_alloc
      0.62 ±  8%      -0.4        0.18 ± 10%  perf-profile.self.cycles-pp._raw_spin_lock_irqsave
      0.53 ±  8%      -0.4        0.12 ± 17%  perf-profile.self.cycles-pp.ext4_inode_csum
      0.46 ±  3%      -0.4        0.08 ± 21%  perf-profile.self.cycles-pp.percpu_counter_add_batch
      0.46 ±  3%      -0.4        0.10 ± 11%  perf-profile.self.cycles-pp.__ext4_check_dir_entry
      0.47 ± 13%      -0.4        0.10 ± 18%  perf-profile.self.cycles-pp.__ext4_journal_get_write_access
      0.47 ±  8%      -0.4        0.12 ± 22%  perf-profile.self.cycles-pp.ext4_do_update_inode
      0.41 ± 12%      -0.3        0.09 ± 10%  perf-profile.self.cycles-pp._raw_read_lock
      0.38 ±  9%      -0.3        0.08 ± 14%  perf-profile.self.cycles-pp.__brelse
      0.39 ±  9%      -0.3        0.10 ± 27%  perf-profile.self.cycles-pp.__d_lookup
      0.38 ± 11%      -0.3        0.10 ± 12%  perf-profile.self.cycles-pp.xas_descend
      0.37 ± 10%      -0.3        0.09 ± 14%  perf-profile.self.cycles-pp.link_path_walk
      0.37 ±  4%      -0.3        0.10 ± 18%  perf-profile.self.cycles-pp.kmem_cache_free
      0.36 ± 11%      -0.3        0.08 ± 18%  perf-profile.self.cycles-pp.__cond_resched
      0.37 ±  9%      -0.3        0.11 ±  9%  perf-profile.self.cycles-pp.ext4_mark_iloc_dirty
      0.35 ± 15%      -0.3        0.09 ± 24%  perf-profile.self.cycles-pp.lockref_get_not_dead
      0.34 ±  9%      -0.3        0.09 ± 22%  perf-profile.self.cycles-pp.strncpy_from_user
      0.30 ±  8%      -0.2        0.05 ± 48%  perf-profile.self.cycles-pp.ext4_get_group_desc
      0.34 ± 11%      -0.2        0.10 ± 21%  perf-profile.self.cycles-pp.__ext4_handle_dirty_metadata
      0.34 ±  6%      -0.2        0.10 ± 28%  perf-profile.self.cycles-pp.jbd2_write_access_granted
      0.32 ±  7%      -0.2        0.08 ± 20%  perf-profile.self.cycles-pp.__slab_free
      0.31 ±  4%      -0.2        0.08 ± 15%  perf-profile.self.cycles-pp.xas_load
      0.31 ±  6%      -0.2        0.08 ± 20%  perf-profile.self.cycles-pp._IO_default_xsputn
      0.32 ±  2%      -0.2        0.09 ± 10%  perf-profile.self.cycles-pp.memset_orig
      0.31 ±  7%      -0.2        0.08 ± 14%  perf-profile.self.cycles-pp.mb_find_order_for_block
      0.31 ± 14%      -0.2        0.09 ± 32%  perf-profile.self.cycles-pp._raw_spin_trylock
      0.25 ± 11%      -0.2        0.04 ± 73%  perf-profile.self.cycles-pp.ext4_statfs
      0.26 ± 12%      -0.2        0.05 ± 49%  perf-profile.self.cycles-pp.__ext4_new_inode
      0.26 ±  4%      -0.2        0.06 ± 13%  perf-profile.self.cycles-pp.crypto_shash_update
      0.23 ± 13%      -0.2        0.04 ± 71%  perf-profile.self.cycles-pp.path_init
      0.23 ± 14%      -0.2        0.03 ±100%  perf-profile.self.cycles-pp.jbd2_journal_dirty_metadata
      0.25 ±  8%      -0.2        0.06 ± 46%  perf-profile.self.cycles-pp.fscrypt_match_name
      0.22 ±  6%      -0.2        0.03 ±105%  perf-profile.self.cycles-pp.lockref_put_return
      0.21 ±  6%      -0.2        0.03 ±100%  perf-profile.self.cycles-pp.__ext4_mark_inode_dirty
      0.25 ± 14%      -0.2        0.08 ± 18%  perf-profile.self.cycles-pp.ext4_es_lookup_extent
      0.24 ±  7%      -0.2        0.06 ± 21%  perf-profile.self.cycles-pp.ext4_sb_block_valid
      0.20 ± 10%      -0.2        0.02 ± 99%  perf-profile.self.cycles-pp.__check_heap_object
      0.23 ± 10%      -0.2        0.06 ± 52%  perf-profile.self.cycles-pp.ext4_get_group_info
      0.20 ±  6%      -0.2        0.04 ± 71%  perf-profile.self.cycles-pp.ext4_reserve_inode_write
      0.23 ±  4%      -0.2        0.06 ± 23%  perf-profile.self.cycles-pp.__virt_addr_valid
      0.19 ± 15%      -0.2        0.03 ±102%  perf-profile.self.cycles-pp.ext4_getblk
      0.19 ± 16%      -0.1        0.04 ± 45%  perf-profile.self.cycles-pp.__list_del_entry_valid
      0.18 ±  5%      -0.1        0.04 ± 45%  perf-profile.self.cycles-pp.dx_probe
      0.20 ± 12%      -0.1        0.08 ± 72%  perf-profile.self.cycles-pp.ext4_mb_prefetch
      0.17 ± 16%      -0.1        0.05 ± 46%  perf-profile.self.cycles-pp.ext4_fc_init_inode
      0.12 ±  8%      -0.1        0.03 ±100%  perf-profile.self.cycles-pp.do_syscall_64
      0.10 ± 18%      -0.1        0.03 ±102%  perf-profile.self.cycles-pp._raw_spin_lock_irq
      0.10 ± 23%      -0.0        0.07 ± 20%  perf-profile.self.cycles-pp.ext4_mb_find_good_group_avg_frag_lists
     13.44 ±  5%      +9.0       22.43 ±  4%  perf-profile.self.cycles-pp.find_revoke_record
      6.72 ±  6%     +29.2       35.97 ±  4%  perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath




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.
diff mbox series

Patch

diff --git a/block/blk-flush.c b/block/blk-flush.c
index ed195c760617..a299dae65350 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -178,7 +178,8 @@  static void blk_end_flush(struct request *rq, struct blk_flush_queue *fq,
 	 * normal completion and end it.
 	 */
 	list_del_init(&rq->queuelist);
-	blk_flush_restore_request(rq);
+	if (rq->rq_flags & RQF_FLUSH_SEQ)
+		blk_flush_restore_request(rq);
 	blk_mq_end_request(rq, error);
 
 	blk_kick_flush(q, fq);
@@ -461,7 +462,8 @@  bool blk_insert_flush(struct request *rq)
 		 * Mark the request as part of a flush sequence and submit it
 		 * for further processing to the flush state machine.
 		 */
-		blk_rq_init_flush(rq);
+		if (policy & REQ_FSEQ_POSTFLUSH)
+			blk_rq_init_flush(rq);
 		spin_lock_irq(&fq->mq_flush_lock);
 		blk_enqueue_preflush(rq, fq);
 		spin_unlock_irq(&fq->mq_flush_lock);