more inode unlink list optimization v4
xfs: insert unlinked inodes from tail
Currently, AGI buffer is always touched since xfs_iunlink()
adds unlinked inodes from head unconditionally, but since we
have the only one unlinked list now and if we insert unlinked
inodes from tail instead and there're more than 1 inode, AGI
buffer could be untouched.
With this change, it shows that only 938 of 10000 operations
modifies the head of unlinked list with the following workload:
seq 1 10000 | xargs touch
find . | xargs -n3 -P100 rm
Note that xfs_iunlink_insert_lock() is slightly different from
xfs_iunlink_remove_lock() due to whiteout path, refer to inlined
comments for more details.
Signed-off-by: Gao Xiang <firstname.lastname@example.org>
1 file changed