Re: [PATCH] SATA NCQ support

From: Jens Axboe
Date: Fri May 27 2005 - 02:59:04 EST


On Fri, May 27 2005, Jens Axboe wrote:
> On Fri, May 27 2005, Jeff Garzik wrote:
> > Jens Axboe wrote:
> > >That is the typical case, ata_qc_new() succeeds but we cannot issue the
> > >command yet. So where do you want this logic placed? You cannot drop the
> > >host_lock in-between, as that could potentially change the situation.
> >
> > ata_scsi_translate() in libata-scsi.c, in between the call to
> > ata_scsi_qc_new() and ata_qc_issue().
> >
> > something like:
> >
> > if (ata_scsi_qc_new() fails ||
> > (depth > 0 && ata_check_non_ncq_cmd()))
> > complete SCSI command with 'queue full'
>
> That is an improvement for SCSI originated commands, I can drop
> ATA_QCFLAG_DEFER then. Will make that change. But what about
> ata_qc_issue() from other places? That is the ugly code, which will hit
> the waiting currently.

Actually, slight "problem" there as well... We need to translate the
SCSI command prior to making this decision, as we may get both NCQ and
non-NCQ commands from that path as well. For now I'll just make the
distinction that fs based SCSI requests are the only NCQ candidates, ok?

--
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/