[PATCH 46/55] xfs: Add xfs_log_rlimit.c

Mark Tinguely tinguely at sgi.com
Fri Feb 21 15:46:22 CST 2014


On 02/21/14 14:56, Eric Sandeen wrote:
> On 2/21/14, 2:40 PM, Mark Tinguely wrote:
>> On 02/21/14 13:47, Eric Sandeen wrote:
>>> On 10/7/13, 8:48 AM, Mark Tinguely wrote:
>>>> On 10/06/13 20:46, Eric Sandeen wrote:
>>>>> On 10/6/13 12:56 PM, Eric Sandeen wrote:
>>>>>> On 9/4/13 5:05 PM, Dave Chinner wrote:
>>>>>>>> From: Jie Liu<jeff.liu at oracle.com>
>>>>>>>>
>>>>>>>> Add source files for xfs_log_rlimit.c The new file is used for log
>>>>>>>> size calculations and validation shared with userspace.
>>>>>>>>
>>>>>>>> [dchinner: xfs_log_calc_max_attrsetm_res() does not modify the
>>>>>>>> tr_attrsetm reservation, just calculates the maximum. ]
>>>>>>>>
>>>>>>>> [dchinner: rework loop in xfs_log_get_max_trans_res() ]
>>>>>>>>
>>>>>>>> [dchinner: implement xfs_log_calc_unit_res() in util.c to give mkfs
>>>>>>>> a worse case calculation of the log size needed. ]
>>>>>> 2 things:
>>>>>>
>>>>>> Ben, seems like your workflow lost the:
>>>>>>
>>>>>> From: Jie Liu<jeff.liu at oracle.com>
>>>>>>
>>>>>> at the top - in git, the author is listed as Dave in git.
>>>>>>
>>>>>> (Although those [parentheticals] were pretty fundamental changes,
>>>>>> something I just gave Rich a hard time for)  ;)
>>>>>>
>>>>>> Also, this now breaks xfstest xfs/216 as a result of the mkfs changes.
>>>>>> What are the plans for that?
>>>>>
>>>>> Sorry, to be clear, it breaks that test (and others, pretty sure)
>>>>> because the log sizes for small filesystems are significantly bigger:
>>>>>
>>>>> -fssize=1g log      =internal log           bsize=4096   blocks=2560, version=2
>>>>> +fssize=1g log      =internal log           bsize=4096   blocks=12800, version=2
>>>>>
>>>>> -fssize=2g log      =internal log           bsize=4096   blocks=2560, version=2
>>>>> +fssize=2g log      =internal log           bsize=4096   blocks=12800, version=2
>>>>>
>>>>> -fssize=4g log      =internal log           bsize=4096   blocks=2560, version=2
>>>>> +fssize=4g log      =internal log           bsize=4096   blocks=12800, version=2
>>>>>
>>>>> -fssize=8g log      =internal log           bsize=4096   blocks=2560, version=2
>>>>> +fssize=8g log      =internal log           bsize=4096   blocks=12800, version=2
>>>>>
>>>>> -fssize=16g log      =internal log           bsize=4096   blocks=2560, version=2
>>>>> +fssize=16g log      =internal log           bsize=4096   blocks=12800, version=2
>>>>>
>>>>> -fssize=32g log      =internal log           bsize=4096   blocks=4096, version=2
>>>>> +fssize=32g log      =internal log           bsize=4096   blocks=12800, version=2
>>>>>
>>>>> -fssize=64g log      =internal log           bsize=4096   blocks=8192, version=2
>>>>> +fssize=64g log      =internal log           bsize=4096   blocks=12800, version=2
>>>>>
>>>>>     fssize=128g log      =internal log           bsize=4096   blocks=16384, version=2
>>>>>     fssize=256g log      =internal log           bsize=4096   blocks=32768, version=2
>>>>>
>>>>> -Eric
>>>>
>>>>
>>>> Separate outputs for different versions of the OS version like we do for 16/32 bit tests' output?
>>>
>>> I'm not sure what we'd switch on....
>>
>> I was thinking of the output of uname(1). Probably easier to filter the results in the test on the OS version rather than have separate golden outputs.
>
> The behavior depends on the xfsprogs version, though, not the kernel version.
>
> I .... guess we could do mkfs.xfs -V and split on that.
>
> I do want to make sure it's all intentional though, first.
>
> -Eric

Sorry, I was thinking of the same change that went into the kernel.
The min log size should be at least 3 time the max transaction size.
That accounts for the bigger entries.

I would be happy to use the new calculations as the correct output since 
the new calculations are the right thing to do. Goes back to how long 
should xfstests support older kernels, xfsprogs, etc.

--Mark.



More information about the xfs mailing list