linux-hardened/fs/xfs
Dave Chinner e3a20c0b02 xfs: batch inode reclaim lookup
Batch and optimise the per-ag inode lookup for reclaim to minimise
scanning overhead. This involves gang lookups on the radix trees to
get multiple inodes during each tree walk, and tighter validation of
what inodes can be reclaimed without blocking befor we take any
locks.

This is based on ideas suggested in a proof-of-concept patch
posted by Nick Piggin.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
2010-10-18 15:07:54 -05:00
..
linux-2.6 xfs: batch inode reclaim lookup 2010-10-18 15:07:54 -05:00
quota xfs: split out inode walk inode grabbing 2010-10-18 15:07:52 -05:00
support xfs: drop dmapi hooks 2010-07-26 13:16:33 -05:00
Kconfig
Makefile xfs: simplify log item descriptor tracking 2010-07-26 13:16:34 -05:00
xfs.h xfs: event tracing support 2009-12-14 23:08:16 -06:00
xfs_acl.h xfs: constify xattr_handler 2010-05-21 18:31:19 -04:00
xfs_ag.h xfs: lockless per-ag lookups 2010-10-18 15:07:44 -05:00
xfs_alloc.c xfs: eliminate some newly-reported gcc warnings 2010-10-18 15:07:39 -05:00
xfs_alloc.h xfs: do not use emums for flags used in tracing 2010-07-26 13:16:43 -05:00
xfs_alloc_btree.c xfs: remove the ->kill_root btree operation 2010-10-18 15:07:38 -05:00
xfs_alloc_btree.h
xfs_arch.h
xfs_attr.c xfs: don't use vfs writeback for pure metadata modifications 2010-10-18 15:07:45 -05:00
xfs_attr.h xfs: convert attr to use unsigned names 2010-01-20 10:47:48 +11:00
xfs_attr_leaf.c xfs: remove unused delta tracking code in xfs_bmapi 2010-07-26 13:16:39 -05:00
xfs_attr_leaf.h
xfs_attr_sf.h xfs: convert attr to use unsigned names 2010-01-20 10:47:48 +11:00
xfs_bit.c
xfs_bit.h
xfs_bmap.c xfs: Introduce XFS_IOC_ZERO_RANGE 2010-10-18 15:07:25 -05:00
xfs_bmap.h xfs: Introduce XFS_IOC_ZERO_RANGE 2010-10-18 15:07:25 -05:00
xfs_bmap_btree.c xfs: remove unneeded #include statements 2010-07-26 13:16:33 -05:00
xfs_bmap_btree.h xfs: make several more functions static 2010-01-15 15:31:38 -06:00
xfs_btree.c xfs: remove the ->kill_root btree operation 2010-10-18 15:07:38 -05:00
xfs_btree.h xfs: remove the ->kill_root btree operation 2010-10-18 15:07:38 -05:00
xfs_btree_trace.c
xfs_btree_trace.h xfs: event tracing support 2009-12-14 23:08:16 -06:00
xfs_buf_item.c xfs: store xfs_mount in the buftarg instead of in the xfs_buf 2010-10-18 15:07:48 -05:00
xfs_buf_item.h xfs: give li_cb callbacks the correct prototype 2010-07-26 13:16:35 -05:00
xfs_da_btree.c xfs: fix gcc 4.6 set but not read and unused statement warnings 2010-07-26 13:16:51 -05:00
xfs_da_btree.h xfs: convert dirnameops to unsigned char names 2010-01-20 10:47:17 +11:00
xfs_dfrag.c xfs: simplify inode to transaction joining 2010-07-26 13:16:36 -05:00
xfs_dfrag.h xfs: clean up inconsistent variable naming in xfs_swap_extent 2010-01-15 15:31:23 -06:00
xfs_dinode.h
xfs_dir2.c xfs: split xfs_itrace_entry 2010-07-26 13:16:44 -05:00
xfs_dir2.h xfs: make xfs_dir_cilookup_result use unsigned char 2010-01-20 10:47:25 +11:00
xfs_dir2_block.c xfs: fix gcc 4.6 set but not read and unused statement warnings 2010-07-26 13:16:51 -05:00
xfs_dir2_block.h
xfs_dir2_data.c xfs: remove unneeded #include statements 2010-07-26 13:16:33 -05:00
xfs_dir2_data.h
xfs_dir2_leaf.c xfs: remove unused delta tracking code in xfs_bmapi 2010-07-26 13:16:39 -05:00
xfs_dir2_leaf.h
xfs_dir2_node.c xfs: remove unneeded #include statements 2010-07-26 13:16:33 -05:00
xfs_dir2_node.h xfs: make several more functions static 2010-01-15 15:31:38 -06:00
xfs_dir2_sf.c xfs: remove unneeded #include statements 2010-07-26 13:16:33 -05:00
xfs_dir2_sf.h
xfs_error.c xfs: remove unneeded #include statements 2010-07-26 13:16:33 -05:00
xfs_error.h xfs: add const qualifiers to xfs error function args 2010-05-19 09:58:11 -05:00
xfs_extfree_item.c xfs: fix the xfs_log_iovec i_addr type 2010-07-26 13:16:36 -05:00
xfs_extfree_item.h
xfs_filestream.c xfs: clean up filestreams helpers 2010-07-26 13:16:51 -05:00
xfs_filestream.h xfs: clean up filestreams helpers 2010-07-26 13:16:51 -05:00
xfs_fs.h xfs: Introduce XFS_IOC_ZERO_RANGE 2010-10-18 15:07:25 -05:00
xfs_fsops.c xfs: use unhashed buffers for size checks 2010-10-18 15:07:50 -05:00
xfs_fsops.h xfs: dummy transactions should not dirty VFS state 2010-08-24 11:46:31 +10:00
xfs_ialloc.c xfs: fix untrusted inode number lookup 2010-08-24 11:42:30 +10:00
xfs_ialloc.h xfs: rationalize xfs_inobt_lookup* 2009-09-01 12:45:39 -05:00
xfs_ialloc_btree.c xfs: remove the ->kill_root btree operation 2010-10-18 15:07:38 -05:00
xfs_ialloc_btree.h
xfs_iget.c xfs: fix gcc 4.6 set but not read and unused statement warnings 2010-07-26 13:16:51 -05:00
xfs_inode.c xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE 2010-08-24 11:42:41 +10:00
xfs_inode.h xfs: don't use vfs writeback for pure metadata modifications 2010-10-18 15:07:45 -05:00
xfs_inode_item.c xfs: don't use vfs writeback for pure metadata modifications 2010-10-18 15:07:45 -05:00
xfs_inode_item.h xfs: simplify inode to transaction joining 2010-07-26 13:16:36 -05:00
xfs_inum.h xfs: remove XFS_INO64_OFFSET 2009-08-31 14:46:22 -05:00
xfs_iomap.c xfs: small cleanups for xfs_iomap / __xfs_get_blocks 2010-07-26 13:16:42 -05:00
xfs_iomap.h xfs: do not use emums for flags used in tracing 2010-07-26 13:16:43 -05:00
xfs_itable.c xfs: remove xfs_iput 2010-07-26 13:16:44 -05:00
xfs_itable.h xfs: remove block number from inode lookup code 2010-06-24 11:35:17 +10:00
xfs_log.c xfs: rename xfs_buf_get_nodaddr to be more appropriate 2010-10-18 15:07:46 -05:00
xfs_log.h xfs: remove the unused XFS_LOG_SLEEP and XFS_LOG_NOSLEEP flags 2010-07-26 13:16:38 -05:00
xfs_log_cil.c xfs: reduce the number of CIL lock round trips during commit 2010-10-18 15:07:42 -05:00
xfs_log_priv.h xfs: force background CIL push under sustained load 2010-09-29 07:51:03 -05:00
xfs_log_recover.c xfs: store xfs_mount in the buftarg instead of in the xfs_buf 2010-10-18 15:07:48 -05:00
xfs_log_recover.h xfs: Clean up XFS_BLI_* flag namespace 2010-05-24 10:33:39 -05:00
xfs_mount.c xfs: split inode AG walking into separate code for reclaim 2010-10-18 15:07:52 -05:00
xfs_mount.h xfs: split inode AG walking into separate code for reclaim 2010-10-18 15:07:52 -05:00
xfs_mru_cache.c xfs: Kill filestreams cache flush 2010-01-15 15:34:22 -06:00
xfs_mru_cache.h xfs: Kill filestreams cache flush 2010-01-15 15:34:22 -06:00
xfs_quota.h xfs: removed unused XFS_QMOPT_ flags 2010-05-19 09:58:15 -05:00
xfs_refcache.h
xfs_rename.c xfs: don't use vfs writeback for pure metadata modifications 2010-10-18 15:07:45 -05:00
xfs_rtalloc.c xfs: use unhashed buffers for size checks 2010-10-18 15:07:50 -05:00
xfs_rtalloc.h xfs: be more explicit if RT mount fails due to config 2010-05-28 14:58:24 -05:00
xfs_rw.c xfs: remove unneeded #include statements 2010-07-26 13:16:33 -05:00
xfs_rw.h xfs: only clear the suid bit once in xfs_write 2010-02-12 13:43:57 -06:00
xfs_sb.h
xfs_trans.c xfs: unlock items before allowing the CIL to commit 2010-08-24 11:42:52 +10:00
xfs_trans.h xfs: don't use vfs writeback for pure metadata modifications 2010-10-18 15:07:45 -05:00
xfs_trans_ail.c xfs: drop dmapi hooks 2010-07-26 13:16:33 -05:00
xfs_trans_buf.c xfs: give li_cb callbacks the correct prototype 2010-07-26 13:16:35 -05:00
xfs_trans_extfree.c xfs: simplify log item descriptor tracking 2010-07-26 13:16:34 -05:00
xfs_trans_inode.c xfs: don't use vfs writeback for pure metadata modifications 2010-10-18 15:07:45 -05:00
xfs_trans_priv.h xfs: unlock items before allowing the CIL to commit 2010-08-24 11:42:52 +10:00
xfs_trans_space.h
xfs_types.h xfs: make the log ticket ID available outside the log infrastructure 2010-05-24 10:33:52 -05:00
xfs_utils.c xfs: don't use vfs writeback for pure metadata modifications 2010-10-18 15:07:45 -05:00
xfs_utils.h xfs: simplify xfs_truncate_file 2010-07-26 13:16:52 -05:00
xfs_vnodeops.c xfs: rename xfs_buf_get_nodaddr to be more appropriate 2010-10-18 15:07:46 -05:00
xfs_vnodeops.h xfs: kill xfs_lrw.h 2010-03-01 16:35:44 -06:00