Re: [PATCH 03/13] zbd: print max_active_zones limit error message

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

 



On Jul 18, 2023 / 13:55, Niklas Cassel wrote:
> On Fri, Jul 07, 2023 at 12:14:55PM +0900, Shin'ichiro Kawasaki wrote:
> > When zoned block devices have max_active_zones limit and when write
> > operations exceed that limit, Linux block sub-system reports EOVERFLOW.
> > However, the strerror() string for EOVERFLOW does not mention about
> > max_active_zones then it confuses users.
> > 
> > To avoid the confusion, print additional error message to indicate the
> > max_active_zones limit. For this purpose, add a hook function
> > zbd_log_err() and call it from __io_u_log_error().
> > 
> > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
> > ---
> >  io_u.c |  2 ++
> >  zbd.c  | 12 ++++++++++++
> >  zbd.h  |  1 +
> >  3 files changed, 15 insertions(+)
> > 
> > diff --git a/io_u.c b/io_u.c
> > index 27b6c92a..07e5bac5 100644
> > --- a/io_u.c
> > +++ b/io_u.c
> > @@ -1879,6 +1879,8 @@ static void __io_u_log_error(struct thread_data *td, struct io_u *io_u)
> >  		io_ddir_name(io_u->ddir),
> >  		io_u->offset, io_u->xfer_buflen);
> >  
> > +	zbd_log_err(td, io_u);
> > +
> >  	if (td->io_ops->errdetails) {
> >  		char *err = td->io_ops->errdetails(io_u);
> >  
> > diff --git a/zbd.c b/zbd.c
> > index 3069ad1d..047489db 100644
> > --- a/zbd.c
> > +++ b/zbd.c
> > @@ -2222,3 +2222,15 @@ int zbd_do_io_u_trim(struct thread_data *td, struct io_u *io_u)
> >  
> >  	return io_u_completed;
> >  }
> > +
> > +void zbd_log_err(const struct thread_data *td, const struct io_u *io_u)
> > +{
> > +	const struct fio_file *f = io_u->file;
> > +
> > +	if (td->o.zone_mode != ZONE_MODE_ZBD)
> > +		return;
> > +
> > +	if (io_u->error == EOVERFLOW && f->zbd_info->max_active_zones)
> 
> Can't this simply be:
> if (io_u->error == EOVERFLOW)
> 
> Since I assume that each BLK_STS_* in the block layer has to map to a unique
> error code, so if we get a EOVERFLOW, it has to be because of a
> BLK_STS_ZONE_ACTIVE_RESOURCE?

Right, the check with f->zbd_info->max_active_zones would be too much. I will
drop that part in v2.



[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