[PATCH 59/60] xfs: Add xfs_log_rlimit.c

Mark Tinguely tinguely at sgi.com
Mon Jun 24 16:26:28 CDT 2013


On 06/18/13 23:51, Dave Chinner wrote:
> +	 * 2) If the lsunit option is specified, a transaction requires 2 LSU
> +	 *    for the reservation because there are two log writes that can
> +	 *    require padding - the transaction data and the commit record which
> +	 *    are written separately and both can require padding to the LSU.
> +	 *    Consider that we can have an active CIL reservation holding 2*LSU,
> +	 *    but the CIL is not over a push threshold, in this case, if we
> +	 *    don't have enough log space for at one new transaction, which
> +	 *    includes another 2*LSU in the reservation, we will run into dead
> +	 *    loop situation in log space grant procedure. i.e.
> +	 *    xlog_grant_head_wait().
> +	 *
> +	 *    Hence the log size needs to be able to contain two maximally sized
> +	 *    and padded transactions, which is (2 * (2 * LSU + maxlres)).
> +	 *

Any thoughts on how we can separate the 2 * log stripe unit from the 
reservation.

The added extended attribute calls for parent inode pointers (especially 
xfs_rename() where it could add up to one and remove up to two 
attributes) is causing a huge multiplication cnt for reservation. Those 
multiplications would be killers on 256KiB log stripe units.

--Mark.



More information about the xfs mailing list