Introduction
This blog describes improvements in AIX/VIOS Fibre channel(FC) device driver stack to update ODM attributes - num_cmd_elems and io_dma concurrently while the device is in configured state.
The attribute num_cmd_elems controls the maximum number of pending I/O requests in a FC adapter and io_dma controls the amount of I/O DMA region that the adapter driver requests while configuring the FC HBA.
What’s New
The FC adapter driver allocates resources based on the ODM default value of the corresponding attribute during configuration of the driver. Starting from VIOS 4.1.0.10 & AIX 7.3 TL0 SP0 these attributes can be changed concurrently for FC HBAs that has data rates equal to or more than 16Gb.
Note: In case of VIOS the below mentioned commands need to be run after ‘oem_setup_env’ command.
How the values of these attributes can be changed in older VIOS/AIX releases
|
How attributes can be changed from releases VIOS 4.1.0.10, AIX 7.3 TL0 SP0 and beyond
|
# rmdev -Rl fcsX # chdev -l fcsX -a num_cmd_elems=<n> # cfgmgr -l fcsX
|
# chdev -l fcsX -a num_cmd_elems=<n> -U
|
# rmdev -Rl fcsX # chdev -l fcsX -a io_dma=<n> # cfgmgr -l fcsX
|
# chdev -l fcsX -a io_dma=<n> -U
|
Monitoring the resource availability
For the heavy I/O workload, when the configured resources are not sufficient, the corresponding I/O request is held in pending queues of the drivers temporarily, till the resources are available. And to reflect the shortage of such resources, the driver updates some of the driver’s statistics. The user can see such statistics through fcstat command output fields No Command Resource Count and No DMA Resource Count as shown below.
$ fcstat fcs0
FIBRE CHANNEL STATISTICS REPORT: fcs0
. . . .
FC SCSI Adapter Driver Information
No DMA Resource Count: 1314241
No Adapter Elements Count: 0
No Command Resource Count: 2335493
. . . .
$
Steps for concurrent update
When fcstat reports shortage for such resources the user can update these attributes concurrently as shown below.
Note: In case of VIOS the below mentioned commands need to be run after ‘oem_setup_env’ command.
# lsattr -El fcs0 | grep num_cmd_elems
num_cmd_elems 1024 Maximum number of COMMANDS to queue to the adapter True+
# lsattr -Rl fcs0 -a num_cmd_elems
200...2048 (+1)
# chdev -l fcs0 -a num_cmd_elems=2048 -U
fcs0 changed
# lsattr -El fcs0 | grep num_cmd_elems
num_cmd_elems 2048 Maximum number of COMMANDS to queue to the adapter True+
# lsattr -El fcs0 | grep io_dma
io_dma 512 IO_DMA True+
# lsattr -Rl fcs0 -a io_dma
256...2048 (+16)
# chdev -l fcs0 -a io_dma=2048 -U
fcs0 changed
# lsattr -El fcs0 | grep io_dma
io_dma 2048 IO_DMA True+
Contacting the PowerVM Team
Have questions for the PowerVM team or want to learn more? Follow our discussion group on LinkedIn IBM PowerVM or IBM Community Discussions.