Max I/O's Outstanding with HDLM

From Wikistix

HDLM has an internal limit on the maximum number of outstanding I/Os at any time. If this limit is reached, errpt will report LVM_IO_FAIL errors with errno 16 (EBUSY).

At this time, DLMManager may also log errors similar to:

6189 2006/02/28 11:06:04.844 DLMManager 0001A1BA 00000203 KAPL05819-I 1141085164
  0401d800 00005333 004 000a0005 Data for maintenance: 0000010003 0000370010 0000000000 0000000000.

This can indicate that either the HDLM driver was given an I/O that was too large, or that the HDLM buffers (pbufs) are exhausted. The current HDLM pbuf count can be displayed using:

# dlmodmset -o
Inquiry Log             : on
Inquiry Log File Size   : 1000
hdisk error check flag  : off
HDLM pbuf count         : 16384
Lun Reset               : off
KAPL10800-I The dlmodmset utility completed normally.

It may be increased using:

# dlmodmset -b 65536
KAPL10805-I The setup of the HDLM execution environment ODM will be changed.
  HDLM pbuf count = 65536. Is this OK? [y/n]:y
KAPL10800-I The dlmodmset utility completed normally.

This will only take effect after either a reboot or if the HDLM driver is completely reconfigured.

The default value is 16384, and the maximum configurable value is 1000000. Increasing this value will increase AIX kernel memory use. The amount of kernel memory used by HDLM version 5.4.1-00 may be calculated using:

3 MiB + (360 bytes * maximum simultaneous I/O requests) + (4 KiB * Number of paths)

NOTE

This undesirable "feature" has been apparently fixed in HDLM 5.8.0. From the Release Notes:

[5.8.0-00 Additional Functions and Modifications]

  1. The following message, which will be output when more I/O requests than the biggest value set to the number of simultaneously issueable I/O are issued at one time and I/O was registered in the queue, has been added.
    KAPL05503-I An I/O request has been queued.