User Exit Daemon for zIIP Processor Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The IBM System z Integrated Information Processor (zIIP) is limited in its ability to execute certain operations, requiring frequent switching between zIIP and general-purpose processors, which incurs processing costs and inefficiencies, especially when handling user exits or code not originally designed for zIIP execution.

Innovation Solution

A system that automatically classifies user exit object code into categories based on execution eligibility, replaces ineligible operations with equivalent substitutes, and patches code to enable execution on zIIP or general-purpose processors, using a User Exit Daemon to manage and execute these operations efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If user exit code is executed on zIIP processor, then processing speed and efficiency are improved, but system reliability deteriorates due to abnormal termination when zIIP-ineligible operations are encountered

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary analysis of user exit code to identify zIIP-ineligible operations before execution. By detecting these operations in advance and preparing appropriate handling mechanisms (such as switching to general-purpose processor or providing substitute calls), the system ensures reliable execution while maintaining zIIP processing benefits for eligible code.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention introduces an intermediary layer (daemon or runtime system) that mediates between zIIP processor and user exit code. This intermediary monitors execution, detects zIIP-ineligible operations, and handles them appropriately by switching processors or providing substitute functionality, thus preventing abnormal termination while maintaining processing efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If code switching between zIIP and general-purpose processors is implemented, then operational flexibility is improved, but processing overhead and complexity increase

Engineering Contradiction:
Improveoperational flexibilityVSAvoidprocessing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The invention extracts the complexity of processor management from the user exit code itself and places it in a separate daemon or runtime system. This allows user code to remain simple while the external system handles the complex logic of determining when to switch processors, how to switch, and when to return, thereby reducing overall system complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system implements self-service mechanisms where the daemon automatically analyzes code, determines eligibility, performs switching operations, and manages processor allocation without requiring manual intervention or complex user-side implementation. This automation reduces the perceived complexity for users while maintaining operational flexibility.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11748074B2User exit daemon for use with special-purpose processor, mainframe including user exit daemon, and associated methods
Publication Date: 2023.09.05 SOFTWARE AG
  • US11748074B2 patent drawing
  • US11748074B2 patent drawing
  • US11748074B2 patent drawing

AI summary

Certain example embodiments relate to techniques for use with mainframe computing systems that include both general-purpose processors (e.g., CPs) and special-purpose processors that can be used to perform only certain limited operations (e.g., zIIPs). Certain example embodiments automatically help these special-purpose processors perform user exits and other routines thereon, rather than requiring those operations to be performed on general-purpose processors. This approach advantageously can improve system performance when executing programs including these user exits and other routines, and in a preferred embodiment, it can be accomplished in connection with a suitably-configured user exit daemon. In a preferred embodiment, the daemon and its clients can use a user exit property table or the like to communicate with one another about the state of each user exit or other routine that has been analyzed, classified, and possibly modified.