On 08/30/18 21:46, Damien Le Moal wrote: > With zonemode=zbd, for random read operations with read_beyond_wp=0, > the zbd code will always adjust an I/O offset so that the I/O hits a > non empty zone. However, the adjustment always sets the I/O offset to > the start of the zone, resulting in a high device read cache hit rate > if the device has few zones written. > > Improve randomness of read I/Os by adjusting the I/O offset to a random > value within the range of written data of the chosen zone. Also ensure > that the modified I/O does not cross over the zone wp position by > adjusting its size. Doing so, the search for a new zone is now done only > if the target zone cannot accomodate an I/O of at least min_bs bytes. > > The comments have also been changed to better explain the code. Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>