Changeset View
Changeset View
Standalone View
Standalone View
head/share/man/man4/mpr.4
.\" | .\" | ||||
.\" Copyright (c) 2010 Spectra Logic Corporation | .\" Copyright (c) 2010 Spectra Logic Corporation | ||||
.\" Copyright (c) 2014 LSI Corp | .\" Copyright (c) 2014 LSI Corp | ||||
.\" Copyright (c) 2016 Avago Technologies | |||||
.\" Copyright (c) 2016 Broadcom Ltd. | |||||
.\" All rights reserved. | .\" All rights reserved. | ||||
.\" | .\" | ||||
.\" Redistribution and use in source and binary forms, with or without | .\" Redistribution and use in source and binary forms, with or without | ||||
.\" modification, are permitted provided that the following conditions | .\" modification, are permitted provided that the following conditions | ||||
.\" are met: | .\" are met: | ||||
.\" 1. Redistributions of source code must retain the above copyright | .\" 1. Redistributions of source code must retain the above copyright | ||||
.\" notice, this list of conditions, and the following disclaimer, | .\" notice, this list of conditions, and the following disclaimer, | ||||
.\" without modification. | .\" without modification. | ||||
Show All 14 Lines | |||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||||
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | .\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | ||||
.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
.\" POSSIBILITY OF SUCH DAMAGES. | .\" POSSIBILITY OF SUCH DAMAGES. | ||||
.\" | .\" | ||||
.\" mpr driver man page. | .\" mpr driver man page. | ||||
.\" | .\" | ||||
.\" Author: Ken Merry <ken@FreeBSD.org> | .\" Author: Ken Merry <ken@FreeBSD.org> | ||||
.\" Author: Stephen McConnell <stephen.mcconnell@lsi.com> | .\" Author: Stephen McConnell <slm@FreeBSD.org> | ||||
.\" | .\" | ||||
.\" $Id$ | .\" $Id$ | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.\" | .\" | ||||
.Dd May 2, 2014 | .Dd April 29, 2016 | ||||
.Dt MPR 4 | .Dt MPR 4 | ||||
.Os | .Os | ||||
.Sh NAME | .Sh NAME | ||||
.Nm mpr | .Nm mpr | ||||
.Nd "LSI Fusion-MPT 3 IT/IR 12Gb/s Serial Attached SCSI/SATA driver" | .Nd "LSI Fusion-MPT 3 IT/IR 12Gb/s Serial Attached SCSI/SATA driver" | ||||
.Sh SYNOPSIS | .Sh SYNOPSIS | ||||
To compile this driver into the kernel, place the following lines in your | To compile this driver into the kernel, place these lines in the kernel | ||||
kernel configuration file: | configuration file: | ||||
.Bd -ragged -offset indent | .Bd -ragged -offset indent | ||||
.Cd "device pci" | .Cd "device pci" | ||||
.Cd "device scbus" | .Cd "device scbus" | ||||
.Cd "device mpr" | .Cd "device mpr" | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
Alternatively, to load the driver as a | The driver can be loaded as a module at boot time by placing this line in | ||||
module at boot time, place the following line in | |||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
mpr_load="YES" | mpr_load="YES" | ||||
.Ed | .Ed | ||||
.Sh DESCRIPTION | .Sh DESCRIPTION | ||||
The | The | ||||
.Nm | .Nm | ||||
driver provides support for LSI Fusion-MPT 3 IT/IR | driver provides support for Broadcom Ltd./Avago Tech (LSI) | ||||
Fusion-MPT 3 IT/IR | |||||
.Tn SAS | .Tn SAS | ||||
controllers. | controllers. | ||||
.Sh HARDWARE | .Sh HARDWARE | ||||
The following controllers are supported by the | These controllers are supported by the | ||||
.Nm | .Nm | ||||
driver: | driver: | ||||
.Pp | .Pp | ||||
.Bl -bullet -compact | .Bl -bullet -compact | ||||
.It | .It | ||||
LSI SAS 3004 (4 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3004 (4 Port SAS) | ||||
.It | .It | ||||
LSI SAS 3008 (8 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3008 (8 Port SAS) | ||||
.It | .It | ||||
LSI SAS 3108 (8 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3108 (8 Port SAS) | ||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3216 (16 Port SAS) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3224 (24 Port SAS) | |||||
.El | .El | ||||
.Sh CONFIGURATION | .Sh CONFIGURATION | ||||
.Pp | |||||
In all tunable descriptions below, X represents the adapter number. | |||||
.Pp | |||||
To disable MSI interrupts for all | To disable MSI interrupts for all | ||||
.Nm | .Nm | ||||
driver instances, set the following tunable value in | driver instances, set this tunable value in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
hw.mpr.disable_msi=1 | hw.mpr.disable_msi=1 | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
To disable MSI interrupts for a specific | To disable MSI interrupts for a specific | ||||
.Nm | .Nm | ||||
driver instance, set the following tunable value in | driver instance, set this tunable value in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
dev.mpr.X.disable_msi=1 | dev.mpr.X.disable_msi=1 | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
where X is the adapter number. | |||||
.Pp | |||||
To disable MSI-X interrupts for all | To disable MSI-X interrupts for all | ||||
.Nm | .Nm | ||||
driver instances, set the following tunable value in | driver instances, set this tunable value in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
hw.mpr.disable_msix=1 | hw.mpr.disable_msix=1 | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
To disable MSI-X interrupts for a specific | To disable MSI-X interrupts for a specific | ||||
.Nm | .Nm | ||||
driver instance, set the following tunable value in | driver instance, set this tunable value in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
dev.mpr.X.disable_msix=1 | dev.mpr.X.disable_msix=1 | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
To set the maximum number of DMA chains allocated for all adapters, set | To set the maximum number of DMA chains allocated for all adapters, set | ||||
the following variable in | this tunable in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
hw.mpr.max_chains=NNNN | hw.mpr.max_chains=NNNN | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
To set the maximum number of DMA chains allocated for a specific adapter, | To set the maximum number of DMA chains allocated for a specific adapter, | ||||
set the following variable in | set this tunable in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
dev.mpr.X.max_chains=NNNN | dev.mpr.X.max_chains=NNNN | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
This variable may also be viewed via | The default max_chains value is 2048. | ||||
.Xr sysctl 8 | |||||
to see the maximum set for a given adapter. | |||||
.Pp | .Pp | ||||
The current number of free chain frames may be seen via the | The current number of free chain frames is stored in the | ||||
dev.mpr.X.chain_free | dev.mpr.X.chain_free | ||||
.Xr sysctl 8 | .Xr sysctl 8 | ||||
variable. | variable. | ||||
.Pp | .Pp | ||||
The lowest number of free chain frames may be seen via the | The lowest number of free chain frames seen since boot is stored in the | ||||
dev.mpr.X.chain_free_lowwater | dev.mpr.X.chain_free_lowwater | ||||
.Xr sysctl 8 | .Xr sysctl 8 | ||||
variable. | variable. | ||||
.Pp | .Pp | ||||
The number of times that chain frame allocations have failed since boot is | |||||
stored in the | |||||
dev.mpr.X.chain_alloc_fail | |||||
.Xr sysctl 8 | |||||
variable. | |||||
This can be used to determine whether the max_chains tunable should be | |||||
increased to help performance. | |||||
.Pp | |||||
The current number of active I/O commands is shown in the | The current number of active I/O commands is shown in the | ||||
dev.mpr.X.io_cmds_active | dev.mpr.X.io_cmds_active | ||||
.Xr sysctl 8 | .Xr sysctl 8 | ||||
variable. | variable. | ||||
.Pp | .Pp | ||||
The maximum number of active I/O commands seen since boot is shown in the | The highest number of active I/O commands seen since boot is stored in the | ||||
dev.mpr.X.io_cmds_highwater | dev.mpr.X.io_cmds_highwater | ||||
.Xr sysctl 8 | .Xr sysctl 8 | ||||
variable. | variable. | ||||
.Pp | .Pp | ||||
Devices can be excluded from | Devices can be excluded from | ||||
.Nm | .Nm | ||||
control for all adapters by setting the following variable in | control for all adapters by setting this tunable in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
hw.mpr.exclude_ids=Y | hw.mpr.exclude_ids=Y | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
where Y is the target ID of the device. | Y represents the target ID of the device. | ||||
If more than one device is to be | If more than one device is to be excluded, target IDs are separated by commas. | ||||
excluded, target ID's are separated by commas. | |||||
.Pp | .Pp | ||||
Devices can be excluded from | Devices can be excluded from | ||||
.Nm | .Nm | ||||
control for a specific adapter by setting the following variable in | control for a specific adapter by setting this tunable in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
dev.mpr.X.exclude_ids=Y | dev.mpr.X.exclude_ids=Y | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
where X is the adapter number and Y is the target ID of the device. | Y represents the target ID of the device. | ||||
If more | If more than one device is to be excluded, target IDs are separated by commas. | ||||
than one device is to be excluded, target ID's are separated by commas. | .Pp | ||||
The adapter can issue the | |||||
.Sy StartStopUnit | |||||
SCSI command to SATA direct-access devices during shutdown. | |||||
This allows the device to quiesce powering down. | |||||
To control this feature for all adapters, set the | |||||
.Bd -literal -offset indent | |||||
hw.mpr.enable_ssu | |||||
.Ed | |||||
.Pp | |||||
tunable in | |||||
.Xr loader.conf 5 | |||||
to one of these values: | |||||
.Bl -tag -width 6n -offset indent | |||||
.It 0 | |||||
Do not send SSU to either HDDs or SSDs. | |||||
.It 1 | |||||
Send SSU to SSDs, but not to HDDs. | |||||
This is the default value. | |||||
.It 2 | |||||
Send SSU to HDDs, but not to SSDs. | |||||
.It 3 | |||||
Send SSU to both HDDs and SSDs. | |||||
.El | |||||
.Pp | |||||
To control the feature for a specific adapter, set this tunable value in | |||||
.Xr loader.conf 5 : | |||||
.Bd -literal -offset indent | |||||
dev.mpr.X.enable_ssu | |||||
.Ed | |||||
.Pp | |||||
The same set of values are valid when setting this tunable for all adapters. | |||||
.Pp | |||||
SATA disks that take several seconds to spin up and fail the SATA Identify | |||||
command might not be discovered by the driver. | |||||
This problem can sometimes be overcome by increasing the value of the spinup | |||||
wait time in | |||||
.Xr loader.conf 5 : | |||||
with the | |||||
.Bd -literal -offset indent | |||||
hw.mpr.spinup_wait_time=NNNN | |||||
.Ed | |||||
.Pp | |||||
tunable. | |||||
NNNN represents the number of seconds to wait for SATA devices to spin up when | |||||
the device fails the initial SATA Identify command. | |||||
.Pp | |||||
Spinup wait times can be set for specific adapters in | |||||
.Xr loader.conf 5 : | |||||
with the | |||||
.Bd -literal -offset indent | |||||
dev.mpr.X.spinup_wait_time=NNNN | |||||
.Ed | |||||
.Pp | |||||
tunable. | |||||
NNNN is the number of seconds to wait for SATA devices to spin up when they fail | |||||
the initial SATA Identify command. | |||||
.Sh DEBUGGING | .Sh DEBUGGING | ||||
To enable debugging prints from the | To enable debugging prints from the | ||||
.Nm | .Nm | ||||
driver, set the | driver, set the | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
hw.mpr.X.debug_level | hw.mpr.X.debug_level | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
variable, where X is the adapter number, either in | tunable, either in | ||||
.Xr loader.conf 5 | .Xr loader.conf 5 | ||||
or via | or by using | ||||
.Xr sysctl 8 . | .Xr sysctl 8 . | ||||
The following bits have the described effects: | These bits have the described effects: | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
0x0001 Enable informational prints. | 0x0001 Enable informational prints (set by default). | ||||
0x0002 Enable prints for driver faults. | 0x0002 Enable prints for driver faults (set by default). | ||||
0x0004 Enable prints for controller events. | 0x0004 Enable prints for controller events. | ||||
0x0008 Enable prints for controller logging. | 0x0008 Enable prints for controller logging. | ||||
0x0010 Enable prints for tracing recovery operations. | 0x0010 Enable prints for tracing recovery operations. | ||||
0x0020 Enable prints for parameter errors and programming bugs. | 0x0020 Enable prints for parameter errors and programming bugs. | ||||
0x0040 Enable prints for system initialization operations. | 0x0040 Enable prints for system initialization operations. | ||||
0x0080 Enable prints for more detailed information. | 0x0080 Enable prints for more detailed information. | ||||
0x0100 Enable prints for user-generated commands. | 0x0100 Enable prints for user-generated commands (IOCTL). | ||||
0x0200 Enable prints for device mapping. | 0x0200 Enable prints for device mapping. | ||||
0x0400 Enable prints for tracing through driver functions. | 0x0400 Enable prints for tracing through driver functions. | ||||
.Ed | .Ed | ||||
.Sh SEE ALSO | .Sh SEE ALSO | ||||
.Xr cam 4 , | .Xr cam 4 , | ||||
.Xr cd 4 , | .Xr cd 4 , | ||||
.Xr ch 4 , | .Xr ch 4 , | ||||
.Xr da 4 , | .Xr da 4 , | ||||
Show All 10 Lines | |||||
.Nm | .Nm | ||||
driver first appeared in FreeBSD 9.3. | driver first appeared in FreeBSD 9.3. | ||||
.Sh AUTHORS | .Sh AUTHORS | ||||
The | The | ||||
.Nm | .Nm | ||||
driver was originally written by | driver was originally written by | ||||
.An -nosplit | .An -nosplit | ||||
.An Scott Long Aq Mt scottl@FreeBSD.org . | .An Scott Long Aq Mt scottl@FreeBSD.org . | ||||
It has been improved and tested by LSI Corporation. | It has been improved and tested by LSI Corporation, | ||||
Avago Technologies (formally LSI), and Broadcom Ltd. (formally Avago). | |||||
.Pp | .Pp | ||||
This man page was written by | This man page was written by | ||||
.An Ken Merry Aq Mt ken@FreeBSD.org | .An Ken Merry Aq Mt ken@FreeBSD.org | ||||
with additional input from | with additional input from | ||||
.An Stephen McConnell Aq Mt stephen.mcconnell@lsi.com . | .An Stephen McConnell Aq Mt slm@FreeBSD.org . |