mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-17 20:54:10 +00:00
xfs: __percpu_counter_compare() inode count debug too expensive
- 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@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
1fea323ff0
commit
5825bea052
1 changed files with 2 additions and 9 deletions
|
@ -618,19 +618,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;
|
||||
|
|
Loading…
Add table
Reference in a new issue