linux_dsm_epyc7002/fs/xfs
Darrick J. Wong f0f7a674d4 xfs: move inode flush to the sync workqueue
Move the inode dirty data flushing to a workqueue so that multiple
threads can take advantage of a single thread's flushing work.  The
ratelimiting technique used in bdd4ee4 was not successful, because
threads that skipped the inode flush scan due to ratelimiting would
ENOSPC early, which caused occasional (but noticeable) changes in
behavior and sporadic fstest regressions.

Therefore, make all the writer threads wait on a single inode flush,
which eliminates both the stampeding hordes of flushers and the small
window in which a write could fail with ENOSPC because it lost the
ratelimit race after even another thread freed space.

Fixes: c6425702f2 ("xfs: ratelimit inode flush on buffered write ENOSPC")
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
2020-04-16 09:07:42 -07:00
..
libxfs
scrub
Kconfig
kmem.c
kmem.h
Makefile
mrlock.h
xfs_acl.c
xfs_acl.h
xfs_aops.c
xfs_aops.h
xfs_attr_inactive.c
xfs_attr_list.c
xfs_bio_io.c
xfs_bmap_item.c
xfs_bmap_item.h
xfs_bmap_util.c
xfs_bmap_util.h
xfs_buf_item.c
xfs_buf_item.h
xfs_buf.c xfs: Improve metadata buffer reclaim accountability 2020-03-27 08:32:54 -07:00
xfs_buf.h
xfs_dir2_readdir.c
xfs_discard.c
xfs_discard.h
xfs_dquot_item.c xfs: trylock underlying buffer on dquot flush 2020-03-28 09:40:11 -07:00
xfs_dquot_item.h
xfs_dquot.c xfs: trylock underlying buffer on dquot flush 2020-03-28 09:40:11 -07:00
xfs_dquot.h
xfs_error.c
xfs_error.h
xfs_export.c xfs: factor out a new xfs_log_force_inode helper 2020-04-06 08:44:35 -07:00
xfs_export.h
xfs_extent_busy.c
xfs_extent_busy.h
xfs_extfree_item.c
xfs_extfree_item.h
xfs_file.c xfs: reflink should force the log out if mounted with wsync 2020-04-06 08:44:39 -07:00
xfs_filestream.c
xfs_filestream.h
xfs_fsmap.c
xfs_fsmap.h
xfs_fsops.c
xfs_fsops.h
xfs_globals.c
xfs_health.c
xfs_icache.c xfs: acquire superblock freeze protection on eofblocks scans 2020-04-13 08:00:19 -07:00
xfs_icache.h
xfs_icreate_item.c
xfs_icreate_item.h
xfs_inode_item.c xfs: return locked status of inode buffer on xfsaild push 2020-03-28 09:40:12 -07:00
xfs_inode_item.h
xfs_inode.c xfs: factor out a new xfs_log_force_inode helper 2020-04-06 08:44:35 -07:00
xfs_inode.h xfs: factor out a new xfs_log_force_inode helper 2020-04-06 08:44:35 -07:00
xfs_ioctl32.c
xfs_ioctl32.h
xfs_ioctl.c xfs: acquire superblock freeze protection on eofblocks scans 2020-04-13 08:00:19 -07:00
xfs_ioctl.h
xfs_iomap.c
xfs_iomap.h
xfs_iops.c
xfs_iops.h
xfs_itable.c
xfs_itable.h
xfs_iwalk.c
xfs_iwalk.h
xfs_linux.h
xfs_log_cil.c xfs: Throttle commits on delayed background CIL push 2020-03-27 08:32:54 -07:00
xfs_log_priv.h xfs: Throttle commits on delayed background CIL push 2020-03-27 08:32:54 -07:00
xfs_log_recover.c
xfs_log.c xfs: don't write a corrupt unmount record to force summary counter recalc 2020-03-27 08:32:55 -07:00
xfs_log.h xfs: refactor and split xfs_log_done() 2020-03-27 08:32:53 -07:00
xfs_message.c
xfs_message.h
xfs_mount.c
xfs_mount.h xfs: move inode flush to the sync workqueue 2020-04-16 09:07:42 -07:00
xfs_mru_cache.c
xfs_mru_cache.h
xfs_ondisk.h
xfs_pnfs.c
xfs_pnfs.h
xfs_pwork.c
xfs_pwork.h
xfs_qm_bhv.c
xfs_qm_syscalls.c
xfs_qm.c xfs: trylock underlying buffer on dquot flush 2020-03-28 09:40:11 -07:00
xfs_qm.h
xfs_quota.h
xfs_quotaops.c
xfs_refcount_item.c
xfs_refcount_item.h
xfs_reflink.c xfs: fix partially uninitialized structure in xfs_reflink_remap_extent 2020-04-13 08:00:23 -07:00
xfs_reflink.h
xfs_rmap_item.c
xfs_rmap_item.h
xfs_rtalloc.c
xfs_rtalloc.h
xfs_stats.c
xfs_stats.h
xfs_super.c xfs: move inode flush to the sync workqueue 2020-04-16 09:07:42 -07:00
xfs_super.h
xfs_symlink.c xfs: remove redundant variable assignment in xfs_symlink() 2020-03-31 08:42:22 -07:00
xfs_symlink.h
xfs_sysctl.c
xfs_sysctl.h
xfs_sysfs.c
xfs_sysfs.h
xfs_trace.c
xfs_trace.h xfs: Throttle commits on delayed background CIL push 2020-03-27 08:32:54 -07:00
xfs_trans_ail.c xfs: tail updates only need to occur when LSN changes 2020-03-27 08:32:55 -07:00
xfs_trans_buf.c
xfs_trans_dquot.c
xfs_trans_priv.h xfs: tail updates only need to occur when LSN changes 2020-03-27 08:32:55 -07:00
xfs_trans.c xfs: split xlog_ticket_done 2020-03-27 08:32:53 -07:00
xfs_trans.h
xfs_xattr.c
xfs.h