 |
Index for Section 7 |
|
 |
Alphabetical listing for E |
|
 |
Bottom of page |
|
emx(7)
NAME
emx - 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 subsystem 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 a 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
IO 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 I/O 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 command /sbin/sysconfig -r command. If you want custom settings
to persist across a reboot, ensure that the values are written in the
system configuration file. To write the values into the system
configuration 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 Channel
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 IO 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 during 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 percentage 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.
RESTRICTIONS
Due to the way sense data is handled in FCP, CAM SCSI I/O CCB's 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 supported.
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 command:
# /sbin/sysconfig -r io 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
successfully. The emx driver continues to send and receive commands 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.
Now, 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 equivalent 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.
FILES
/sys/BINARY/emx.mod
The device driver module.
RELATED INFORMATION
SCSI(7), rz(7).
See Also
System Administration
emxmgr(8), sys_attrs_io(5), sysconfig(8), and sysconfigdb(8).
 |
Index for Section 7 |
|
 |
Alphabetical listing for E |
|
 |
Top of page |
|