mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-18 11:11:27 +00:00
Minor fixes, cleanups and updates
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@115 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
25
scst/README
25
scst/README
@@ -420,6 +420,31 @@ IMPORTANT: Since data in BLOCKIO and FILEIO modes are not consistent between
|
||||
========= 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
|
||||
-----------
|
||||
|
||||
|
||||
@@ -1669,8 +1669,8 @@ static int vdisk_fsync(struct scst_vdisk_thr *thr,
|
||||
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 @@ static int vdisk_fsync(struct scst_vdisk_thr *thr,
|
||||
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);
|
||||
|
||||
@@ -655,7 +655,7 @@ prep_done:
|
||||
}
|
||||
|
||||
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 @@ static int scst_rdy_to_xfer(struct scst_cmd *cmd)
|
||||
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 @@ static int scst_do_send_to_midlev(struct scst_cmd *cmd)
|
||||
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 @@ void scst_inc_expected_sn(struct scst_tgt_dev *tgt_dev, atomic_t *slot)
|
||||
|
||||
/* 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 @@ int scst_cmd_thread(void *arg)
|
||||
|
||||
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 @@ static void scst_mgmt_cmd_send_done(struct scst_mgmt_cmd *mcmd)
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -126,11 +126,11 @@ work on any other
|
||||
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 @@ Some nice SCST call graphs, created by Ming Zhang: <a
|
||||
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 @@ alpha stage and available from the <a
|
||||
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 @@ works also on 2.6 kernels, see README file
|
||||
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 @@ built-in scsi_target remains available as a compile-time option.<br>
|
||||
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>
|
||||
|
||||
Reference in New Issue
Block a user