On Mon, May 18, 2015 at 02:33:06PM +0800, Wang Sheng-Hui wrote:
> Hi guys,
> In maxtrres.c/max_trans_res, it calls xfs_log_calc_minimum_size to compute the
> maximum transaction reservation
> But for xfs_log_calc_minimum_size, it's used to calculate the
> minimum valid log size
> The naming max/minimum seems confusing.
> Why are they named in such way? What's the relationship between max trans res
> and minimun log size, (max trans res) <= (minimun log size)?
> Any explanations are welcomed!
>From the comment in xfs_log_calc_minimum_size():
* Two factors should be taken into account for calculating the minimum
* log space.
* 1) The fundamental limitation is that no single transaction can be
* larger than half size of the log.
* From mkfs.xfs, this is considered by the XFS_MIN_LOG_FACTOR
* define, which is set to 3. That means we can definitely fit
* maximally sized 2 transactions in the log. We'll use this same
* value here.
So the log must be at least the size of two single transactions (it
looks like the code is conservative and uses a factor of 3). This is a
limitation on the minimum allowable log size for the fs. Transactions
are of variable size, so to determine what that means in terms of actual
size we must calculate the maximum possible (i.e., worst case)
transaction size for the particular fs geometry and then use that to
calculate the minimum total log size.
> xfs mailing list