Hi folks, The rtalloc-speedups-6.7 branch of the xfs-linux repository at: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git has just been updated. Now that the entire series of cleanups have passed review, I'm resending the entire patchbomb one last time. If I don't hear any objections in the next day or so, I'll ask Chandan to pull them for the 6.7 merge. The new head of the rtalloc-speedups-6.7 branch is commit: e0f7422f54b0 xfs: don't look for end of extent further than necessary in xfs_rtallocate_extent_near() 37 new commits: Darrick J. Wong (30): [948806280594] xfs: bump max fsgeom struct version [6c664484337b] xfs: hoist freeing of rt data fork extent mappings [b73494fa9a30] xfs: prevent rt growfs when quota is enabled [c2988eb5cff7] xfs: rt stubs should return negative errnos when rt disabled [ddd98076d5c0] xfs: fix units conversion error in xfs_bmap_del_extent_delay [f6a2dae2a1f5] xfs: make sure maxlen is still congruent with prod when rounding down [13928113fc5b] xfs: move the xfs_rtbitmap.c declarations to xfs_rtbitmap.h [a684c538bc14] xfs: convert xfs_extlen_t to xfs_rtxlen_t in the rt allocator [03f4de332e2e] xfs: convert rt bitmap/summary block numbers to xfs_fileoff_t [f29c3e745dc2] xfs: convert rt bitmap extent lengths to xfs_rtbxlen_t [3d2b6d034f0f] xfs: rename xfs_verify_rtext to xfs_verify_rtbext [2d5f216b77e3] xfs: convert rt extent numbers to xfs_rtxnum_t [fa5a38723086] xfs: create a helper to convert rtextents to rtblocks [68db60bf01c1] xfs: create a helper to compute leftovers of realtime extents [2c2b981b737a] xfs: create a helper to convert extlen to rtextlen [5dc3a80d46a4] xfs: create helpers to convert rt block numbers to rt extent numbers [055641248f64] xfs: convert do_div calls to xfs_rtb_to_rtx helper calls [5f57f7309d9a] xfs: create rt extent rounding helpers for realtime extent blocks [ef5a83b7e597] xfs: use shifting and masking when converting rt extents, if possible [90d98a6ada1d] xfs: convert the rtbitmap block and bit macros to static inline functions [add3cddaea50] xfs: remove XFS_BLOCKWSIZE and XFS_BLOCKWMASK macros [a9948626849c] xfs: convert open-coded xfs_rtword_t pointer accesses to helper [097b4b7b64ef] xfs: convert rt summary macros to helpers [d0448fe76ac1] xfs: create helpers for rtbitmap block/wordcount computations [312d61021b89] xfs: create a helper to handle logging parts of rt bitmap/summary blocks [97e993830a1c] xfs: use accessor functions for bitmap words [bd85af280de6] xfs: create helpers for rtsummary block/wordcount computations [663b8db7b025] xfs: use accessor functions for summary info words [5b1d0ae9753f] xfs: simplify xfs_rtbuf_get calling conventions [e2cf427c9149] xfs: simplify rt bitmap/summary block accessor functions Dave Chinner (1): [41f33d82cfd3] xfs: consolidate realtime allocation arguments Omar Sandoval (6): [e94b53ff699c] xfs: cache last bitmap block in realtime allocator [e23aaf450de7] xfs: invert the realtime summary cache [1b5d63963f98] xfs: return maximum free size from xfs_rtany_summary() [ec5857bf0763] xfs: limit maxlen based on available space in xfs_rtallocate_extent_near() [85fa2c774397] xfs: don't try redundant allocations in xfs_rtallocate_extent_near() [e0f7422f54b0] xfs: don't look for end of extent further than necessary in xfs_rtallocate_extent_near() Code Diffstat: fs/xfs/libxfs/xfs_bmap.c | 45 +-- fs/xfs/libxfs/xfs_format.h | 34 +- fs/xfs/libxfs/xfs_rtbitmap.c | 803 ++++++++++++++++++++++------------------- fs/xfs/libxfs/xfs_rtbitmap.h | 383 ++++++++++++++++++++ fs/xfs/libxfs/xfs_sb.c | 2 + fs/xfs/libxfs/xfs_sb.h | 2 +- fs/xfs/libxfs/xfs_trans_resv.c | 10 +- fs/xfs/libxfs/xfs_types.c | 4 +- fs/xfs/libxfs/xfs_types.h | 10 +- fs/xfs/scrub/bmap.c | 2 +- fs/xfs/scrub/fscounters.c | 2 +- fs/xfs/scrub/inode.c | 3 +- fs/xfs/scrub/rtbitmap.c | 28 +- fs/xfs/scrub/rtsummary.c | 72 ++-- fs/xfs/scrub/trace.c | 1 + fs/xfs/scrub/trace.h | 15 +- fs/xfs/xfs_bmap_util.c | 50 ++- fs/xfs/xfs_fsmap.c | 15 +- fs/xfs/xfs_inode_item.c | 3 +- fs/xfs/xfs_ioctl.c | 5 +- fs/xfs/xfs_linux.h | 12 + fs/xfs/xfs_mount.h | 8 +- fs/xfs/xfs_ondisk.h | 4 + fs/xfs/xfs_rtalloc.c | 618 ++++++++++++++++--------------- fs/xfs/xfs_rtalloc.h | 94 +---- fs/xfs/xfs_super.c | 3 +- fs/xfs/xfs_trans.c | 7 +- 27 files changed, 1321 insertions(+), 914 deletions(-) create mode 100644 fs/xfs/libxfs/xfs_rtbitmap.h