On Mon, Aug 02, 2021 at 10:55:32AM +1000, Dave Chinner wrote: > On Thu, Jul 29, 2021 at 11:45:10AM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > > > Split the inode inactivation work into per-AG work items so that we can > > take advantage of parallelization. > > > > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> > > --- > > fs/xfs/libxfs/xfs_ag.c | 12 ++++++- > > fs/xfs/libxfs/xfs_ag.h | 10 +++++ > > fs/xfs/xfs_icache.c | 88 ++++++++++++++++++++++++++++-------------------- > > fs/xfs/xfs_icache.h | 2 + > > fs/xfs/xfs_mount.c | 9 +---- > > fs/xfs/xfs_mount.h | 8 ---- > > fs/xfs/xfs_super.c | 2 - > > fs/xfs/xfs_trace.h | 82 ++++++++++++++++++++++++++++++++------------- > > 8 files changed, 134 insertions(+), 79 deletions(-) > > .... > > > --- a/fs/xfs/xfs_icache.c > > +++ b/fs/xfs/xfs_icache.c > > @@ -420,9 +420,11 @@ xfs_blockgc_queue( > > */ > > static void > > xfs_inodegc_queue( > > - struct xfs_mount *mp, > > + struct xfs_perag *pag, > > struct xfs_inode *ip) > > { > > + struct xfs_mount *mp = pag->pag_mount; > > + > > if (!test_bit(XFS_OPFLAG_INODEGC_RUNNING_BIT, &mp->m_opflags)) > > return; > > > > @@ -431,8 +433,8 @@ xfs_inodegc_queue( > > unsigned int delay; > > > > delay = xfs_gc_delay_ms(mp, ip, XFS_ICI_INODEGC_TAG); > > - trace_xfs_inodegc_queue(mp, delay); > > - queue_delayed_work(mp->m_gc_workqueue, &mp->m_inodegc_work, > > + trace_xfs_inodegc_queue(pag, delay); > > + queue_delayed_work(mp->m_gc_workqueue, &pag->pag_inodegc_work, > > msecs_to_jiffies(delay)); > > } > > rcu_read_unlock(); > > I think you missed this change in xfs_inodegc_queue(): > > @@ -492,7 +492,7 @@ xfs_inodegc_queue( > return; > > rcu_read_lock(); > - if (radix_tree_tagged(&mp->m_perag_tree, XFS_ICI_INODEGC_TAG)) { > + if (radix_tree_tagged(&pag->pag_ici_root, XFS_ICI_INODEGC_TAG)) { Yep, I've rebased this series so many times that merge conflict resolution mutations have crept in. Fixed; thank you. :( (And FWIW for v9 I moved this patch to be immediately after the patch that changes xfs to use the radix tree tags; this reduces the churn in struct xfs_mount somewhat.) --D > unsigned int delay; > > delay = xfs_gc_delay_ms(pag, ip, XFS_ICI_INODEGC_TAG); > > Cheers, > > Dave. > > -- > Dave Chinner > david@xxxxxxxxxxxxx