Browse Prior Art Database

Performance Improvement for System Functions

IP.com Disclosure Number: IPCOM000118575D
Original Publication Date: 1997-Mar-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 4 page(s) / 53K

Publishing Venue

IBM

Related People

Salm, I: AUTHOR [+2]

Abstract

STXIT AB, a VSE/ESA service, establishes an abnormal termination exit for a specific program (a program called SORT uses that service for recovery purposes). GETFLD (a VSE/ESA service) is used to retrieve the AB pointers which are saved in AB ptr save area A (see example below). SORT wants to protect user exits, so SORT switches STXIT AB pointers before it calls a user exit and switches back after the user exit returns. Because of the frequency (one switch per record) CPU time and non-parallel share (supervisor state) increases. SORT has to avoid the GETFLD and STXIT calls.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 71% of the total text.

Performance Improvement for System Functions

      STXIT AB, a VSE/ESA service, establishes an abnormal
termination exit for a specific program (a program called SORT uses
that service for recovery purposes).  GETFLD (a VSE/ESA service) is
used to retrieve the AB pointers which are saved in AB ptr save area
A (see example below).  SORT wants to protect user exits, so SORT
switches STXIT AB pointers before it calls a user exit and switches
back after the user exit returns.  Because of the frequency (one
switch per record) CPU time and non-parallel share (supervisor state)
increases.  SORT has to avoid the GETFLD and STXIT calls.

First, it is described how it is implemented today:

                            (Image Omitted)

Now the proposal is described:

      The area, where AB pointers are to be saved, has to be
extended.  In the example, it is area B, in this example only one
nesting level is considered.  If there are more AB exit nesting
levels, an area C has to be introduced, etc.

So the area in the example looks like:
  AB ptr save area A      AB ptr save area B
  +----------------+      +----------------+
  |       A        |      |       B        |
  +----------------+      +----------------+

      Area A holds the saved AB pointers, area B holds the AB
pointers, when the user exit is active, otherwise this area is zero.

      Now the program has to have a small AB ex...