On Sun, Jun 20, 2021 at 09:27:31PM -0700, Darrick J. Wong wrote: > On Mon, Jun 21, 2021 at 12:52:17PM +1000, Dave Chinner wrote: > > 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.... > > Doh, I didn't think the trace patch was all that controversial. :( The trace patch isn't controversial, just pointing out something I didn't expect. I thought it was a straight revert and the rest of the work would come when it's all sorted... > So, uh, since we got a week extension, which patches do I need to get > things ship-shape for 5.14? Not sure yet - I still don't have a clear handle on why shutdown is hanging in xlog_wait_on_iclog() - it hung with the LSN fixup in place so there's another shutdown action here that I haven't grokked yet. I'll let you know when I've got to the bottom of it. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx