summaryrefslogtreecommitdiffstats
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
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
-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