6.4.0 z/VM TCPIP looping/consuming excessive CPU
CP APAR VM66079 corrects a problem in release 6.4.0 CP code that can result in the z/VM TCPIP guest getting into a hot I/O loop where it is processing endless adapter interruptions and consuming excessive amounts of CPU.
APAR VM66079 is available for Release 6.4.0 as PTF UM35233.
Here is the APAR closing text for VM66079, which provides detailed information about this fix:
**************************************************************** * USERS AFFECTED: All customers using the z/VM TCPIP Stack * * configured with both QDIO and non-QDIO * * network connections. * **************************************************************** * PROBLEM DESCRIPTION: * **************************************************************** Unlike Linux and a z/OS guest, z/VM's TCPIP Stack configures both subchannel and adapter I/O interruptions using the same priority. This means both hardware and z/VM interruption reflection will insure no one interruption type will lock out the other. It's in this logic where z/VM's I/O interruption reflection can get into a state constantly presenting an adapter interruption to the z/VM TCPIP Stack. Once in this state, the guest remains in this hot I/O condition, causing the guest to consume an excessive amount of the CPU. CONCLUSION: z/VM's I/O interruption logic insures equal reflection of both subchannel and adapter interruptions occurring on the same interruption subclass (ISC). This is achieved by alternating the reflection of the two interruption types. First reflecting a subchannel interruption with a I/O PSW swap, followed by an adapter interruption, the next time the guest enables for an I/O interruption. If both an adapter and subchannel interruption are simultaneously pending on the same ISC, z/VM will queue an adapter interruption behind the subchannel interruption on its internal ISC queue. Queuing the adapter interruption insures z/VM alternates between subchannel and adapter interruption reflection. It is this additional queuing, which can potentially cause z/VM to get into a hot I/O situation. Once z/VM gets into a state where it had to queue an adapter interruption and then addition subchannel interruptions arrived, the z/VM logic which removes a queued interruption may cause a hot I/O condition. If this logic removes the pending interruption when there is a pending adapter interruption in hardware, it queues another adapter interruption to insure fairness. The logic assumes a pending interrupt removed from its internal ISC queue is always for a subchannel interruption. If an adapter interruption was removed from the queue, the failing logic in this case ends up queueing another adapter interruption, causing the hot I/O condition for the guest. The logic is changed to make it sensitive to the type of interruption removed from the queue. If an adapter interruption is removed from the queue, the logic will not queue another adapter interruption when there is a pending hardware interruption. The adapter interruption is merged with the one pending in the hardware and a single adapter interruption is reflected to the guest.