Re: [PATCH v2 03/13] zbd: add zbd_zone_remainder() helper function

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

 



On Thu, 2022-10-27 at 15:01 +0900, Shin'ichiro Kawasaki wrote:
> Add the helper function zbd_zone_remainder(), which returns bytes can be
> written to the zone. Use this function to improve readability. It will
> 

Nit: the "bytes can be written to the zone" part could be phrased a bit better by
saying "the number of bytes that are still available for writing before the zone
gets full" instead.


> also be used in the following patch.
> 
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
> ---
>  zbd.c | 21 ++++++++++++++++-----
>  1 file changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/zbd.c b/zbd.c
> index 627fb968..3e9c66d9 100644
> --- a/zbd.c
> +++ b/zbd.c
> @@ -70,6 +70,18 @@ static inline uint64_t zbd_zone_capacity_end(const struct
> fio_zone_info *z)
>         return z->start + z->capacity;
>  }
>  
> +/**
> + * zbd_zone_remainder - Return bytes can be written to the zone.
> + * @z: zone info pointer.
> + */
> +static inline uint64_t zbd_zone_remainder(struct fio_zone_info *z)
> +{
> +       if (z->wp >= zbd_zone_capacity_end(z))
> +               return 0;
> +
> +       return zbd_zone_capacity_end(z) - z->wp;
> +}
> +
>  /**
>   * zbd_zone_full - verify whether a minimum number of bytes remain in a zone
>   * @f: file pointer.
> @@ -83,8 +95,7 @@ static bool zbd_zone_full(const struct fio_file *f, struct
> fio_zone_info *z,
>  {
>         assert((required & 511) == 0);
>  
> -       return z->has_wp &&
> -               z->wp + required > zbd_zone_capacity_end(z);
> +       return z->has_wp && required > zbd_zone_remainder(z);
>  }
>  
>  static void zone_lock(struct thread_data *td, const struct fio_file *f,
> @@ -440,7 +451,7 @@ static bool zbd_open_zone(struct thread_data *td, const
> struct fio_file *f,
>                  * already in-flight, handle it as a full zone instead of an
>                  * open zone.
>                  */
> -               if (z->wp >= zbd_zone_capacity_end(z))
> +               if (!zbd_zone_remainder(z))
>                         res = false;
>                 goto out;
>         }
> @@ -1368,7 +1379,7 @@ found_candidate_zone:
>         /* Both z->mutex and zbdi->mutex are held. */
>  
>  examine_zone:
> -       if (z->wp + min_bs <= zbd_zone_capacity_end(z)) {
> +       if (zbd_zone_remainder(z) >= min_bs) {
>                 pthread_mutex_unlock(&zbdi->mutex);
>                 goto out;
>         }
> @@ -1433,7 +1444,7 @@ retry:
>                 z = zbd_get_zone(f, zone_idx);
>  
>                 zone_lock(td, f, z);
> -               if (z->wp + min_bs <= zbd_zone_capacity_end(z))
> +               if (zbd_zone_remainder(z) >= min_bs)
>                         goto out;
>                 pthread_mutex_lock(&zbdi->mutex);
>         }





[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux