TCQ with zorro_esp, was Re: m68k v3.16 status update

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

 



On Fri, 15 Dec 2017, Vainikka Tuomas wrote:

Hello,

Just bear in mind that there was no need for the PIO transfers when the 
TCQ was hacked off. Commands over DMA worked fine then at least on my 
Blizzard SCSI-IV...

Inhibiting TCQ also affects performance.

If you want to, you can measure the difference (compared to Michael's 
patch) by using a patch like the one below, with the option 
esp_scsi.esp_no_tcq=1.

The use of PIO for short transfers should cost nothing in the absence of 
TCQ because there should be no short tranfers.

-- 


-Tuomas


diff --git a/drivers/scsi/esp_scsi.c b/drivers/scsi/esp_scsi.c
index c3fc34b9964d..69c3de96b79c 100644
--- a/drivers/scsi/esp_scsi.c
+++ b/drivers/scsi/esp_scsi.c
@@ -37,6 +37,8 @@
 /* SCSI bus reset settle time in seconds.  */
 static int esp_bus_reset_settle = 3;
 
+static int esp_no_tcq = -1;
+
 static u32 esp_debug;
 #define ESP_DEBUG_INTR		0x00000001
 #define ESP_DEBUG_SCSICMD	0x00000002
@@ -698,7 +700,7 @@ static struct esp_cmd_entry *find_and_prep_issuable_command(struct esp *esp)
 			return ent;
 		}
 
-		if (!spi_populate_tag_msg(&ent->tag[0], cmd)) {
+		if (esp_no_tcq > 0 || !spi_populate_tag_msg(&ent->tag[0], cmd)) {
 			ent->tag[0] = 0;
 			ent->tag[1] = 0;
 		}
@@ -2476,7 +2478,7 @@ static int esp_slave_configure(struct scsi_device *dev)
 	struct esp *esp = shost_priv(dev->host);
 	struct esp_target_data *tp = &esp->target[dev->id];
 
-	if (dev->tagged_supported)
+	if (esp_no_tcq <= 0 && dev->tagged_supported)
 		scsi_change_queue_depth(dev, esp->num_tags);
 
 	tp->flags |= ESP_TGT_DISCONNECT;
@@ -2768,6 +2770,9 @@ MODULE_AUTHOR("David S. Miller (davem@xxxxxxxxxxxxx)");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 
+module_param(esp_no_tcq, int, 0);
+MODULE_PARM_DESC(esp_no_tcq, "Send no command tags");
+
 module_param(esp_bus_reset_settle, int, 0);
 MODULE_PARM_DESC(esp_bus_reset_settle,
 		 "ESP scsi bus reset delay in seconds");
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux