Download User Manual

Transcript
3. Configuration
FC/FCoE Driver Performance Tuning
When multiple I/O channels are in use, I/Os can be scheduled to an I/O channel in a
round-robin fashion, or by determining which CPU is running when the I/O is
submitted.
The default value (0) configures the driver for round-robin scheduling. A value of 1
configures scheduling by CPU.
lpfc_fcp_imax
The lpfc_fcp_imax can be configured at driver load time. It can also be set dynamically
as an sysfs entry. This parameter defines the maximum number of interrupts per
second that each adapter port will support.
Note: This parameter is only applicable for OneConnect adapters and LPe16000 and
LPe15000-series adapters.
Considerations



The lower the value set, the more completions are coalesced by the adapter,
which causes the driver to handle multiple completions under the context of
one interrupt. The higher the value, the faster an interrupt is generated for a
completed command. Therefore, a balanced or “tuned” system must be found.
A lower value equals higher interrupt latency; a higher value equals lower
interrupt latency.
Faster completions consume more system resources and CPU cycles, as the
overhead of one interrupt completes fewer commands. The value is divided by
the number of I/O channels, and each I/O channel is separately configured for
its own interrupt latency.
By default, the module parameter is configured for 50,000 interrupts per second per
adapter port. Older driver versions have a default value of 10,000.
lpfc_vector_map.sh
The lpfc_vector_map.sh script uses kernel sysfs entry points to map a specific I/O
channel (MSI-X vector-EQ/CQ/WQ tuple) to a specific CPU. The script should be run
immediately after the driver is loaded.
This script resides in /usr/sbin/lpfc. The Emulex recommends running this script by
adding the following line to /etc/modprobe.d/lpfc.conf and through /etc/rc.d for the
initial boot:
install lpfc /sbin/modprobe --ignore-install lpfc;
/usr/sbin/lpfc/lpfc_vector_map.sh
The script maps each interrupt vector allocated by the driver to a CPU, thereby
spreading the interrupt load of the ports across multiple CPUs. Each vector, with its
associated I/O channel, is sequentially mapped to a CPU in a round-robin fashion. The
number of vectors assigned to each adapter port is defined by the lpfc_fcp_io_channel
module parameter.
I/O channels, which correspond to vectors, are typically mapped to unique CPUs to
enhance the ability of the driver to run multiple FCP commands in parallel. In addition,
Emulex Drivers Version 10.4 for Linux User Manual
P011043-01A Rev. A
82