HBA max_xfer_size

IBM

Audience
Public
Product
FlashArray
Technology Integrations
IBM
Source Type
Documentation

Everpure supports a maximum read and write transfer size of 4MB. The Pure AIX ODM definition sets the default hdisk device max_transfer as 4MB (0x400000) and that would be the value used if the adapter max_xfer_size is equal or larger than that.

The default max_xfer_size for most transport adapters is 1MB (0x100000), and the configuration for the hdisk max_transfer may reduce the configured value on discovery to the highest max_xfer_size of the adapters if none of them can reach the default max_transfer value. If necessary, consult with IBM support before changing this setting, as changing this setting may have a dependency on the immediate next device to support a size equal or larger than the one that is being setup, and it could, for example, break boot from SAN for an LPAR if the virtual HBA is set to a value larger than the one configured in the physical HBA in the VIO server.

Additionally, the value of max_xfer_size should be equal or greater than the configured hdisk max_transfer value for all the different adapters that may provide paths to the hdisk. Otherwise some of the paths may be unable to provide IO depending on the IO size. Similar consideration is required in the case of Live Partition Mobility (LPM).

Finally, consider that changing max_xfer_size requires the adapter to be in a defined state, or use the -P flag and perform a reboot for the change to take place.

In the example below, we set the max_xfer_size to the AIX maximum of 4MB for the fcs0 device. Please repeat this for all devices.


# chdev -l fcs0 -a max_xfer_size=0x400000 -P 
fcs0 changed
Note:

This change requires a reboot of the LPAR or disable and re-enable the fcs interface for the new value to be in use.

If the LPAR is a VIO Client using a virtual FC adapter, the attribute should be changed first in the VIO Server physical port (AIX Recommended Settings).

You can run the following command to verify the HBA max_xfer_size:


/# lsattr -l fcs0 -E
 DIF_enabled no DIF (T10 protection) enabled True
 bus_intr_lvl Bus interrupt level False
 bus_io_addr 0xff800 Bus I/O address False
 bus_mem_addr 0xffe76000 Bus memory address False
 bus_mem_addr2 0xffe78000 Bus memory address False
 init_link auto INIT Link flags False
 intr_msi_1 90645 Bus interrupt level False
 intr_priority 3 Interrupt priority False
 lg_term_dma 0x800000 Long term DMA True
 max_xfer_size 0x400000 Maximum Transfer Size True
 num_cmd_elems 500 Maximum number of COMMANDS to queue to the adapter True
 pref_alpa 0x1 Preferred AL_PA True
 sw_fc_class 2 FC Class for Fabric True
 tme no Target Mode Enabled True