summaryrefslogtreecommitdiffstats
path: root/sys/dev/ciss
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2009-02-20 07:43:43 +0000
committerscottl <scottl@FreeBSD.org>2009-02-20 07:43:43 +0000
commit25970e49c4c8500f9265a55502d2cdb1b530d455 (patch)
tree31d06592a30c9a15d9ae39f0ec4f02690b269aed /sys/dev/ciss
parent9894622a1c3bbdb740cb4fa7cfd9dcecc0697db0 (diff)
downloadFreeBSD-src-25970e49c4c8500f9265a55502d2cdb1b530d455.zip
FreeBSD-src-25970e49c4c8500f9265a55502d2cdb1b530d455.tar.gz
Tell CAM that CISS logical devices support tagged queueing. This fixes
the low "max device openings" count that has led to poor performance in FreeBSD 7.0 and 7.1
Diffstat (limited to 'sys/dev/ciss')
-rw-r--r--sys/dev/ciss/ciss.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index 559dacd..208edca 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -2981,8 +2981,8 @@ ciss_cam_action(struct cam_sim *sim, union ccb *ccb)
{
struct ccb_trans_settings *cts = &ccb->cts;
int bus, target;
- struct ccb_trans_settings_spi *spi =
- &cts->xport_specific.spi;
+ struct ccb_trans_settings_spi *spi = &cts->xport_specific.spi;
+ struct ccb_trans_settings_scsi *scsi = &cts->proto_specific.scsi;
bus = cam_sim_bus(sim);
target = cts->ccb_h.target_id;
@@ -2997,6 +2997,9 @@ ciss_cam_action(struct cam_sim *sim, union ccb *ccb)
spi->valid = CTS_SPI_VALID_DISC;
spi->flags = CTS_SPI_FLAGS_DISC_ENB;
+ scsi->valid = CTS_SCSI_VALID_TQ;
+ scsi->flags = CTS_SCSI_FLAGS_TAG_ENB;
+
cts->ccb_h.status = CAM_REQ_CMP;
break;
}
OpenPOWER on IntegriCloud