public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* RE: PATCH [3/5]  qla2xxx: TCQ fixes
@ 2004-07-13 17:24 Andrew Vasquez
  2004-07-13 17:43 ` James Bottomley
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Vasquez @ 2004-07-13 17:24 UTC (permalink / raw)
  To: James Bottomley; +Cc: Linux-SCSI Mailing List

On Monday, July 12, 2004 2:41 PM, James Bottomley wrote:
> 
> For the way the qla2xxx works, the correct tag usage would be to use
> per HBA tags (which were introduced for aic7xxx but never used by
> them, so I haven't actually created the mid-layer API), to populate
> your queue handle field with the tag and to dispense with your
> outstanding_cmnds[] array
>

Ok, I'll bite.  What did you have in mind? I've taken a quick peek
through the scsi code, the per-hba tag stuff must still be in your
head...

> and use scsi_find_tag() to get back the command from the handle. 
> 

Just a small comment, isn't the scsi_populate_tag_msg() function
quietly truncating the request->tag value?

Regards,
Andrew Vasquez

^ permalink raw reply	[flat|nested] 8+ messages in thread
* PATCH [3/5]  qla2xxx: TCQ fixes
@ 2004-07-12 14:05 Andrew Vasquez
  2004-07-12 21:41 ` James Bottomley
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Vasquez @ 2004-07-12 14:05 UTC (permalink / raw)
  To: James Bottomley, Linux-SCSI Mailing List

ChangeSet
  1.1867 04/07/12 09:38:28 andrew.vasquez@apc.qlogic.com +2 -0
  Correct usage of tag-command-queueing methods:
  
  o Properly call scsi_activate_tcq() rather than
    scsi_adjust_queue_depth().
  o Properly retrieve tag message from command via
    scsi_populate_tag_msg().

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>

 drivers/scsi/qla2xxx/qla_iocb.c |   16 +++++++++++-----
 drivers/scsi/qla2xxx/qla_os.c   |    2 +-
 2 files changed, 12 insertions(+), 6 deletions(-)

diff -Nru a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
--- a/drivers/scsi/qla2xxx/qla_iocb.c	2004-07-12 09:54:49 -07:00
+++ b/drivers/scsi/qla2xxx/qla_iocb.c	2004-07-12 09:54:49 -07:00
@@ -22,6 +22,8 @@
 #include <linux/blkdev.h>
 #include <linux/delay.h>
 
+#include <scsi/scsi_tcq.h>
+
 static inline uint16_t qla2x00_get_cmd_direction(struct scsi_cmnd *cmd);
 static inline cont_entry_t *qla2x00_prep_cont_type0_iocb(scsi_qla_host_t *);
 static inline cont_a64_entry_t *qla2x00_prep_cont_type1_iocb(scsi_qla_host_t *);
@@ -337,6 +339,7 @@
 	uint16_t	req_cnt;
 	uint16_t	tot_dsds;
 	device_reg_t	*reg;
+	char		tag[2];
 
 	/* Setup device pointers. */
 	ret = 0;
@@ -415,14 +418,17 @@
 	cmd_pkt->lun = cpu_to_le16(fclun->lun);
 
 	/* Update tagged queuing modifier */
-	cmd_pkt->control_flags = __constant_cpu_to_le16(CF_SIMPLE_TAG);
-	if (cmd->device->tagged_supported) {
-		switch (cmd->tag) {
-		case HEAD_OF_QUEUE_TAG:
+	if (scsi_populate_tag_msg(cmd, tag)) {
+		switch (tag[0]) {
+		case MSG_SIMPLE_TAG:
+			cmd_pkt->control_flags =
+			    __constant_cpu_to_le16(CF_SIMPLE_TAG);
+			break;
+		case MSG_HEAD_TAG:
 			cmd_pkt->control_flags =
 			    __constant_cpu_to_le16(CF_HEAD_TAG);
 			break;
-		case ORDERED_QUEUE_TAG:
+		case MSG_ORDERED_TAG:
 			cmd_pkt->control_flags =
 			    __constant_cpu_to_le16(CF_ORDERED_TAG);
 			break;
diff -Nru a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
--- a/drivers/scsi/qla2xxx/qla_os.c	2004-07-12 09:54:49 -07:00
+++ b/drivers/scsi/qla2xxx/qla_os.c	2004-07-12 09:54:49 -07:00
@@ -1784,7 +1784,7 @@
 
 		ql2xmaxqdepth = queue_depth;
 
-		scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, queue_depth);
+		scsi_activate_tcq(sdev, queue_depth);
 
 		qla_printk(KERN_INFO, ha,
 		    "scsi(%d:%d:%d:%d): Enabled tagged queuing, queue "

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-07-13 17:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-13 17:24 PATCH [3/5] qla2xxx: TCQ fixes Andrew Vasquez
2004-07-13 17:43 ` James Bottomley
  -- strict thread matches above, loose matches on Subject: below --
2004-07-12 14:05 Andrew Vasquez
2004-07-12 21:41 ` James Bottomley
2004-07-13  0:19   ` Mike Christie
2004-07-13  2:28     ` Brian King
2004-07-13 14:29       ` James Bottomley
2004-07-13 14:27     ` James Bottomley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox