Re: [RFC PATCH v4 2/3] bcache: handle zone management bios for bcache device

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

 



On Tue, 2020-06-02 at 00:06 +0800, Coly Li wrote:
> > > +		 * cache device.
> > > +		 */
> > > +		if (bio_op(bio) == REQ_OP_ZONE_RESET_ALL)
> > > +			nr_zones = s->d->disk->queue->nr_zones;
> > 
> > Not: sending a REQ_OP_ZONE_RESET BIO to a conventional zone will be failed by
> > the disk... This is not allowed by the ZBC/ZAC specs. So invalidation the cache
> > for conventional zones is not really necessary. But as an initial support, I
> > think this is fine. This can be optimized later.
> > 
> Copied, will think of how to optimized later. So far in my testing,
> resetting conventional zones may receive error and timeout from
> underlying drivers and bcache code just forwards such error to upper
> layer. What I see is the reset command hangs for a quite long time and
> failed. I will find a way to make the zone reset command on conventional
> zone fail immediately.

It is 100% guaranteed that a zone reset issued to a conventional zone
will fail. That is defined in ZBC/ZAC specifications. Resetting a
single conventional zone is an error. We know the command will fail and
the failure is instantaneous from the drive. The scsi layer should not
retry these failed reset zone command, we have special error handling
code preventing retries since we know that the command can only fail
again. So I am not sure why you are seeing hang/long time before the
failure is signaled... This may need investigation.


-- 
Damien Le Moal
Western Digital Research




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux