Provided are a method, system, and computer program product in which a plurality of interfaces that share a plurality of resources in a storage controller are maintained. In response to an occurrence of a predetermined number of operations associated with an interface of the plurality of interfaces, an input is provided on a plurality of attributes of the storage controller to a machine learning module. In response to receiving the input, the machine learning module generates an output value corresponding to a number of resources of the plurality of resources to allocate to the interface in the storage controller.
In further embodiments, the plurality of interfaces comprise a plurality of ports of a host bus adapter that communicatively couples the storage controller to a host computational device. The plurality of resources comprise a plurality of task control blocks for executing a plurality of input/output (I/O) operations that are received by the host bus adapter from the host computational device.
In additional embodiments, the plurality of attributes includes: a measure of a total number of I/O operations currently active in the host bus adapter; a measure of total number of I/O operations currently active on the port; a measure of a total number of rejected I/O operations in the host bus adapter; and a measure of a total number of rejected I/O operations from the port.
In yet additional embodiments, the plurality of attributes includes: a measure of an average response time for I/O operations; a measure of a current queue length on the port; a measure of a current number of dedicated TCBs on the port; and a measure of a current number of shared TCBs in the host bus adapter.