Christoph Hellwig
0030807c66
xfs: revert to using a kthread for AIL pushing
...
Currently we have a few issues with the way the workqueue code is used to
implement AIL pushing:
- it accidentally uses the same workqueue as the syncer action, and thus
can be prevented from running if there are enough sync actions active
in the system.
- it doesn't use the HIGHPRI flag to queue at the head of the queue of
work items
At this point I'm not confident enough in getting all the workqueue flags and
tweaks right to provide a perfectly reliable execution context for AIL
pushing, which is the most important piece in XFS to make forward progress
when the log fills.
Revert back to use a kthread per filesystem which fixes all the above issues
at the cost of having a task struct and stack around for each mounted
filesystem. In addition this also gives us much better ways to diagnose
any issues involving hung AIL pushing and removes a small amount of code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reported-by: Stefan Priebe <s.priebe@profihost.ag>
Tested-by: Stefan Priebe <s.priebe@profihost.ag>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
2011-10-11 11:02:49 -05:00
..
Kconfig
kmem.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
kmem.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
Makefile
xfs: fix tracing builds inside the source tree
2011-08-22 16:37:24 -05:00
mrlock.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
time.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
uuid.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
uuid.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs.h
xfs: don't expect xfs headers to be in subdirectories
2011-08-12 13:57:55 -05:00
xfs_acl.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_acl.h
xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set
2011-08-01 02:35:04 -04:00
xfs_ag.h
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_alloc.c
xfs: Remove the macro XFS_BUF_ERROR and family
2011-07-25 14:57:46 -05:00
xfs_alloc.h
xfs: do not discard alloc btree blocks
2011-05-24 11:17:22 -05:00
xfs_alloc_btree.c
xfs: remove leftovers of the old btree tracing code
2011-07-13 13:43:50 +02:00
xfs_alloc_btree.h
xfs_aops.c
xfs: fix a use after free in xfs_end_io_direct_write
2011-09-14 08:56:35 -05:00
xfs_aops.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_attr.c
xfs: Remove the macro XFS_BUF_ERROR and family
2011-07-25 14:57:46 -05:00
xfs_attr.h
xfs_attr_leaf.c
xfs: byteswap constants instead of variables
2011-07-08 14:36:05 +02:00
xfs_attr_leaf.h
xfs_attr_sf.h
xfs_bit.c
xfs_bit.h
xfs_bmap.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
2011-08-08 07:06:24 -05:00
xfs_bmap.h
xfs: remove the unused XFS_BMAPI_RSVBLOCKS flag
2011-05-25 10:48:36 -05:00
xfs_bmap_btree.c
xfs: remove leftovers of the old btree tracing code
2011-07-13 13:43:50 +02:00
xfs_bmap_btree.h
xfs_btree.c
xfs: Remove the macro XFS_BUF_ERROR and family
2011-07-25 14:57:46 -05:00
xfs_btree.h
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_buf.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_buf.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_buf_item.c
xfs: force the log if we encounter pinned buffers in .iop_pushbuf
2011-10-11 11:02:48 -05:00
xfs_buf_item.h
xfs_da_btree.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
2011-08-08 07:06:24 -05:00
xfs_da_btree.h
xfs: remove the dead XFS_DABUF_DEBUG code
2011-07-13 13:43:50 +02:00
xfs_dfrag.c
xfs: cleanup duplicate initializations
2011-04-28 13:25:29 -05:00
xfs_dfrag.h
xfs_dinode.h
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_dir2.c
xfs: get rid of open-coded S_ISREG(), etc.
2011-07-26 15:05:16 -04:00
xfs_dir2.h
xfs: reshuffle dir2 headers
2011-07-13 13:43:48 +02:00
xfs_dir2_block.c
xfs: reshuffle dir2 headers
2011-07-13 13:43:48 +02:00
xfs_dir2_data.c
xfs: reshuffle dir2 headers
2011-07-13 13:43:48 +02:00
xfs_dir2_format.h
xfs: cleanup struct xfs_dir2_free
2011-07-13 13:43:48 +02:00
xfs_dir2_leaf.c
xfs: factor out xfs_dir2_leaf_find_stale
2011-07-13 13:43:48 +02:00
xfs_dir2_node.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2011-07-25 13:56:39 -07:00
xfs_dir2_priv.h
xfs: reshuffle dir2 headers
2011-07-13 13:43:48 +02:00
xfs_dir2_sf.c
xfs: reshuffle dir2 headers
2011-07-13 13:43:48 +02:00
xfs_discard.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_discard.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_dquot.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_dquot.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_dquot_item.c
xfs: force the log if we encounter pinned buffers in .iop_pushbuf
2011-10-11 11:02:48 -05:00
xfs_dquot_item.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_error.c
xfs_error.h
xfs_export.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_export.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_extfree_item.c
xfs_extfree_item.h
xfs_file.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_filestream.c
xfs: fix misspelled S_IS...()
2011-07-26 15:05:30 -04:00
xfs_filestream.h
xfs_fs.h
xfs: consolidate & clarify mount sanity checks
2011-07-08 11:32:51 -05:00
xfs_fs_subr.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_fsops.c
Revert "xfs: fix filesystsem freeze race in xfs_trans_alloc"
2011-07-11 10:21:03 -05:00
xfs_fsops.h
xfs_globals.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_ialloc.c
xfs: Remove the macro XFS_BUF_ERROR and family
2011-07-25 14:57:46 -05:00
xfs_ialloc.h
xfs_ialloc_btree.c
xfs: remove leftovers of the old btree tracing code
2011-07-13 13:43:50 +02:00
xfs_ialloc_btree.h
xfs_iget.c
xfs: remove leftovers of the old btree tracing code
2011-07-13 13:43:50 +02:00
xfs_inode.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
2011-08-08 07:06:24 -05:00
xfs_inode.h
xfs: get rid of open-coded S_ISREG(), etc.
2011-07-26 15:05:16 -04:00
xfs_inode_item.c
xfs: force the log if we encounter pinned buffers in .iop_pushbuf
2011-10-11 11:02:48 -05:00
xfs_inode_item.h
xfs_inum.h
xfs: cleanup shortform directory inode number handling
2011-07-08 14:35:03 +02:00
xfs_ioctl.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_ioctl.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_ioctl32.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_ioctl32.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_iomap.c
Revert "xfs: fix filesystsem freeze race in xfs_trans_alloc"
2011-07-11 10:21:03 -05:00
xfs_iomap.h
xfs_iops.c
xfs: fix xfs_mark_inode_dirty during umount
2011-08-31 17:59:39 -05:00
xfs_iops.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_itable.c
xfs: fix variable set but not used warnings
2011-04-08 08:09:12 -05:00
xfs_itable.h
xfs_linux.h
xfs: revert to using a kthread for AIL pushing
2011-10-11 11:02:49 -05:00
xfs_log.c
xfs: Remove the macro XFS_BUF_SET_PTR
2011-07-25 15:03:17 -05:00
xfs_log.h
xfs: exact busy extent tracking
2011-04-28 13:18:04 -05:00
xfs_log_cil.c
xfs: add online discard support
2011-05-24 11:17:13 -05:00
xfs_log_priv.h
xfs: exact busy extent tracking
2011-04-28 13:18:04 -05:00
xfs_log_recover.c
xfs: replace xfs_buf_geterror() with bp->b_error
2011-08-12 13:39:40 -05:00
xfs_log_recover.h
xfs_message.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_message.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_mount.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
2011-08-08 07:06:24 -05:00
xfs_mount.h
xfs: Remove the second parameter to xfs_sb_count()
2011-07-20 18:35:03 -05:00
xfs_mru_cache.c
xfs_mru_cache.h
xfs_qm.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_qm.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_qm_bhv.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_qm_stats.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_qm_stats.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_qm_syscalls.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_quota.h
xfs_quota_priv.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_quotaops.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_rename.c
xfs: get rid of open-coded S_ISREG(), etc.
2011-07-26 15:05:16 -04:00
xfs_rtalloc.c
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_rtalloc.h
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_rw.c
xfs: Remove the macro XFS_BUFTARG_NAME
2011-07-25 15:03:37 -05:00
xfs_rw.h
xfs_sb.h
xfs: Remove the macro XFS_BUF_PTR
2011-07-25 15:03:13 -05:00
xfs_stats.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_stats.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_super.c
xfs: revert to using a kthread for AIL pushing
2011-10-11 11:02:49 -05:00
xfs_super.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_sync.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_sync.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_sysctl.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_sysctl.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_trace.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_trace.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_trans.c
xfs: use a cursor for bulk AIL insertion
2011-07-20 18:37:20 -05:00
xfs_trans.h
xfs: force the log if we encounter pinned buffers in .iop_pushbuf
2011-10-11 11:02:48 -05:00
xfs_trans_ail.c
xfs: revert to using a kthread for AIL pushing
2011-10-11 11:02:49 -05:00
xfs_trans_buf.c
xfs: Remove the macro XFS_BUF_TARGET
2011-07-25 15:03:31 -05:00
xfs_trans_dquot.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_trans_extfree.c
xfs_trans_inode.c
xfs: remove i_transp
2011-07-08 14:34:47 +02:00
xfs_trans_priv.h
xfs: revert to using a kthread for AIL pushing
2011-10-11 11:02:49 -05:00
xfs_trans_space.h
xfs_types.h
xfs: exact busy extent tracking
2011-04-28 13:18:04 -05:00
xfs_utils.c
xfs_utils.h
xfs_vnode.h
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00
xfs_vnodeops.c
xfs: replace xfs_buf_geterror() with bp->b_error
2011-08-12 13:39:40 -05:00
xfs_vnodeops.h
xfs: split xfs_setattr
2011-07-08 14:34:23 +02:00
xfs_xattr.c
xfs: remove subdirectories
2011-08-12 16:21:35 -05:00