| From: |  | Christoph Hellwig <hch-AT-lst.de> | 
| To: |  | Chandan Babu R <chandan.babu-AT-oracle.com> | 
| Subject: |  | bring back RT delalloc support v2 | 
| Date: |  | Fri, 23 Feb 2024 08:14:56 +0100 | 
| Message-ID: |  | <20240223071506.3968029-1-hch@lst.de> | 
| Cc: |  | "Darrick J. Wong" <djwong-AT-kernel.org>,	Dave Chinner <david-AT-fromorbit.com>,	linux-xfs-AT-vger.kernel.org | 
| Archive-link: |  | Article | 
Hi all,
this series adds back delalloc support for RT inodes, at least if the RT
extent size is a single file system block.  This shows really nice
performance improvements for workloads that frequently rewrite or append
to files, and improves fragmentation for larger writes.  On other workloads
it sometimes shows small performance improvements or flat performance.
Changes since v1:
 - keep casting to int64_t for xfs_mod_delalloc
 - add a patch to clarify and assert that the block delta in
   xfs_trans_unreserve_and_mod_sb can only be positive
Diffstat:
 libxfs/xfs_ag.c       |    4 -
 libxfs/xfs_ag_resv.c  |   24 ++--------
 libxfs/xfs_ag_resv.h  |    2 
 libxfs/xfs_alloc.c    |    4 -
 libxfs/xfs_bmap.c     |  102 ++++++++++++++++++++++++++-----------------
 libxfs/xfs_rtbitmap.c |   14 +++++
 libxfs/xfs_shared.h   |    6 +-
 scrub/fscounters.c    |    5 +-
 scrub/repair.c        |    5 --
 xfs_fsops.c           |   29 +++---------
 xfs_fsops.h           |    2 
 xfs_inode.c           |    3 -
 xfs_iomap.c           |   44 ++++++++++++------
 xfs_iops.c            |    2 
 xfs_mount.c           |  117 +++++++++++++++++++++++++-------------------------
 xfs_mount.h           |   41 ++++++++++++++---
 xfs_rtalloc.c         |    2 
 xfs_super.c           |   17 ++++---
 xfs_trace.h           |    1 
 xfs_trans.c           |   63 ++++++++++++++------------
 20 files changed, 276 insertions(+), 211 deletions(-)