Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MPR(4)			    Kernel Interfaces Manual			MPR(4)

NAME
       mpr -- LSI Fusion-MPT 3/3.5 IT/IR 12Gb/s	Serial Attached	SCSI/SATA/PCIe
       driver

SYNOPSIS
       To compile this driver into the kernel, place these lines in the	kernel
       configuration file:

	     device pci
	     device scbus
	     device mpr

       The  driver can be loaded as a module at	boot time by placing this line
       in loader.conf(5):

	     mpr_load="YES"

DESCRIPTION
       The mpr driver provides support for Broadcom Ltd./Avago Tech (LSI)  Fu-
       sion-MPT	3/3.5 IT/IR SAS/PCIe controllers.

HARDWARE
       These controllers are supported by the mpr driver:

          Broadcom Ltd./Avago Tech (LSI) SAS 3004 (4 Port SAS)
          Broadcom Ltd./Avago Tech (LSI) SAS 3008 (8 Port SAS)
          Broadcom Ltd./Avago Tech (LSI) SAS 3108 (8 Port SAS)
          Broadcom Ltd./Avago Tech (LSI) SAS 3216 (16 Port SAS)
          Broadcom Ltd./Avago Tech (LSI) SAS 3224 (24 Port SAS)
          Broadcom Ltd./Avago Tech (LSI) SAS 3316 (16 Port SAS)
          Broadcom Ltd./Avago Tech (LSI) SAS 3324 (24 Port SAS)
          Broadcom Ltd./Avago Tech (LSI) SAS 3408 (8 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3416 (16 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3508 (8 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3516 (16 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3616 (16 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3708 (8 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3716 (16 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3816 (16 Port SAS/PCIe)
          Broadcom Ltd./Avago Tech (LSI) SAS 3916 (16 Port SAS/PCIe)

CONFIGURATION
       In all tunable descriptions below, X represents the adapter number.

       To  disable  MSI	interrupts for all mpr driver instances, set this tun-
       able value in loader.conf(5):

	     hw.mpr.disable_msi=1

       To disable MSI interrupts for a specific	mpr driver instance, set  this
       tunable value in	loader.conf(5):

	     dev.mpr.X.disable_msi=1

       To disable MSI-X	interrupts for all mpr driver instances, set this tun-
       able value in loader.conf(5):

	     hw.mpr.disable_msix=1

       To  disable  MSI-X  interrupts  for a specific mpr driver instance, set
       this tunable value in loader.conf(5):

	     dev.mpr.X.disable_msix=1

       To set the maximum number of DMA	chains allocated for all adapters, set
       this tunable in loader.conf(5):

	     hw.mpr.max_chains=NNNN

       To set the maximum number  of  DMA  chains  allocated  for  a  specific
       adapter,	set this tunable in loader.conf(5):

	     dev.mpr.X.max_chains=NNNN

       The default max_chains value is 16384.

       The   current   number	of   free   chain  frames  is  stored  in  the
       dev.mpr.X.chain_free sysctl(8) variable.

       The lowest number of free chain frames seen since boot is stored	in the
       dev.mpr.X.chain_free_lowwater sysctl(8) variable.

       The number of times that	chain frame allocations	have failed since boot
       is stored in the	dev.mpr.X.chain_alloc_fail sysctl(8)  variable.	  This
       can  be	used to	determine whether the max_chains tunable should	be in-
       creased to help performance.

       The  current  number  of	 active	 I/O  commands	 is   shown   in   the
       dev.mpr.X.io_cmds_active	sysctl(8) variable.

       The   current   number	of   free   PRP	  pages	  is   stored  in  the
       dev.mpr.X.prp_pages_free	sysctl(8) variable.  PRP  pages	 are  used  by
       NVMe devices for	I/O transfers, much like Scatter/Gather	lists.

       The  lowest  number  of free PRP	pages seen since boot is stored	in the
       dev.mpr.X.prp_pages_free_lowwater sysctl(8) variable.

       The number of times that	PRP page allocations have failed since boot is
       stored in the dev.mpr.X.prp_page_alloc_fail sysctl(8) variable.

       To set the maximum number of pages that will be used per	 I/O  for  all
       adapters, set this tunable in loader.conf(5):

	     hw.mpr.max_io_pages=NNNN

       To set the maximum number of pages that will be used per	I/O for	a spe-
       cific adapter, set this tunable in loader.conf(5):

	     dev.mpr.X.max_io_pages=NNNN

       The default max_io_pages	value is -1, meaning that the maximum I/O size
       that  will be used per I/O will be calculated using the IOCFacts	values
       stored in the controller.  The lowest value that	the  driver  will  use
       for max_io_pages	is 1, otherwise	IOCFacts will be used to calculate the
       maximum	I/O  size.   The  smaller  I/O	size  calculated  from	either
       max_io_pages or IOCFacts	will be	the maximum I/O	size used by the  dri-
       ver.

       The  highest number of active I/O commands seen since boot is stored in
       the dev.mpr.X.io_cmds_highwater sysctl(8) variable.

       Devices can be excluded from mpr	control	for all	 adapters  by  setting
       this tunable in loader.conf(5):

	     hw.mpr.exclude_ids=Y

       Y  represents  the target ID of the device.  If more than one device is
       to be excluded, target IDs are separated	by commas.

       Devices can be excluded from mpr	control	for a specific adapter by set-
       ting this tunable in loader.conf(5):

	     dev.mpr.X.exclude_ids=Y

       Y represents the	target ID of the device.  If more than one  device  is
       to be excluded, target IDs are separated	by commas.

       The adapter can issue the StartStopUnit SCSI command to SATA direct-ac-
       cess devices during shutdown.  This allows the device to	quiesce	power-
       ing down.  To control this feature for all adapters, set	the

	     hw.mpr.enable_ssu

       tunable in loader.conf(5) to one	of these values:

	     0	     Do	not send SSU to	either HDDs or SSDs.

	     1	     Send  SSU	to SSDs, but not to HDDs.  This	is the default
		     value.

	     2	     Send SSU to HDDs, but not to SSDs.

	     3	     Send SSU to both HDDs and SSDs.

       To control this feature for a specific adapter, set this	tunable	 value
       in loader.conf(5):

	     dev.mpr.X.enable_ssu

       The  same  set of values	are valid as when setting this tunable for all
       adapters.

       SATA disks that take several seconds to spin up and fail	the SATA Iden-
       tify command might not be discovered by the driver.  This  problem  can
       sometimes  be  overcome by increasing the value of the spinup wait time
       in loader.conf(5) with the

	     hw.mpr.spinup_wait_time=NNNN

       tunable.	 NNNN represents the number of seconds to wait	for  SATA  de-
       vices  to  spin up when the device fails	the initial SATA Identify com-
       mand.

       Spinup wait times can be	set for	specific adapters  in  loader.conf(5):
       with the

	     dev.mpr.X.spinup_wait_time=NNNN

       tunable.	  NNNN	is  the	 number	of seconds to wait for SATA devices to
       spin up when they fail the initial SATA Identify	command.

       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 en-
       closures.  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

	     hw.mpr.use_phy_num

       tunable in loader.conf(5) to one	of these values:

	     -1	     Only use Phy numbers to map devices and bypass  the  dri-
		     ver's mapping logic.

	     0	     Never use Phy numbers to map devices.

	     1	     Use  Phy numbers to map devices, but only if the driver's
		     mapping logic fails to map	the device that	is being  enu-
		     merated.  This is the default value.

       To  control this	feature	for a specific adapter,	set this tunable value
       in loader.conf(5):

	     dev.mpr.X.use_phy_num

       The same	set of values are valid	as when	setting	this tunable  for  all
       adapters.

DEBUGGING
       Driver diagnostic printing is controlled	in loader.conf(5) by using the
       global  hw.mpr.debug_level  and	per-device  dev.mpr.X.debug_level tun-
       ables.  One can alter the debug level for any adapter at	run-time using
       the sysctl(8) variable dev.mpr.X.debug_level.

       All debug_level variables can be	named by either	an integer value or  a
       text string.  Multiple values can be specified together by either ORing
       the  integer values or by providing a comma-separated list of names.  A
       text string prefixed by "+" adds	the specified debug levels to the  ex-
       isting  set,  while  the	prefix "-" removes them	from the existing set.
       The current debug_level status is reported in both formats  for	conve-
       nience.	The following levels are available:

	     Flag      Name	   Description
	     0x0001    info	   Basic information (enabled by default)
	     0x0002    fault	   Driver faults (enabled by default)
	     0x0004    event	   Controller events
	     0x0008    log	   Logging data	from controller
	     0x0010    recovery	   Tracing of recovery operations
	     0x0020    error	   Parameter errors and	programming bugs
	     0x0040    init	   System initialization operations
	     0x0080    xinfo	   More	detailed information
	     0x0100    user	   Tracing of user-generated commands (IOCTL)
	     0x0200    mapping	   Tracing of device mapping
	     0x0400    trace	   Tracing through driver functions

SEE ALSO
       cam(4),	cd(4),	ch(4),	da(4), mps(4), mpt(4), pci(4), sa(4), scsi(4),
       targ(4),	loader.conf(5),	mprutil(8), sysctl(8)

HISTORY
       The mpr driver first appeared in	FreeBSD	9.3.

AUTHORS
       The   mpr   driver   was	  originally	written	   by	 Scott	  Long
       <scottl@FreeBSD.org>.   It has been improved and	tested by LSI Corpora-
       tion, Avago Technologies	(formerly LSI),	and  Broadcom  Ltd.  (formerly
       Avago).

       This  manual page was written by	Ken Merry <ken@FreeBSD.org> with addi-
       tional input from Stephen McConnell <slm@FreeBSD.org>.

FreeBSD	13.2			 June 1, 2019				MPR(4)

NAME | SYNOPSIS | DESCRIPTION | HARDWARE | CONFIGURATION | DEBUGGING | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mpr&sektion=4&manpath=FreeBSD+14.0-RELEASE+and+Ports>

home | help