Index Index for
Section 7
Index Alphabetical
listing for E
Bottom of page 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 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 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 /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 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 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 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 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. 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

SEE ALSO

SCSI(7), rz(7) hwmgr(8), sys_attrs_io(5), sysconfig(8), sysconfigdb(8) Hardware Management

Index Index for
Section 7
Index Alphabetical
listing for E
Top of page Top of
page