From: <vl...@us...> - 2008-02-18 18:44:39
|
Revision: 288 http://scst.svn.sourceforge.net/scst/?rev=288&view=rev Author: vlnb Date: 2008-02-18 10:44:29 -0800 (Mon, 18 Feb 2008) Log Message: ----------- Some cleanups and performance works Modified Paths: -------------- trunk/iscsi-scst/kernel/nthread.c trunk/scst/README trunk/scst/include/scsi_tgt.h trunk/scst/src/scst_targ.c Modified: trunk/iscsi-scst/kernel/nthread.c =================================================================== --- trunk/iscsi-scst/kernel/nthread.c 2008-02-13 17:15:47 UTC (rev 287) +++ trunk/iscsi-scst/kernel/nthread.c 2008-02-18 18:44:29 UTC (rev 288) @@ -622,7 +622,7 @@ break; case RX_CHECK_DDIGEST: conn->read_state = RX_END; - if (cmnd->pdu.datasize <= 16*1024) { + if (cmnd->pdu.datasize <= 256*1024) { /* It's cache hot, so let's compute it inline */ TRACE_DBG("cmnd %p, opcode %x: checking RX " "ddigest inline", cmnd, cmnd_opcode(cmnd)); Modified: trunk/scst/README =================================================================== --- trunk/scst/README 2008-02-13 17:15:47 UTC (rev 287) +++ trunk/scst/README 2008-02-18 18:44:29 UTC (rev 288) @@ -684,8 +684,9 @@ - On the target deadline IO scheduler with read_expire and write_expire increased on all exported devices to 5000 and 15000 - correspondingly used to be the fastest, but currently seems CFQ often - outperforms it. So, try on your load and use the best one. + correspondingly should be the fastest for BLOCKIO, but for FILEIO + seems CFQ often outperforms it. So, try on your load and use the best + one. - It is recommended to turn the kernel preemption off, i.e. set the kernel preemption model to "No Forced Preemption (Server)". Modified: trunk/scst/include/scsi_tgt.h =================================================================== --- trunk/scst/include/scsi_tgt.h 2008-02-13 17:15:47 UTC (rev 287) +++ trunk/scst/include/scsi_tgt.h 2008-02-18 18:44:29 UTC (rev 288) @@ -1328,11 +1328,11 @@ unsigned long swp:1; /* - * Set if device implements own ordered commands management. - * Particularly, if set, expected_sn will be incremented immediately - * after exec() returned. + * Set if device implements own ordered commands management. If not set + * and queue_alg is SCST_CONTR_MODE_QUEUE_ALG_RESTRICTED_REORDER, + * expected_sn will be incremented only after commands finished. */ - unsigned long has_own_order_mgmt:1; + unsigned long has_own_order_mgmt:1; /**************************************************************/ Modified: trunk/scst/src/scst_targ.c =================================================================== --- trunk/scst/src/scst_targ.c 2008-02-13 17:15:47 UTC (rev 287) +++ trunk/scst/src/scst_targ.c 2008-02-18 18:44:29 UTC (rev 288) @@ -316,7 +316,8 @@ TRACE_ENTRY(); - cmd->inc_expected_sn_on_done = !dev->has_own_order_mgmt; + cmd->inc_expected_sn_on_done = !dev->has_own_order_mgmt && + (dev->queue_alg == SCST_CONTR_MODE_QUEUE_ALG_RESTRICTED_REORDER); sBUG_ON(cmd->internal); @@ -2710,8 +2711,14 @@ scst_check_debug_sn(cmd); - if (cmd->dev->queue_alg == SCST_CONTR_MODE_QUEUE_ALG_RESTRICTED_REORDER) + if (cmd->dev->queue_alg == SCST_CONTR_MODE_QUEUE_ALG_RESTRICTED_REORDER) { + /* + * Not the best way, but well enough until there will be a + * possibility to specify queue type during pass-through + * commands submission. + */ cmd->queue_type = SCST_CMD_QUEUE_ORDERED; + } switch(cmd->queue_type) { case SCST_CMD_QUEUE_SIMPLE: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |