Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64d513ac authored by Christoph Hellwig's avatar Christoph Hellwig Committed by James Bottomley
Browse files

scsi: use host wide tags by default



This patch changes the !blk-mq path to the same defaults as the blk-mq
I/O path by always enabling block tagging, and always using host wide
tags.  We've had blk-mq available for a few releases so bugs with
this mode should have been ironed out, and this ensures we get better
coverage of over tagging setup over different configs.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarJens Axboe <axboe@kernel.dk>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
parent 720ba808
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -3689,9 +3689,6 @@ int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht)
		 */
		shost->max_host_blocked = 1;

		if (scsi_init_shared_tag_map(shost, host->n_tags))
			goto err_add;

		rc = scsi_add_host_with_dma(ap->scsi_host,
						&ap->tdev, ap->host->dev);
		if (rc)
+0 −5
Original line number Diff line number Diff line
@@ -2750,7 +2750,6 @@ static struct scsi_host_template srp_template = {
	.cmd_per_lun			= SRP_DEFAULT_CMD_SQ_SIZE,
	.use_clustering			= ENABLE_CLUSTERING,
	.shost_attrs			= srp_host_attrs,
	.use_blk_tags			= 1,
	.track_queue_depth		= 1,
};

@@ -3181,10 +3180,6 @@ static ssize_t srp_create_target(struct device *dev,
	if (ret)
		goto out;

	ret = scsi_init_shared_tag_map(target_host, target_host->can_queue);
	if (ret)
		goto out;

	target->req_ring_size = target->queue_size - SRP_TSK_MGMT_SQ_SIZE;

	if (!srp_conn_unique(target->srp_host, target)) {
+0 −1
Original line number Diff line number Diff line
@@ -1994,7 +1994,6 @@ static struct scsi_host_template mptsas_driver_template = {
	.cmd_per_lun			= 7,
	.use_clustering			= ENABLE_CLUSTERING,
	.shost_attrs			= mptscsih_host_attrs,
	.use_blk_tags			= 1,
};

static int mptsas_get_linkerrors(struct sas_phy *phy)
+7 −4
Original line number Diff line number Diff line
@@ -325,7 +325,6 @@ NCR_700_detect(struct scsi_host_template *tpnt,
	tpnt->slave_destroy = NCR_700_slave_destroy;
	tpnt->slave_alloc = NCR_700_slave_alloc;
	tpnt->change_queue_depth = NCR_700_change_queue_depth;
	tpnt->use_blk_tags = 1;

	if(tpnt->name == NULL)
		tpnt->name = "53c700";
@@ -1107,7 +1106,9 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
			BUG();
		}
		if(hostdata->msgin[1] == A_SIMPLE_TAG_MSG) {
			struct scsi_cmnd *SCp = scsi_find_tag(SDp, hostdata->msgin[2]);
			struct scsi_cmnd *SCp;

			SCp = scsi_host_find_tag(SDp->host, hostdata->msgin[2]);
			if(unlikely(SCp == NULL)) {
				printk(KERN_ERR "scsi%d: (%d:%d) no saved request for tag %d\n", 
				       host->host_no, reselection_id, lun, hostdata->msgin[2]);
@@ -1119,7 +1120,9 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
				"reselection is tag %d, slot %p(%d)\n",
				hostdata->msgin[2], slot, slot->tag);
		} else {
			struct scsi_cmnd *SCp = scsi_find_tag(SDp, SCSI_NO_TAG);
			struct scsi_cmnd *SCp;

			SCp = scsi_host_find_tag(SDp->host, SCSI_NO_TAG);
			if(unlikely(SCp == NULL)) {
				sdev_printk(KERN_ERR, SDp,
					"no saved request for untagged cmd\n");
@@ -1823,7 +1826,7 @@ NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *)
		       slot->tag, slot);
	} else {
		slot->tag = SCSI_NO_TAG;
		/* must populate current_cmnd for scsi_find_tag to work */
		/* must populate current_cmnd for scsi_host_find_tag to work */
		SCp->device->current_cmnd = SCp;
	}
	/* sanity check: some of the commands generated by the mid-layer
+0 −6
Original line number Diff line number Diff line
@@ -10819,7 +10819,6 @@ static struct scsi_host_template advansys_template = {
	 * by enabling clustering, I/O throughput increases as well.
	 */
	.use_clustering = ENABLE_CLUSTERING,
	.use_blk_tags = 1,
};

static int advansys_wide_init_chip(struct Scsi_Host *shost)
@@ -11211,11 +11210,6 @@ static int advansys_board_found(struct Scsi_Host *shost, unsigned int iop,
		/* Set maximum number of queues the adapter can handle. */
		shost->can_queue = adv_dvc_varp->max_host_qng;
	}
	ret = scsi_init_shared_tag_map(shost, shost->can_queue);
	if (ret) {
		shost_printk(KERN_ERR, shost, "init tag map failed\n");
		goto err_free_dma;
	}

	/*
	 * Set the maximum number of scatter-gather elements the
Loading