Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

From: Jens Axboe
Date: Mon Jul 29 2013 - 10:09:21 EST


On 07/29/2013 05:18 AM, Alexander Gordeev wrote:
>> -static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap)
>> +static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap,
>> + struct scsi_cmnd *sc)
>> {
>> struct ata_queued_cmd *qc = NULL;
>> - unsigned int i;
>> + struct request *rq = sc->request;
>>
>> /* no command while frozen */
>> if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
>> return NULL;
>>
>> - /* the last tag is reserved for internal command. */
>> - for (i = 0; i < ATA_MAX_QUEUE - 1; i++)
>
> blk-mq does not prevent tag ATA_TAG_INTERNAL from being using. Would it make
> sense to promote queue depth of length (ATA_MAX_QUEUE - 1) while always
> pointing ATA_TAG_INTERNAL to qcmd (see below)?

blk-mq does support a number of reserved tags, information just needs to
be passed in appropriately. So there is support for reserving X number
of error handling / emergency tags.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/