diff --git a/scst/README b/scst/README index dbff71ad0..5cc166d4a 100644 --- a/scst/README +++ b/scst/README @@ -770,19 +770,14 @@ II. In order to get the maximum performance you should: - Disable in Makefile CONFIG_SCST_TRACING and CONFIG_SCST_DEBUG. - - If your initiator(s) use dedicated exported from the target virtual - SCSI devices and have more or equal amount of memory, than the - target, it is recommended to use O_DIRECT option (currently it is - available only with fileio_tgt user space program) or BLOCKIO. With - them you could have up to 100% increase in throughput. -IMPORTANT: Some of the compilation options enabled by default, i.e. SCST -========= is optimized currently rather for development and bug hunting, - than for performance. +IMPORTANT: Some of the above compilation options in the SCST SVN enabled by default, +========= i.e. development version of SCST is optimized currently rather for + development and bug hunting, than for performance. If you use SCST version taken directly from the SVN repository, you can set the above options, except CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ, -using debug2perf Makefile target. +in the needed values using debug2perf root Makefile target. 4. For other target and initiator software parts: @@ -857,6 +852,9 @@ using debug2perf Makefile target. provide you the best performance. But using it make sure you use a good UPS with ability to shutdown the target on the power failure. +Baseline performance numbers you can find in those measurements: +http://lkml.org/lkml/2009/3/30/283. + IMPORTANT: If you use on initiator some versions of Windows (at least W2K) ========= you can't get good write performance for VDISK FILEIO devices with default 512 bytes block sizes. You could get about 10% of the diff --git a/scst/README_in-tree b/scst/README_in-tree index 22048234c..2ef50c9b0 100644 --- a/scst/README_in-tree +++ b/scst/README_in-tree @@ -705,19 +705,14 @@ II. In order to get the maximum performance you should: - Disable in Makefile CONFIG_SCST_TRACING and CONFIG_SCST_DEBUG. - - If your initiator(s) use dedicated exported from the target virtual - SCSI devices and have more or equal amount of memory, than the - target, it is recommended to use O_DIRECT option (currently it is - available only with fileio_tgt user space program) or BLOCKIO. With - them you could have up to 100% increase in throughput. -IMPORTANT: Some of the compilation options enabled by default, i.e. SCST -========= is optimized currently rather for development and bug hunting, - than for performance. +IMPORTANT: Some of the above compilation options in the SCST SVN enabled by default, +========= i.e. development version of SCST is optimized currently rather for + development and bug hunting, than for performance. If you use SCST version taken directly from the SVN repository, you can set the above options, except CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ, -using debug2perf Makefile target. +in the needed values using debug2perf root Makefile target. 4. For other target and initiator software parts: @@ -792,6 +787,9 @@ using debug2perf Makefile target. provide you the best performance. But using it make sure you use a good UPS with ability to shutdown the target on the power failure. +Baseline performance numbers you can find in those measurements: +http://lkml.org/lkml/2009/3/30/283. + IMPORTANT: If you use on initiator some versions of Windows (at least W2K) ========= you can't get good write performance for VDISK FILEIO devices with default 512 bytes block sizes. You could get about 10% of the diff --git a/scst/src/dev_handlers/scst_user.c b/scst/src/dev_handlers/scst_user.c index 6c562adc1..a67f42134 100644 --- a/scst/src/dev_handlers/scst_user.c +++ b/scst/src/dev_handlers/scst_user.c @@ -2317,9 +2317,9 @@ static int dev_user_task_mgmt_fn(struct scst_mgmt_cmd *mcmd, } TRACE_MGMT_DBG("Preparing TM ucmd %p (h %d, fn %d, cmd_to_abort %p, " - "ucmd_to_abort %p, cmd_h_to_abort %d)", ucmd, ucmd->h, + "ucmd_to_abort %p, cmd_h_to_abort %d, mcmd %p)", ucmd, ucmd->h, mcmd->fn, mcmd->cmd_to_abort, ucmd_to_abort, - ucmd->user_cmd.tm_cmd.cmd_h_to_abort); + ucmd->user_cmd.tm_cmd.cmd_h_to_abort, mcmd); ucmd->mcmd = mcmd; ucmd->state = UCMD_STATE_TM_EXECING; diff --git a/scst/src/scst_targ.c b/scst/src/scst_targ.c index 7efd98775..b03efc044 100644 --- a/scst/src/scst_targ.c +++ b/scst/src/scst_targ.c @@ -3794,10 +3794,12 @@ void scst_prepare_async_mcmd(struct scst_mgmt_cmd *mcmd) TRACE_ENTRY(); - TRACE_MGMT_DBG("Preparing mcmd %p for async execution", mcmd); + TRACE_MGMT_DBG("Preparing mcmd %p for async execution " + "(cmd_finish_wait_count %d)", mcmd, + mcmd->cmd_finish_wait_count); spin_lock_irqsave(&scst_mcmd_lock, flags); - mcmd->cmd_finish_wait_count++; + mcmd->cmd_finish_wait_count++; spin_unlock_irqrestore(&scst_mcmd_lock, flags); TRACE_EXIT();