diff options
author | ken <ken@FreeBSD.org> | 2010-10-07 21:56:10 +0000 |
---|---|---|
committer | ken <ken@FreeBSD.org> | 2010-10-07 21:56:10 +0000 |
commit | aa3acd013b51f0e16ff13d9bbb843bcf0e3b1032 (patch) | |
tree | 0f0c1c5d641cac6a380bb6cb10401f7a9f5cb4e2 /share | |
parent | bd9a22a54ea3eebd6e9ce34ba6f339c76dae2c62 (diff) | |
download | FreeBSD-src-aa3acd013b51f0e16ff13d9bbb843bcf0e3b1032.zip FreeBSD-src-aa3acd013b51f0e16ff13d9bbb843bcf0e3b1032.tar.gz |
Turn on serialization of task management commands going down to the
controller, but make it optional.
After a problem report from Andrew Boyer, it looks like the LSI
chip may have issues (the watchdog timer fired) if too many aborts
are sent down to the chip at the same time. We know that task
management commands are serialized, and although the manual doesn't
say it, it may be a good idea to just send one at a time.
But, since I'm not certain that this is necessary, add a tunable
and sysctl variable (hw.mps.%d.allow_multiple_tm_cmds) to control
the driver's behavior.
mps.c: Add support for the sysctl and tunable, and add a
comment about the possible return values to
mps_map_command().
mps_sas.c: Run all task management commands through two new
routines, mpssas_issue_tm_request() and
mpssas_complete_tm_request().
This allows us to optionally serialize task
management commands. Also, change things so that
the response to a task management command always
comes back through the callback. (Before it could
come via the callback or the return value.)
mpsvar.h: Add softc variables for the list of active task
management commands, the number of active commands,
and whether we should allow multiple active task
management commands. Add an active command flag.
mps.4: Describe the new sysctl/loader tunable variable.
Sponsored by: Spectra Logic Corporation
Diffstat (limited to 'share')
-rw-r--r-- | share/man/man4/mps.4 | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/share/man/man4/mps.4 b/share/man/man4/mps.4 index 644e02f..c6dd527 100644 --- a/share/man/man4/mps.4 +++ b/share/man/man4/mps.4 @@ -31,7 +31,7 @@ .\" .\" Author: Ken Merry <ken@FreeBSD.org> .\" -.\" $Id: //depot/SpectraBSD/head/share/man/man4/mps.4#1 $ +.\" $Id: //depot/SpectraBSD/head/share/man/man4/mps.4#4 $ .\" $FreeBSD$ .\" .Dd September 13, 2010 @@ -97,6 +97,20 @@ driver instances, set the following tunable value in .Bd -literal -offset indent hw.mps.disable_msix=1 .Ed +.Pp +To allow the driver to send multiple task management commands (like abort, +LUN reset, etc.), set the following variable: +.Bd -literal -offset indent +hw.mps.X.allow_multiple_tm_cmds=1 +.Ed +.Pp +via +.Xr loader.conf 5 +or +.Xr sysctl 8 , +where X is the adapter number. +By default the driver only sends one task management command at a time, to +avoid causing a potential controller lock-up. .Sh DEBUGGING To enable debugging prints from the .Nm |