Linux kernel 5.9 zone descriptor interface added the new zone capacity field defining the range of sectors usable within a zone. The blkzone tool recently supported the zone capacity in its report zone feature. Modify the helper function _get_blkzone_report() to support the zone capacity field. Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> --- tests/zbd/rc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tests/zbd/rc b/tests/zbd/rc index 3124693..dafd130 100644 --- a/tests/zbd/rc +++ b/tests/zbd/rc @@ -104,6 +104,7 @@ _put_sysfs_variable() { # until put function call. _get_blkzone_report() { local target_dev=${1} + local cap_idx wptr_idx conds_idx type_idx # Initialize arrays to store parsed blkzone reports. # Number of reported zones is set in REPORTED_COUNT. @@ -111,6 +112,7 @@ _get_blkzone_report() { # to simplify loop operation. ZONE_STARTS=() ZONE_LENGTHS=() + ZONE_CAPS=() ZONE_WPTRS=() ZONE_CONDS=() ZONE_TYPES=() @@ -123,6 +125,17 @@ _get_blkzone_report() { return $? fi + cap_idx=3 + wptr_idx=5 + conds_idx=11 + type_idx=13 + if grep -qe "cap 0x" "${TMP_REPORT_FILE}"; then + cap_idx=5 + wptr_idx=7 + conds_idx=13 + type_idx=15 + fi + local _IFS=$IFS local -i loop=0 IFS=$' ,:' @@ -130,9 +143,10 @@ _get_blkzone_report() { do ZONE_STARTS+=($((_tokens[1]))) ZONE_LENGTHS+=($((_tokens[3]))) - ZONE_WPTRS+=($((_tokens[5]))) - ZONE_CONDS+=($((${_tokens[11]%\(*}))) - ZONE_TYPES+=($((${_tokens[13]%\(*}))) + ZONE_CAPS+=($((_tokens[cap_idx]))) + ZONE_WPTRS+=($((_tokens[wptr_idx]))) + ZONE_CONDS+=($((${_tokens[conds_idx]%\(*}))) + ZONE_TYPES+=($((${_tokens[type_idx]%\(*}))) if [[ ${ZONE_TYPES[-1]} -eq ${ZONE_TYPE_CONVENTIONAL} ]]; then (( NR_CONV_ZONES++ )) fi @@ -150,6 +164,7 @@ _get_blkzone_report() { local -i max_idx=$((REPORTED_COUNT - 1)) ZONE_STARTS+=( $((ZONE_STARTS[max_idx] + ZONE_LENGTHS[max_idx])) ) ZONE_LENGTHS+=( "${ZONE_LENGTHS[max_idx]}" ) + ZONE_CAPS+=( "${ZONE_CAPS[max_idx]}" ) ZONE_WPTRS+=( "${ZONE_WPTRS[max_idx]}" ) ZONE_CONDS+=( "${ZONE_CONDS[max_idx]}" ) ZONE_TYPES+=( "${ZONE_TYPES[max_idx]}" ) @@ -160,6 +175,7 @@ _get_blkzone_report() { _put_blkzone_report() { unset ZONE_STARTS unset ZONE_LENGTHS + unset ZONE_CAPS unset ZONE_WPTRS unset ZONE_CONDS unset ZONE_TYPES -- 2.26.2