On Fri, Mar 05, 2021 at 04:11:40PM +1100, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > - 21.92% __xfs_trans_commit > - 21.62% xfs_log_commit_cil > - 11.69% xfs_trans_unreserve_and_mod_sb > - 11.58% __percpu_counter_compare > - 11.45% __percpu_counter_sum > - 10.29% _raw_spin_lock_irqsave > - 10.28% do_raw_spin_lock > __pv_queued_spin_lock_slowpath > > We debated just getting rid of it last time this came up and > there was no real objection to removing it. Now it's the biggest > scalability limitation for debug kernels even on smallish machines, > so let's just get rid of it. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> ...unless you want a CONFIG_XFS_DEBUG_SLOW to hide these things behind? --D > --- > fs/xfs/xfs_trans.c | 11 ++--------- > 1 file changed, 2 insertions(+), 9 deletions(-) > > diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c > index b20e68279808..637d084c8aa8 100644 > --- a/fs/xfs/xfs_trans.c > +++ b/fs/xfs/xfs_trans.c > @@ -616,19 +616,12 @@ xfs_trans_unreserve_and_mod_sb( > ASSERT(!error); > } > > - if (idelta) { > + if (idelta) > percpu_counter_add_batch(&mp->m_icount, idelta, > XFS_ICOUNT_BATCH); > - if (idelta < 0) > - ASSERT(__percpu_counter_compare(&mp->m_icount, 0, > - XFS_ICOUNT_BATCH) >= 0); > - } > > - if (ifreedelta) { > + if (ifreedelta) > percpu_counter_add(&mp->m_ifree, ifreedelta); > - if (ifreedelta < 0) > - ASSERT(percpu_counter_compare(&mp->m_ifree, 0) >= 0); > - } > > if (rtxdelta == 0 && !(tp->t_flags & XFS_TRANS_SB_DIRTY)) > return; > -- > 2.28.0 >