Socket lock contention enhancements (APAR PJ45093)
Jamie_Farmer 110000MA47 Visits (399)
Socket lock contention enhancements improve the efficiency of TCP/IP and socket API processing on the z/TPF system.
In the z/TPF system, the socket block lock is extensively used in processing TCP/IP and socket APIs. TCP/IP and socket API processing on different I-streams try to hold the socket block lock, which can cause contention. This enhancement improves the efficiency of TCP/IP, focusing primarily on the TCP/IP IP scan processing.
The TCP/IP IP scan processing needs to serially search the AOR timer chain, which is the chain of sockets with an activate_on_receipt or activate_on_accept pending. In the z/TPF system, this chain can contain thousands of sockets. Before this enhancement, the z/TPF system processed the entire AOR timer chain when holding the socket block lock. This action caused the socket lock to be held for more than 40 - 50 ms when processing this chain, effectively locking out the rest of the system from doing any TCP/IP processing. With this enhancement, the TCP/IP IP scan processing for the AOR timer chain does not hold the socket lock for more than 5 - 10 ms. If the processing exceeds the lock hold time, the location within the AOR timer chain is saved, a new task is scheduled, and the lock is released to allow other TCP/IP processing to obtain the socket lock. When the scheduled task is processed, the AOR timer chain processing continues from where it left off.
In addition, the following other changes were made to reduce the socket lock contention within the TCP/IP code:
For more information about APAR PJ45093, see the APEDIT.