Re: [PATCH 42/45] xfs: __percpu_counter_compare() inode count debug too expensive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux