Re: [PATCH 2/2] sd_zbc: Disable zone locking with scsi-mq enabled

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

 



On Tue, 2017-08-01 at 18:39 +0900, Damien Le Moal wrote:
> diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c
> index 96855df9f49d..78fb51a37e86 100644
> --- a/drivers/scsi/sd_zbc.c
> +++ b/drivers/scsi/sd_zbc.c
> @@ -528,15 +528,20 @@ static int sd_zbc_check_zone_size(struct scsi_disk *sdkp)
>  
>  static int sd_zbc_setup(struct scsi_disk *sdkp)
>  {
> +	struct request_queue *q = sdkp->disk->queue;
>  
>  	/* chunk_sectors indicates the zone size */
> -	blk_queue_chunk_sectors(sdkp->disk->queue,
> +	blk_queue_chunk_sectors(q,
>  			logical_to_sectors(sdkp->device, sdkp->zone_blocks));
>  	sdkp->zone_shift = ilog2(sdkp->zone_blocks);
>  	sdkp->nr_zones = sdkp->capacity >> sdkp->zone_shift;
>  	if (sdkp->capacity & (sdkp->zone_blocks - 1))
>  		sdkp->nr_zones++;
>  
> +	/* Do not use zone locking in mq case */
> +	if (q->mq_ops)
> +		return 0;
> +
>  	if (!sdkp->zones_wlock) {
>  		sdkp->zones_wlock = kcalloc(BITS_TO_LONGS(sdkp->nr_zones),
>  					    sizeof(unsigned long),

Hello Damien,

Are you aware that the blk-sq / scsi-sq code will be removed once all block
drivers have been converted? Are you aware that we don't want any differences
in behavior like the above between the single queue and multiqueue paths? Can
you check whether the patch series Ming Lei posted earlier this week solves
the frequent requeueing? See also "[PATCH 00/14] blk-mq-sched: fix SCSI-MQ
performance regression" (http://marc.info/?l=linux-block&m=150151989915776).

Thanks,

Bart.




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux