Control starts at block 802 in which a predetermined number of I/O operations have occurred in a host bus adapter 114. The machine learning module 106 provides (at block 804) via forward propagation, the output value for a port of the host bus adapter. The margin of error is computed and back propagation is used (at block 808) to train the machine learning module 106. The margin of error is the deviation of the actual output from the expected output of the machine learning module 106, and the machine learning module 106 attempts to reduce the error while adjusting the weights and biases.
Associated with each port 902, 908 is a local queue 904, 910 of I/O requests waiting to be processed by the port, and local TCBs 906, 912 that are free to be allocated to the port for processing of I/O requests.
A global queue 914 of I/O requests and a global TCB pool 916 are also maintained, where the I/O requests in the global queue 914 may be processed by any port of the host bus adapter 114, and the TCBs from the global TCB pool 916 may be allocated to the any port of the host bus adapter 114.