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
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