Re: [PATCH 1/2] libata: switch to using block layer tagging support

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

 



Grant Grundler wrote:
On Wed, May 20, 2009 at 12:00 AM, Jens Axboe <jens.axboe@xxxxxxxxxx> wrote:
libata currently has a pretty dumb ATA_MAX_QUEUE loop for finding
a free tag to use. Instead of fixing that up, convert libata to
using block layer tagging - gets rid of code in libata, and is also
much faster.
...
@@ -1137,7 +1141,17 @@ static int ata_scsi_dev_config(struct scsi_device *sdev,

               depth = min(sdev->host->can_queue, ata_id_queue_depth(dev->id));
               depth = min(ATA_MAX_QUEUE - 1, depth);
-               scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
+
+               /*
+                * If this device is behind a port multiplier, we have
+                * to share the tag map between all devices on that PMP.
+                * Set up the shared tag map here and we get automatic.

Automatic what?

+                */
+               if (dev->link->ap->pmp_link)
+                       scsi_init_shared_tag_map(sdev->host, ATA_MAX_QUEUE - 1);
+
+               scsi_set_tag_type(sdev, MSG_SIMPLE_TAG);
+               scsi_activate_tcq(sdev, depth);

I just read Tejun's reply and it sounds right what he's saying.
But can SATA controllers handle NCQ and !NCQ devices on the same port?
Can the PMP handle it?

If both can, I don't understand how a mixed config works today.

A mixed config over PMP works today by setting the proper depth iff NCQ (== will not send too many cmds to device, if !NCQ) and using link-wide tag allocation (== will not send too many cmds to link).

	Jeff




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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux