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) 2017 Avago Technologies | ||||
.\" Copyright (c) 2016 Broadcom Ltd. | .\" Copyright (c) 2017 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 19 Lines | |||||
.\" mpr driver man page. | .\" mpr driver man page. | ||||
.\" | .\" | ||||
.\" Author: Ken Merry <ken@FreeBSD.org> | .\" Author: Ken Merry <ken@FreeBSD.org> | ||||
.\" Author: Stephen McConnell <slm@FreeBSD.org> | .\" Author: Stephen McConnell <slm@FreeBSD.org> | ||||
.\" | .\" | ||||
.\" $Id$ | .\" $Id$ | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.\" | .\" | ||||
.Dd July 6, 2016 | .Dd May 17, 2017 | ||||
.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/3.5 IT/IR 12Gb/s Serial Attached SCSI/SATA/PCIe driver" | ||||
.Sh SYNOPSIS | .Sh SYNOPSIS | ||||
To compile this driver into the kernel, place these lines in the kernel | To compile this driver into the kernel, place these lines in the 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 | ||||
The driver can be loaded as a module at boot time by placing this line in | The driver can be loaded as a module at boot time by placing this 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 Broadcom Ltd./Avago Tech (LSI) | driver provides support for Broadcom Ltd./Avago Tech (LSI) | ||||
Fusion-MPT 3 IT/IR | Fusion-MPT 3/3.5 IT/IR | ||||
.Tn SAS | .Tn SAS/PCIe | ||||
controllers. | controllers. | ||||
.Sh HARDWARE | .Sh HARDWARE | ||||
These 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 | ||||
Broadcom Ltd./Avago Tech (LSI) SAS 3004 (4 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3004 (4 Port SAS) | ||||
.It | .It | ||||
Broadcom Ltd./Avago Tech (LSI) SAS 3008 (8 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3008 (8 Port SAS) | ||||
.It | .It | ||||
Broadcom Ltd./Avago Tech (LSI) SAS 3108 (8 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3108 (8 Port SAS) | ||||
.It | .It | ||||
Broadcom Ltd./Avago Tech (LSI) SAS 3216 (16 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3216 (16 Port SAS) | ||||
.It | .It | ||||
Broadcom Ltd./Avago Tech (LSI) SAS 3224 (24 Port SAS) | Broadcom Ltd./Avago Tech (LSI) SAS 3224 (24 Port SAS) | ||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3316 (16 Port SAS) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3324 (24 Port SAS) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3408 (8 Port SAS/PCIe) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3416 (16 Port SAS/PCIe) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3508 (8 Port SAS/PCIe) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3516 (16 Port SAS/PCIe) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3616 (16 Port SAS/PCIe) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3708 (8 Port SAS/PCIe) | |||||
.It | |||||
Broadcom Ltd./Avago Tech (LSI) SAS 3716 (16 Port SAS/PCIe) | |||||
.El | .El | ||||
.Sh CONFIGURATION | .Sh CONFIGURATION | ||||
In all tunable descriptions below, X represents the adapter number. | In all tunable descriptions below, X represents the adapter number. | ||||
.Pp | .Pp | ||||
To disable MSI interrupts for all | To disable MSI interrupts for all | ||||
.Nm | .Nm | ||||
driver instances, set this tunable value in | driver instances, set this tunable value in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | |||||
This can be used to determine whether the max_chains tunable should be | This can be used to determine whether the max_chains tunable should be | ||||
increased to help performance. | increased to help performance. | ||||
.Pp | .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 current number of free PRP pages is stored in the | |||||
dev.mpr.X.prp_pages_free | |||||
.Xr sysctl 8 | |||||
variable. | |||||
PRP pages are used by NVMe devices for I/O transfers, much like Scatter/Gather | |||||
lists. | |||||
.Pp | |||||
The lowest number of free PRP pages seen since boot is stored in the | |||||
dev.mpr.X.prp_pages_free_lowwater | |||||
.Xr sysctl 8 | |||||
variable. | |||||
.Pp | |||||
The number of times that PRP page allocations have failed since boot is | |||||
stored in the | |||||
dev.mpr.X.prp_page_alloc_fail | |||||
.Xr sysctl 8 | |||||
variable. | |||||
.Pp | |||||
To set the maximum number of pages that will be used per I/O for all adapters, | To set the maximum number of pages that will be used per I/O for all adapters, | ||||
set this tunable in | set this tunable in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
hw.mpr.max_io_pages=NNNN | hw.mpr.max_io_pages=NNNN | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
To set the maximum number of pages that will be used per I/O for a specific | To set the maximum number of pages that will be used per I/O for a specific | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
Send SSU to SSDs, but not to HDDs. | Send SSU to SSDs, but not to HDDs. | ||||
This is the default value. | This is the default value. | ||||
.It 2 | .It 2 | ||||
Send SSU to HDDs, but not to SSDs. | Send SSU to HDDs, but not to SSDs. | ||||
.It 3 | .It 3 | ||||
Send SSU to both HDDs and SSDs. | Send SSU to both HDDs and SSDs. | ||||
.El | .El | ||||
.Pp | .Pp | ||||
To control the feature for a specific adapter, set this tunable value in | To control this feature for a specific adapter, set this tunable value in | ||||
.Xr loader.conf 5 : | .Xr loader.conf 5 : | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
dev.mpr.X.enable_ssu | dev.mpr.X.enable_ssu | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
The same set of values are valid when setting this tunable for all adapters. | The same set of values are valid as when setting this tunable for all adapters. | ||||
.Pp | .Pp | ||||
SATA disks that take several seconds to spin up and fail the SATA Identify | SATA disks that take several seconds to spin up and fail the SATA Identify | ||||
command might not be discovered by the driver. | command might not be discovered by the driver. | ||||
This problem can sometimes be overcome by increasing the value of the spinup | This problem can sometimes be overcome by increasing the value of the spinup | ||||
wait time in | wait time in | ||||
.Xr loader.conf 5 | .Xr loader.conf 5 | ||||
with the | with the | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
Show All 9 Lines | |||||
with the | with the | ||||
.Bd -literal -offset indent | .Bd -literal -offset indent | ||||
dev.mpr.X.spinup_wait_time=NNNN | dev.mpr.X.spinup_wait_time=NNNN | ||||
.Ed | .Ed | ||||
.Pp | .Pp | ||||
tunable. | tunable. | ||||
NNNN is the number of seconds to wait for SATA devices to spin up when they fail | NNNN is the number of seconds to wait for SATA devices to spin up when they fail | ||||
the initial SATA Identify command. | the initial SATA Identify command. | ||||
.Pp | |||||
The driver can map devices discovered by the adapter so that target IDs | |||||
corresponding to a specific device persist across resets and reboots. | |||||
In some cases it is possible for devices to lose their mapped IDs due to | |||||
unexpected behavior from certain hardware, such as some types of enclosures. | |||||
To overcome this problem, a tunable is provided that will force the driver to | |||||
map devices using the Phy number associated with the device. | |||||
This feature is not recommended if the topology includes multiple | |||||
enclosures/expanders. | |||||
If multiple enclosures/expanders are present in the topology, Phy numbers are | |||||
repeated, causing all devices at these Phy numbers except the first device to | |||||
fail enumeration. | |||||
To control this feature for all adapters, set the | |||||
.Bd -literal -offset indent | |||||
hw.mpr.use_phy_num | |||||
.Ed | |||||
.Pp | |||||
tunable in | |||||
.Xr loader.conf 5 | |||||
to one of these values: | |||||
.Bl -tag -width 6n -offset indent | |||||
.It -1 | |||||
Only use Phy numbers to map devices and bypass the driver's mapping logic. | |||||
.It 0 | |||||
Never use Phy numbers to map devices. | |||||
.It 1 | |||||
Use Phy numbers to map devices, but only if the driver's mapping logic fails | |||||
to map the device that is being enumerated. | |||||
This is the default value. | |||||
.El | |||||
.Pp | |||||
To control this feature for a specific adapter, set this tunable value in | |||||
.Xr loader.conf 5 : | |||||
.Bd -literal -offset indent | |||||
dev.mpr.X.use_phy_num | |||||
.Ed | |||||
.Pp | |||||
The same set of values are valid as when setting this tunable for all adapters. | |||||
.Pp | |||||
.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 | ||||
▲ Show 20 Lines • Show All 48 Lines • Show Last 20 Lines |