Re: [PATCH 3/4] zbd: finish zone when all random write target zones have small remainder
Damien Le Moal <[email protected]>
| Newsgroups | org.kernel.vger.fio |
|---|---|
| Organization | Western Digital Research |
| Message-ID | <[email protected]> |
On 4/11/25 8:12 PM, Shin'ichiro Kawasaki wrote: > When a random write target offset points to a zone that is not writable, > zbd_convert_to_write_zone() attempts to convert the write offset to a > different, writable zone. However, the conversion fails when all of the > following conditions are met: > > 1) the workload has the max_open_zones limit > 2) every write target zones, up to the max_open_zones limit, has > remainder sectors smaller than the block size > 3) the next random write request targets a zone not in the write target > zone list > > In this case, zbd_convert_to_write_zone() can not open another zone > without exceeding the max_open_zones constraint. Therefore, It does not > convert the write to a different zone printing with the debug message > "did not choose another write zone". This leads to an unexpected stop of > the random write workload. > > To prevent the unexpected write stop, finish one of the write target > zones with small remainder sectors. Check if all write target zones have > small remainder, and store the result in the new local boolean variable > all_write_zones_have_small_remainder. When this condition is true, > choose one of the write target zones and finish it. Then return the zone > from zbd_convert_to_write_zone() enabling the write process to continue. > > Signed-off-by: Shin'ichiro Kawasaki <[email protected]> Looks good to me. Reviewed-by: Damien Le Moal <[email protected]> -- Damien Le Moal Western Digital Research