emx(7)emx(7)NAMEemx - Device Driver for the Emulex Fibre Channel Host Adapter
SYNOPSIS
bus emx0 at pci? controller scsiX at emx0 bus emx1 at pci? controller
scsiY at emx1
.
.
. bus emxN at pci? controller scsiZ at emxN
DESCRIPTION
The emx driver controls and manages the Emulex Fibre Channel Host
Adapter. The emx driver is fully integrated with the CAM SCSI I/O sub‐
system to provide connectivity to FCP (Fibre Channel Protocol, such as
SCSI) devices attached via the Fibre Channel adapter. In addition to
acting as an FCP initiator, the emx driver also functions as an FCP
target. CAM target mode peripheral drivers are also supported.
The emx driver currently provides Class 3 operation in a switch-based
fabric configuration.
Tuning the EMX Driver
Some Fibre Channel configurations become busy dealing with QUEUE FULL
responses that are generated by busy devices. When this occurs, not
enough I/O requests are completed successfully and the host CPU can
fail the busy devices.
If such problems occur, you can tune the performance of the emx driver
by manipulating the values of the following kernel configuration
attributes, which are part of the emx subsystem: NPort_Max_IOs (default
value 256) NPort_Min_IOs (default value 20) NPort_IORamp_Delay (default
value 1) NPort_IORamp_Percent (default value 10)
Configure these attributes at run time, without rebooting the system by
using the /sbin/sysconfig -r command. If you want custom settings to
persist across a reboot, ensure that the values are written in the sys‐
tem configuration file. To write the values into the system configura‐
tion file, create a stanza file and use the /sbin/sysconfigdb command.
These system configuration attributes enable you to limit I/O via an
N_Port. An N_Port is a hardware entity attached to the end of a Fibre
Channel link. It manages the transmission and reception of Fibre Chan‐
nel I/O in the form of primitives and frames. Each N_Port is identified
by a 64-bit worldwide name (WWN) known as the port name. In a Point-to-
Point topology, an N_Port connects to another N_Port via a link. In a
fabric topology, the N_Port connects to an F_Port via a link.
The attributes enable an I/O limiting feature, allowing you to tune I/O
when devices become too busy to cope with the I/O rate. When I/O is
limited to the correct rate, the emx driver allows only the value of
NPort_Max_IOs commands to be outstanding to an N_Port at one time dur‐
ing normal use. If the device becomes too busy to accept commands the
host responds with a QUEUE FULL status message. The QUEUE FULL
response triggers an internal temporary maximum I/O limit. This limit
is equal to the volume of commands presently outstanding to the N_Port
to which the device is attached.
The internal temporary maximum I/O limit is never less than the value
that you specify for NPort_Min_IOs. The limit increases by the per‐
centage value specified for NPort_IORamp_Percent. This percentage
increase repeats for the time value (in seconds) that you specify for
NPort_IORamp_Delay. The process continues until the internal temporary
maximum I/O limit is equivalent to the value of NPort_Max_IOs or when
another QUEUE FULL response is received from the device. This logic
limits the volume of commands sent to a busy device while maximizing
the volume of I/O in a busy system. See the EXAMPLES section for some
typical usage scenarios.
Note
Do not attempt to set the value of NPort_Max_IOs to less than the value
of NPort_Min_IOs.
Fibre Channel can expect to encounter bit-level errors at the link
level about every 8 minutes on a 2 GB link. Read and write tape opera‐
tions can span this length of time or more due to the record sizes
being transferred and the speed of tape devices. In addition, Class 3
deliver of FCP-SCSI commands means that a busy SAN can drop packets if
it needed. The longer a command takes to complete on the SAN, the more
likely it is to encounter either of these conditions.
If such problems occur, you can tune the emx driver by manipulating the
values of the following kernel configuration attribute, which is part
of the emx subsystem: erp_ller (default value 0)
RESTRICTIONS
Due to the way sense data is handled in FCP, CAM SCSI I/O CCBs that
have AUTOSENSE disabled (CAM_DIS_AUTOSENSE) will be rejected with a
CAM_PROVIDE_FAIL status.
Direct connections without an intervening switch or hub are not sup‐
ported.
Due to the SCSI-2 limitations inherent in the design of target mode
operation in the CAM specification, specifically in the area of sense
data handling, tagged command queuing is not supported in the target
mode portion of the emx driver.
EXAMPLES
To turn off I/O limiting, use the following run-time configuration com‐
mand: # /sbin/sysconfig -remx NPort_Max_IOs=0xFFFFFFFF
Using the default values of the attributes, assume the emx
driver has 30 commands outstanding to an N_Port. When the driver
tries to send another command, the command is rejected with
QUEUE FULL status from the device. This event triggers the emx
driver to decrease the internal I/O limit from NPort_Max_IOs to
a value of 30. The decreased limit prevents the emx driver from
sending new commands until an outstanding command completes suc‐
cessfully. The emx driver continues to send and receive com‐
mands with only 30 commands outstanding to the N_Port at one
time. This status continues until the time value of
NPort_IORamp_Delay (by default, one second) has elapsed. At
this point the internal I/O limit increases by the absolute
value calculated from the following equation: (NPort_Max_IOs *
NPort_IORamp_Percent)/100
For example: (256 * 10)/100 = 25
The value of the internal I/O limit then becomes 30 + 25 = 55.
In this scenario, the internal I/O limit increases every one
second, which is the current time value set for the
NPort_IORamp_Delay attribute. The procedure repeats until the
internal I/O limit is equivalent to 256, the current value of
NPort_Max_IOs.
Assume that the emx driver has only five commands outstanding to
an N_Port and it receives a QUEUE FULL response from one of the
outstanding I/Os. The emx driver automatically decreases its
internal I/O limit from the value of NPort_Max_IOs to be equiva‐
lent to 20, the current value of NPort_Min_IOs. This decrease
occurs because the emx driver cannot limit the outstanding I/Os
to less than the current value of NPort_Min_IOs. To turn on
Link Level Error recovery, use the following run-time configura‐
tion command: # /sbin/sysconfig -remx erp_ller=0x1
The deafult value is 0.
FILES
The device driver module
SEE ALSOSCSI(7), rz(7)hwmgr(8), sys_attrs_io(5), sysconfig(8), sysconfigdb(8)
Hardware Management
emx(7)