Re: [PATCH] btrfs/237: Use zone cap instead of zone size in fill_size and rest calculation

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



Hi Naohiro,

On 2022-03-16 05:07, Naohiro Aota wrote:
>> +# blkzone supports printing zone cap only after version 2.37
>> +_blkzone_req_major_ver=2
>> +_blkzone_req_minor_ver=37
>> +blkzone_ver=$($BLKZONE_PROG --version | cut -d " " -f 4 | cut -d "-" -f 1)
>> +blkzone_ver=( ${blkzone_ver//./ } )
>> +blkzone_major_ver=${blkzone_ver[0]}
>> +blkzone_minor_ver=${blkzone_ver[1]}
>> +if [[ $blkzone_major_ver -ge $_blkzone_req_major_ver &&\
>> +	$blkzone_minor_ver -ge $_blkzone_req_minor_ver ]]; then
> 
> I'd like to have it as a helper.
> 
> Or, how about adding a filter and a wrapper function to add a "cap"
> filed whose value equal to the zone size for the old version (like
> with _getcap() and _filter_getcap())? Then, we can just call:
>   zonecap=$(_blkzone_report ... | grep -Po "cap ([0x\d]+)+" | cut -d ' ' -f 2)
>   size=$((zonecap << 9))
> 
That is a good idea. I will give it a shot. Thanks.

>> +	zonecap=$($BLKZONE_PROG report -c 1 $SCRATCH_DEV |\
>> +		grep -Po "cap ([0x\d]+)+" | cut -d ' ' -f 2)
> 
> But still, zone capacity can vary for each zone. So, we need to read
> the capacity of a zone where the data BG resides on.
> 
Do we support variable zone capacity in Linux? IIRC variable zone sizes
are definitely not supported but I am not sure about variable zone capacity.

But even if we do support, I see that the zone 5 (old_data_zone) and
zone 6 (new_data_zone) during the test and what if the new_data_zone
(zone 6) has a smaller cap than old_data_zone (zone 5)?
The main question: Is there a way to deterministically tell where the
data BG will reside and where it will relocate before we start the test
with variable capacity?

My first look indicates that adding variable zone capacity will make the
test a bit more complex and I am not sure if it is worth the effort if
there are no use cases for it.
Let me know your thoughts.

-- 
Regards,
Pankaj



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux