1
0
Fork 0

scsi: remove ordered_tags scsi_device field

Remove the ordered_tags field, we haven't been issuing ordered tags based
on it since the big barrier rework in 2010.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
wifi-calibration
Christoph Hellwig 2014-10-30 11:54:58 +01:00
parent 125c99bc8b
commit 609aa22f3b
11 changed files with 25 additions and 81 deletions

View File

@ -2400,9 +2400,8 @@ mptscsih_slave_configure(struct scsi_device *sdev)
mptscsih_change_queue_depth(sdev, MPT_SCSI_CMD_PER_DEV_HIGH, mptscsih_change_queue_depth(sdev, MPT_SCSI_CMD_PER_DEV_HIGH,
SCSI_QDEPTH_DEFAULT); SCSI_QDEPTH_DEFAULT);
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
"tagged %d, simple %d, ordered %d\n", "tagged %d, simple %d\n",
ioc->name,sdev->tagged_supported, sdev->simple_tags, ioc->name,sdev->tagged_supported, sdev->simple_tags));
sdev->ordered_tags));
blk_queue_dma_alignment (sdev->request_queue, 512 - 1); blk_queue_dma_alignment (sdev->request_queue, 512 - 1);

View File

@ -868,14 +868,9 @@ bfad_ramp_up_qdepth(struct bfad_itnim_s *itnim, struct scsi_device *sdev)
if (bfa_lun_queue_depth > tmp_sdev->queue_depth) { if (bfa_lun_queue_depth > tmp_sdev->queue_depth) {
if (tmp_sdev->id != sdev->id) if (tmp_sdev->id != sdev->id)
continue; continue;
if (tmp_sdev->ordered_tags) scsi_adjust_queue_depth(tmp_sdev,
scsi_adjust_queue_depth(tmp_sdev, MSG_SIMPLE_TAG,
MSG_ORDERED_TAG, tmp_sdev->queue_depth + 1);
tmp_sdev->queue_depth + 1);
else
scsi_adjust_queue_depth(tmp_sdev,
MSG_SIMPLE_TAG,
tmp_sdev->queue_depth + 1);
itnim->last_ramp_up_time = jiffies; itnim->last_ramp_up_time = jiffies;
} }

View File

@ -1246,9 +1246,9 @@ _scsih_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
if (sdev->inquiry_len > 7) if (sdev->inquiry_len > 7)
sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), " sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), "
"simple(%d), ordered(%d), scsi_level(%d), cmd_que(%d)\n", "simple(%d), scsi_level(%d), cmd_que(%d)\n",
sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags, sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags,
sdev->ordered_tags, sdev->scsi_level, sdev->scsi_level,
(sdev->inquiry[7] & 2) >> 1); (sdev->inquiry[7] & 2) >> 1);
return sdev->queue_depth; return sdev->queue_depth;
@ -3944,16 +3944,8 @@ _scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER; mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER;
/* set tags */ /* set tags */
if (!(sas_device_priv_data->flags & MPT_DEVICE_FLAGS_INIT)) { mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
if (scmd->device->tagged_supported) {
if (scmd->device->ordered_tags)
mpi_control |= MPI2_SCSIIO_CONTROL_ORDEREDQ;
else
mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
} else
mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
} else
mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
/* Make sure Device is not raid volume. /* Make sure Device is not raid volume.
* We do not expose raid functionality to upper layer for warpdrive. * We do not expose raid functionality to upper layer for warpdrive.
*/ */

View File

@ -1114,9 +1114,9 @@ _scsih_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason)
if (sdev->inquiry_len > 7) if (sdev->inquiry_len > 7)
sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), " \ sdev_printk(KERN_INFO, sdev, "qdepth(%d), tagged(%d), " \
"simple(%d), ordered(%d), scsi_level(%d), cmd_que(%d)\n", "simple(%d), scsi_level(%d), cmd_que(%d)\n",
sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags, sdev->queue_depth, sdev->tagged_supported, sdev->simple_tags,
sdev->ordered_tags, sdev->scsi_level, sdev->scsi_level,
(sdev->inquiry[7] & 2) >> 1); (sdev->inquiry[7] & 2) >> 1);
return sdev->queue_depth; return sdev->queue_depth;
@ -3563,16 +3563,7 @@ _scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER; mpi_control = MPI2_SCSIIO_CONTROL_NODATATRANSFER;
/* set tags */ /* set tags */
if (!(sas_device_priv_data->flags & MPT_DEVICE_FLAGS_INIT)) { mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
if (scmd->device->tagged_supported) {
if (scmd->device->ordered_tags)
mpi_control |= MPI2_SCSIIO_CONTROL_ORDEREDQ;
else
mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
} else
mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
} else
mpi_control |= MPI2_SCSIIO_CONTROL_SIMPLEQ;
if ((sas_device_priv_data->flags & MPT_DEVICE_TLR_ON) && if ((sas_device_priv_data->flags & MPT_DEVICE_TLR_ON) &&
scmd->cmd_len != 32) scmd->cmd_len != 32)

View File

@ -1442,10 +1442,7 @@ static void qla2x00_adjust_sdev_qdepth_up(struct scsi_device *sdev, int qdepth)
if (req->max_q_depth <= sdev->queue_depth || req->max_q_depth < qdepth) if (req->max_q_depth <= sdev->queue_depth || req->max_q_depth < qdepth)
return; return;
if (sdev->ordered_tags) scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, qdepth);
scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, qdepth);
else
scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, qdepth);
ql_dbg(ql_dbg_io, vha, 0x302a, ql_dbg(ql_dbg_io, vha, 0x302a,
"Queue depth adjusted-up to %d for nexus=%ld:%d:%llu.\n", "Queue depth adjusted-up to %d for nexus=%ld:%d:%llu.\n",

View File

@ -789,19 +789,13 @@ void scsi_adjust_queue_depth(struct scsi_device *sdev, int tagged, int tags)
sdev->queue_depth = tags; sdev->queue_depth = tags;
switch (tagged) { switch (tagged) {
case 0: case 0:
sdev->ordered_tags = 0;
sdev->simple_tags = 0; sdev->simple_tags = 0;
break; break;
case MSG_ORDERED_TAG: case MSG_ORDERED_TAG:
sdev->ordered_tags = 1;
sdev->simple_tags = 1;
break;
case MSG_SIMPLE_TAG: case MSG_SIMPLE_TAG:
sdev->ordered_tags = 0;
sdev->simple_tags = 1; sdev->simple_tags = 1;
break; break;
default: default:
sdev->ordered_tags = 0;
sdev->simple_tags = 0; sdev->simple_tags = 0;
sdev_printk(KERN_WARNING, sdev, sdev_printk(KERN_WARNING, sdev,
"scsi_adjust_queue_depth, bad queue type, " "scsi_adjust_queue_depth, bad queue type, "
@ -858,10 +852,7 @@ int scsi_track_queue_full(struct scsi_device *sdev, int depth)
return -1; return -1;
} }
if (sdev->ordered_tags) scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, depth);
else
scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
return depth; return depth;
} }
EXPORT_SYMBOL(scsi_track_queue_full); EXPORT_SYMBOL(scsi_track_queue_full);

View File

@ -727,9 +727,7 @@ show_queue_type_field(struct device *dev, struct device_attribute *attr,
struct scsi_device *sdev = to_scsi_device(dev); struct scsi_device *sdev = to_scsi_device(dev);
const char *name = "none"; const char *name = "none";
if (sdev->ordered_tags) if (sdev->simple_tags)
name = "ordered";
else if (sdev->simple_tags)
name = "simple"; name = "simple";
return snprintf(buf, 20, "%s\n", name); return snprintf(buf, 20, "%s\n", name);
@ -747,9 +745,12 @@ store_queue_type_field(struct device *dev, struct device_attribute *attr,
if (!sdev->tagged_supported || !sht->change_queue_type) if (!sdev->tagged_supported || !sht->change_queue_type)
return -EINVAL; return -EINVAL;
if (strncmp(buf, "ordered", 7) == 0) /*
tag_type = MSG_ORDERED_TAG; * We're never issueing order tags these days, but allow the value
else if (strncmp(buf, "simple", 6) == 0) * for backwards compatibility.
*/
if (strncmp(buf, "ordered", 7) == 0 ||
strncmp(buf, "simple", 6) == 0)
tag_type = MSG_SIMPLE_TAG; tag_type = MSG_SIMPLE_TAG;
else if (strncmp(buf, "none", 4) != 0) else if (strncmp(buf, "none", 4) != 0)
return -EINVAL; return -EINVAL;

View File

@ -526,9 +526,9 @@ static int pvscsi_change_queue_depth(struct scsi_device *sdev,
if (sdev->inquiry_len > 7) if (sdev->inquiry_len > 7)
sdev_printk(KERN_INFO, sdev, sdev_printk(KERN_INFO, sdev,
"qdepth(%d), tagged(%d), simple(%d), ordered(%d), scsi_level(%d), cmd_que(%d)\n", "qdepth(%d), tagged(%d), simple(%d), scsi_level(%d), cmd_que(%d)\n",
sdev->queue_depth, sdev->tagged_supported, sdev->queue_depth, sdev->tagged_supported,
sdev->simple_tags, sdev->ordered_tags, sdev->simple_tags,
sdev->scsi_level, (sdev->inquiry[7] & 2) >> 1); sdev->scsi_level, (sdev->inquiry[7] & 2) >> 1);
return sdev->queue_depth; return sdev->queue_depth;
} }

View File

@ -135,18 +135,6 @@ static int tcm_loop_change_queue_depth(
return sdev->queue_depth; return sdev->queue_depth;
} }
/*
* Locate the SAM Task Attr from struct scsi_cmnd *
*/
static int tcm_loop_sam_attr(struct scsi_cmnd *sc, int tag)
{
if (sc->device->tagged_supported &&
sc->device->ordered_tags && tag >= 0)
return MSG_ORDERED_TAG;
return MSG_SIMPLE_TAG;
}
static void tcm_loop_submission_work(struct work_struct *work) static void tcm_loop_submission_work(struct work_struct *work)
{ {
struct tcm_loop_cmd *tl_cmd = struct tcm_loop_cmd *tl_cmd =
@ -205,7 +193,7 @@ static void tcm_loop_submission_work(struct work_struct *work)
rc = target_submit_cmd_map_sgls(se_cmd, tl_nexus->se_sess, sc->cmnd, rc = target_submit_cmd_map_sgls(se_cmd, tl_nexus->se_sess, sc->cmnd,
&tl_cmd->tl_sense_buf[0], tl_cmd->sc->device->lun, &tl_cmd->tl_sense_buf[0], tl_cmd->sc->device->lun,
transfer_length, tcm_loop_sam_attr(sc, tl_cmd->sc_cmd_tag), transfer_length, MSG_SIMPLE_TAG,
sc->sc_data_direction, 0, sc->sc_data_direction, 0,
scsi_sglist(sc), scsi_sg_count(sc), scsi_sglist(sc), scsi_sg_count(sc),
sgl_bidi, sgl_bidi_count, sgl_bidi, sgl_bidi_count,

View File

@ -141,7 +141,6 @@ struct scsi_device {
unsigned ppr:1; /* Device supports PPR messages */ unsigned ppr:1; /* Device supports PPR messages */
unsigned tagged_supported:1; /* Supports SCSI-II tagged queuing */ unsigned tagged_supported:1; /* Supports SCSI-II tagged queuing */
unsigned simple_tags:1; /* simple queue tag messages are enabled */ unsigned simple_tags:1; /* simple queue tag messages are enabled */
unsigned ordered_tags:1;/* ordered queue tag messages are enabled */
unsigned was_reset:1; /* There was a bus reset on the bus for unsigned was_reset:1; /* There was a bus reset on the bus for
* this device */ * this device */
unsigned expecting_cc_ua:1; /* Expecting a CHECK_CONDITION/UNIT_ATTN unsigned expecting_cc_ua:1; /* Expecting a CHECK_CONDITION/UNIT_ATTN

View File

@ -21,17 +21,11 @@ int scsi_change_queue_type(struct scsi_device *sdev, int tag_type);
/** /**
* scsi_get_tag_type - get the type of tag the device supports * scsi_get_tag_type - get the type of tag the device supports
* @sdev: the scsi device * @sdev: the scsi device
*
* Notes:
* If the drive only supports simple tags, returns MSG_SIMPLE_TAG
* if it supports all tag types, returns MSG_ORDERED_TAG.
*/ */
static inline int scsi_get_tag_type(struct scsi_device *sdev) static inline int scsi_get_tag_type(struct scsi_device *sdev)
{ {
if (!sdev->tagged_supported) if (!sdev->tagged_supported)
return 0; return 0;
if (sdev->ordered_tags)
return MSG_ORDERED_TAG;
if (sdev->simple_tags) if (sdev->simple_tags)
return MSG_SIMPLE_TAG; return MSG_SIMPLE_TAG;
return 0; return 0;
@ -41,15 +35,12 @@ static inline void scsi_set_tag_type(struct scsi_device *sdev, int tag)
{ {
switch (tag) { switch (tag) {
case MSG_ORDERED_TAG: case MSG_ORDERED_TAG:
sdev->ordered_tags = 1;
/* fall through */
case MSG_SIMPLE_TAG: case MSG_SIMPLE_TAG:
sdev->simple_tags = 1; sdev->simple_tags = 1;
break; break;
case 0: case 0:
/* fall through */ /* fall through */
default: default:
sdev->ordered_tags = 0;
sdev->simple_tags = 0; sdev->simple_tags = 0;
break; break;
} }