Re: [ANNOUNCE] xfs-linux: for-next **REBASED** to 2909e02fec6c

Dave Chinner
2021-06-21T02:52:42Z

On Sat, Jun 19, 2021 at 01:48:25PM -0700, Darrick J. Wong wrote:
> Dave Chinner (43):
> [0a683794ace2] xfs: split up xfs_buf_allocate_memory
> [07b5c5add42a] xfs: use xfs_buf_alloc_pages for uncached buffers
> [c9fa563072e1] xfs: use alloc_pages_bulk_array() for buffers
> [02c511738688] xfs: merge _xfs_buf_get_pages()
> [e7d236a6fe51] xfs: move page freeing into _xfs_buf_free_pages()
> [9bbafc71919a] xfs: move xfs_perag_get/put to xfs_ag.[ch]
> [61aa005a5bd7] xfs: prepare for moving perag definitions and support to libxfs
> [07b6403a6873] xfs: move perag structure and setup to libxfs/xfs_ag.[ch]
> [f250eedcf762] xfs: make for_each_perag... a first class citizen
> [934933c3eec9] xfs: convert raw ag walks to use for_each_perag
> [6f4118fc6482] xfs: convert xfs_iwalk to use perag references
> [7f8d3b3ca6fe] xfs: convert secondary superblock walk to use perags
> [45d066211756] xfs: pass perags through to the busy extent code
> [30933120ad79] xfs: push perags through the ag reservation callouts
> [58d43a7e3263] xfs: pass perags around in fsmap data dev functions
> [be9fb17d88f0] xfs: add a perag to the btree cursor
> [fa9c3c197329] xfs: convert rmap btree cursor to using a perag
> [a81a06211fb4] xfs: convert refcount btree cursor to use perags
> [289d38d22cd8] xfs: convert allocbt cursors to use perags
> [7b13c5155182] xfs: use perag for ialloc btree cursors
> [50f02fe3338d] xfs: remove agno from btree cursor
> [4268547305c9] xfs: simplify xfs_dialloc_select_ag() return values
> [89b1f55a2951] xfs: collapse AG selection for inode allocation
> [b652afd93703] xfs: get rid of xfs_dir_ialloc()
> [309161f6603c] xfs: inode allocation can use a single perag instance
> [8237fbf53d6f] xfs: clean up and simplify xfs_dialloc()
> [f40aadb2bb64] xfs: use perag through unlink processing
> [509201163fca] xfs: remove xfs_perag_t
> [977ec4ddf0b7] xfs: don't take a spinlock unconditionally in the DIO fastpath
> [289ae7b48c2c] xfs: get rid of xb_to_gfp()
> [8bcac7448a94] xfs: merge xfs_buf_allocate_memory
> [9ba0889e2272] xfs: drop the AGI being passed to xfs_check_agi_freecount
> [90e2c1c20ac6] xfs: perag may be null in xfs_imap()
> [a6a65fef5ef8] xfs: log stripe roundoff is a property of the log
> [25f25648e57c] xfs: separate CIL commit record IO

Ugh. I'm still getting hangs on the wait added by this code:

+ /*
+ * If the checkpoint spans multiple iclogs, wait for all previous
+ * iclogs to complete before we submit the commit_iclog.
+ */
+ if (ctx->start_lsn != commit_lsn) {
+ spin_lock(&log->l_icloglock);
+ xlog_wait_on_iclog(commit_iclog->ic_prev);
+ }
+

That's the hang the first two patches of my fixup series addressed.
I note that:

> [9b845604a4d5] xfs: remove xfs_blkdev_issue_flush
> [e45cc747a6fd] xfs: async blkdev cache flush
> [d7693a7f4ef9] xfs: CIL checkpoint flushes caches unconditionally
> [6a5c6f5ef0a4] xfs: remove need_start_rec parameter from xlog_write()
> [feb616896031] xfs: journal IO cache flush reductions
> [e30fbb337045] xfs: Fix CIL throttle hang when CIL space used going backwards
> [742140d2a486] xfs: xfs_log_force_lsn isn't passed a LSN
> [0f4976a8b389] xfs: add iclog state trace events

You included the trace events patch, but not the patch containing
the bug fix for commit_iclog->ic_prev pointing to a future iclog
instead of a past iclog....

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com