[XFS updates] XFS development tree branch, xfs-stack-fixes, created. xfs-for-linus-v3.14-rc1-2-12923-g93a8614
xfs at oss.sgi.com
xfs at oss.sgi.com
Thu Feb 27 00:37:01 CST 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".
The branch, xfs-stack-fixes has been created
at 93a8614e3a4dccd526aca34e892ac0b27f64b506 (commit)
- Log -----------------------------------------------------------------
commit 93a8614e3a4dccd526aca34e892ac0b27f64b506
Author: Dave Chinner <dchinner at redhat.com>
Date: Thu Feb 27 16:51:39 2014 +1100
xfs: fix directory inode iolock lockdep false positive
The change to add the IO lock to protect the directory extent map
during readdir operations has cause lockdep to have a heart attack
as it now sees a different locking order on inodes w.r.t. the
mmap_sem because readdir has a different ordering to write().
Add a new lockdep class for directory inodes to avoid this false
positive.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Dave Chinner <david at fromorbit.com>
commit a1358aa3d39251c16c6d8b20945e40bdfc2aad68
Author: Dave Chinner <dchinner at redhat.com>
Date: Thu Feb 27 16:51:26 2014 +1100
xfs: allocate xfs_da_args to reduce stack footprint
The struct xfs_da_args used to pass directory/attribute operation
information to the lower layers is 128 bytes in size and is
allocated on the stack. Dynamically allocate them to reduce the
stack footprint of directory operations.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Brian Foster <bfoster at redhat.com>
Signed-off-by: Dave Chinner <david at fromorbit.com>
commit f876e44603ad091c840a5fae5b0753bbb421c037
Author: Dave Chinner <dchinner at redhat.com>
Date: Thu Feb 27 16:40:42 2014 +1100
xfs: always do log forces via the workqueue
Log forces can occur deep in the call chain when we have relatively
little stack free. Log forces can also happen at close to the call
chain leaves (e.g. xfs_buf_lock()) and hence we can trigger IO from
places where we really don't want to add more stack overhead.
This stack overhead occurs because log forces do foreground CIL
pushes (xlog_cil_push_foreground()) rather than waking the
background push wq and waiting for the for the push to complete.
This foreground push was done to avoid confusing the CFQ Io
scheduler when fsync()s were issued, as it has trouble dealing with
dependent IOs being issued from different process contexts.
Avoiding blowing the stack is much more critical than performance
optimisations for CFQ, especially as we've been recommending against
the use of CFQ for XFS since 3.2 kernels were release because of
it's problems with multi-threaded IO workloads.
Hence convert xlog_cil_push_foreground() to move the push work
to the CIL workqueue. We already do the waiting for the push to
complete in xlog_cil_force_lsn(), so there's nothing else we need to
modify to make this work.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Brian Foster <bfoster at redhat.com>
Signed-off-by: Dave Chinner <david at fromorbit.com>
-----------------------------------------------------------------------
hooks/post-receive
--
XFS development tree
More information about the xfs
mailing list