Re: [PATCH] block: add support for shared tag maps

Doug Maxey
2006-09-01T19:04:53Z

Ravi,

While working on a patch to add shared tags to qla4xxx was looking at
the shost->can_queue settings, I see the value is set pretty high:

qla4xxx_probe()
...
host->can_queue = REQUEST_QUEUE_DEPTH + 128;

where REQUEST_QUEUE_DEPTH works out to be 1024.

My question:
what is the relationship between the can_queue and the
setting in
qla4xxx_slave_configure()
if (sdev->tagged_supported)
scsi_activate_tcq(sdev, 32);
else
scsi_deactivate_tcq(sdev, 32);

Does this imply that the firmware can ultimately track more requests
than we can possibly stuff in it? Where do the other 1012 requests get
queued, in the block layer?

James' shared tag patch for stex has the following
+stex_slave_alloc(struct scsi_device *sdev)
+{
+ /* Cheat: usually extracted from Inquiry data */
+ sdev->tagged_supported = 1;
+
+ scsi_activate_tcq(sdev, sdev->host->can_queue);

where in this case the can_queue is set to ST_CAN_QUEUE, which works
out to 32.

Is my concern misplaced?