Hi folks,
This is the second version of the generic per-cpu counter rework
patch series. The first version can be found here:
http://oss.sgi.com/archives/xfs/2015-02/msg00000.html
New in V2:
- drop the moving of the struct xfs_sb to xfs_super.h
- fixed all the little things that Christoph and Brian noted.
- keep the per-cpu counters in the struct xfs_mount and keep the
functions to sync them with the struct xfs_sb values when read
from disk or written to disk.
- integrated Christoph Hellwig's additional cleanup patch. This was
done by:
- intergating xfs_mod_XXX factoring into the relevant percpu
counter conversion patch
- separating out xfs_mod_frextents into it's won patch
- separating out the replacement of
xfs_mod_incore_sb_batched
- doing all the now unused API removal in a separate patch
The series passes xfstests without regressions, and no scalability
issues have been seen in my performance tests on a 16p VM. SGI - you
still need to test this, though. :)
Thoughts, comments?
-Dave.
PS: diffstat of the series is now:
fs/xfs/libxfs/xfs_bmap.c | 40 +--
fs/xfs/libxfs/xfs_format.h | 62 ----
fs/xfs/libxfs/xfs_ialloc.c | 6 +-
fs/xfs/libxfs/xfs_sb.c | 12 +-
fs/xfs/xfs_fsops.c | 20 +-
fs/xfs/xfs_iomap.c | 3 +-
fs/xfs/xfs_linux.h | 9 -
fs/xfs/xfs_log_recover.c | 4 +-
fs/xfs/xfs_mount.c | 919
++++++-----------------------------------------
fs/xfs/xfs_mount.h | 95 +----
fs/xfs/xfs_super.c | 103 ++++--
fs/xfs/xfs_super.h | 2 +
fs/xfs/xfs_trans.c | 234 +++++++-----
13 files changed, 381 insertions(+), 1128 deletions(-)
So we have a net reduction of roughly 750 lines of code. When
combined with the changes to the superblock logging that has already
been committed, we have reduced the superblock modification code by
close to 1000 lines compared to 3.19...
|