[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1485793840.2712.1.camel@sandisk.com>
Date: Mon, 30 Jan 2017 16:30:59 +0000
From: Bart Van Assche <Bart.VanAssche@...disk.com>
To: "osandov@...ndov.com" <osandov@...ndov.com>,
"kashyap.desai@...adcom.com" <kashyap.desai@...adcom.com>,
"axboe@...nel.dk" <axboe@...nel.dk>
CC: "linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"hch@...radead.org" <hch@...radead.org>,
"linux-block@...r.kernel.org" <linux-block@...r.kernel.org>,
"paolo.valente@...aro.org" <paolo.valente@...aro.org>
Subject: Re: Device or HBA level QD throttling creates randomness in
sequetial workload
On Mon, 2017-01-30 at 19:22 +0530, Kashyap Desai wrote:
> - if (atomic_inc_return(&instance->fw_outstanding) >
> - instance->host->can_queue) {
> - atomic_dec(&instance->fw_outstanding);
> - return SCSI_MLQUEUE_HOST_BUSY;
> - }
> + if (atomic_inc_return(&instance->fw_outstanding) > safe_can_queue) {
> + is_nonrot = blk_queue_nonrot(scmd->device->request_queue);
> + /* For rotational device wait for sometime to get fusion command
> from pool.
> + * This is just to reduce proactive re-queue at mid layer which is
> not
> + * sending sorted IO in SCSI.MQ mode.
> + */
> + if (!is_nonrot)
> + udelay(100);
> + }
The SCSI core does not allow to sleep inside the queuecommand() callback
function.
Bart.
Powered by blists - more mailing lists