From: <vl...@us...> - 2007-05-17 14:46:16
|
Revision: 115 http://svn.sourceforge.net/scst/?rev=115&view=rev Author: vlnb Date: 2007-05-17 07:45:18 -0700 (Thu, 17 May 2007) Log Message: ----------- Minor fixes, cleanups and updates Modified Paths: -------------- trunk/scst/README trunk/scst/src/dev_handlers/scst_vdisk.c trunk/scst/src/scst_targ.c trunk/www/scst_page.html Modified: trunk/scst/README =================================================================== --- trunk/scst/README 2007-05-08 09:26:48 UTC (rev 114) +++ trunk/scst/README 2007-05-17 14:45:18 UTC (rev 115) @@ -420,6 +420,31 @@ ========= them, if you try to use a device in both those modes simultaneously, you will almost instantly corrupt your data on that device. +Pass-through mode +----------------- + +As any other hardware, a local SCSI hardware for devices on target, +which are exported in the pass-through mode, can not handle commands +with amount of data and/or segments count in scatter-gather array +bigger, than some values. Therefore, when using the pass-through mode +you should note that the corresponding values on the corresponding +devices on initiators can not be bigger, than values, which the hardware +on the target can support. Otherwise you will see symptoms like small +transfers work well, but large ones stall and messages like: "Unable to +complete command due to SG IO count limitation" are printed in the +kernel logs. + +You can't control from the user space limit of the scatter-gather +segments, but for block devices usually it is sufficient if you set on +the initiator /sys/block/DEVICE_NAME/queue/max_sectors_kb in the same or +lower value as in /sys/block/DEVICE_NAME/queue/max_hw_sectors_kb for the +corresponding device on the target. + +For not-block devices SCSI commands are usually generated directly by +applications, so, if you experience large transfers stalls, you should +check documentation for your application how to limit the transfer +sizes. + Performance ----------- Modified: trunk/scst/src/dev_handlers/scst_vdisk.c =================================================================== --- trunk/scst/src/dev_handlers/scst_vdisk.c 2007-05-08 09:26:48 UTC (rev 114) +++ trunk/scst/src/dev_handlers/scst_vdisk.c 2007-05-17 14:45:18 UTC (rev 115) @@ -1669,8 +1669,8 @@ int res = 0; struct scst_vdisk_dev *virt_dev = thr->virt_dev; struct file *file = thr->fd; - struct inode *inode = file->f_dentry->d_inode; - struct address_space *mapping = file->f_mapping; + struct inode *inode; + struct address_space *mapping; TRACE_ENTRY(); @@ -1680,6 +1680,9 @@ virt_dev->nullio) goto out; + inode = file->f_dentry->d_inode; + mapping = file->f_mapping; + res = sync_page_range(inode, mapping, loff, len); if (unlikely(res != 0)) { PRINT_ERROR_PR("sync_page_range() failed (%d)", res); Modified: trunk/scst/src/scst_targ.c =================================================================== --- trunk/scst/src/scst_targ.c 2007-05-08 09:26:48 UTC (rev 114) +++ trunk/scst/src/scst_targ.c 2007-05-17 14:45:18 UTC (rev 115) @@ -655,7 +655,7 @@ } if (unlikely(test_bit(SCST_CMD_ABORTED, &cmd->cmd_flags))) { - TRACE_DBG("ABORTED set, returning ABORTED for " + TRACE_MGMT_DBG("ABORTED set, returning ABORTED for " "cmd %p", cmd); cmd->state = SCST_CMD_STATE_DEV_DONE; res = SCST_CMD_STATE_RES_CONT_SAME; @@ -822,7 +822,7 @@ TRACE_ENTRY(); if (unlikely(test_bit(SCST_CMD_ABORTED, &cmd->cmd_flags))) { - TRACE_DBG("ABORTED set, aborting cmd %p", cmd); + TRACE_MGMT_DBG("ABORTED set, aborting cmd %p", cmd); goto out_dev_done; } @@ -1634,7 +1634,7 @@ smp_mb__after_set_bit(); if (unlikely(test_bit(SCST_CMD_ABORTED, &cmd->cmd_flags))) { - TRACE_DBG("ABORTED set, aborting cmd %p", cmd); + TRACE_MGMT_DBG("ABORTED set, aborting cmd %p", cmd); goto out_aborted; } @@ -1769,7 +1769,7 @@ /* Optimized for lockless fast path */ - TRACE_SN("Slot %d, *cur_sn_slot %d", slot-tgt_dev->sn_slots, + TRACE_SN("Slot %d, *cur_sn_slot %d", slot - tgt_dev->sn_slots, atomic_read(slot)); if (!atomic_dec_and_test(slot)) @@ -2913,7 +2913,9 @@ TRACE_ENTRY(); +#if 0 set_user_nice(current, 10); +#endif current->flags |= PF_NOFREEZE; spin_lock_irq(&p_cmd_lists->cmd_list_lock); @@ -3694,7 +3696,7 @@ TRACE_DBG("Calling target %s task_mgmt_fn_done()", mcmd->sess->tgt->tgtt->name); mcmd->sess->tgt->tgtt->task_mgmt_fn_done(mcmd); - TRACE_MGMT_DBG("Dev handler %s task_mgmt_fn_done() returned", + TRACE_MGMT_DBG("Target's %s task_mgmt_fn_done() returned", mcmd->sess->tgt->tgtt->name); } Modified: trunk/www/scst_page.html =================================================================== --- trunk/www/scst_page.html 2007-05-08 09:26:48 UTC (rev 114) +++ trunk/www/scst_page.html 2007-05-17 14:45:18 UTC (rev 115) @@ -126,11 +126,11 @@ supported by Linux platform. More detail information you could find in the project's README file.<br> </p> -<p style="text-align: justify;">Starting from version 0.9.4 2.4 Linux +Starting from version 0.9.4 2.4 Linux kernels are not supported anymore, although there could be new SCST releases for those kernels with very important bug fixes. The latest stable -version of SCST with 2.4 kernels support is 0.9.3.1-24.</p> +version of SCST with 2.4 kernels support is 0.9.3.1-24. <p style="text-align: justify;">If you have any questions you can ask them on the SCST SF.net page either using forum, or scst-devel mailing list.<br> @@ -146,10 +146,13 @@ href="doc/scst_cmd_thread.png">scst_cmd_thread</a>, <a href="doc/scst_mgmt_cmd_thread.png">scst_mgmt_cmd_thread</a>, <a href="doc/scst_mgmt_thread.png">scst_mgmt_thread</a><br> -<p>The latest development versions of SCST and its drivers are +<p>The latest development version of SCST and target drivers is available directly from the -project's SVN. You can access it using either <a - href="http://svn.sourceforge.net/scst">web-based SVN +project's SVN. The SCST release policy is to make stable releases +twice a year, with the only exception if the current stable version +contains a critical bug. Therefore on practice the development version +is usually more stable, than the "stable" one. You can access it using +either <a href="http://svn.sourceforge.net/scst">web-based SVN repository viewer</a> or using anonymous access: </p> <p> <tt> svn co https://svn.sourceforge.net/svnroot/scst<br> </tt></p> @@ -210,6 +213,14 @@ above how to setup access to it.<br> <br> <hr style="width: 100%; height: 2px;"> +<h1><small>SCSI RDMA Protocol (SRP) Target driver</small></h1> +<p>SCSI RDMA Protocol (SRP) Target driver is developed +independently from SCST team. You can find instructions how to download +and install it on this page: <a + href="http://lists.openfabrics.org/pipermail/iwg/2007-March/000378.html">http://lists.openfabrics.org/pipermail/iwg/2007-March/000378.html</a><br> +<br> +</p> +<hr style="width: 100%; height: 2px;"> <h1><small>Old target driver for Qlogic 2200/2300 cards<br> </small></h1> <div style="text-align: justify;">Old target driver for Qlogic @@ -233,6 +244,9 @@ for details. Tested on i386 only, but should work on any other supported by Linux platform.<br> <br> +Currently it is not supported and listed here for historical reasons +only.<br> +<br> </div> <a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br> <a href="ChangeLog.qla">Change Log</a> @@ -270,6 +284,9 @@ Requires Linux kernel versions 2.4.20 or higher or 2.6.7 or higher and SCST version 0.9.2 or higher.<br> <br> +Currently it is not supported and listed here for historical reasons +only.<br> +<br> <a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br> <br> </body> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |