A fix is available
APAR status
Closed as program error.
Error description
With the apply of apar OA46291 (ptf UA90976), IAXVP was compiled with a different option. This option resulted in an instruction that leaves register 15 content of 00000010_yyyyyyyy, where previously it resulted in the high half of the register being cleared. The x'10' in the high half is then used by the caller, unexpectedly and an Abend0C4-3B PIC3B results when in AMODE(64). This happened across a Storage Obtain/getmain call and the service documents that bits 0-31 of register 15 are unpredictable. It is good programming practice to make sure your register is cleared before you use it. Depending upon the reaction of the code/subsystem/exit that encounters the dirty Reg15, unpredictable results may occur. While an ABEND0C4 Pic3B is the more common result, other situations may occur. For example, IRLM, which received the dirty Reg15 checked it for the Return code. It was doing a Conditional Getmain and thought that the Getmain was unsuccessful (when in reality it actually was successful), so it proceeded to reattempt the Getmain only to get the same results. Without limits in place, this Getmain was issued repeatedly until storage in the address space is exhausted with an ABEND878-10, causing the job or address space to crash. If any code expects zeroes in the high half of a register, the results of what may happen when the high half is not zeroes then becomes unpredictable, based on how the application/job behaves. Additional keywords: R2964/K D/T2964 00000010 ERBMFCLS BPXLKLCP OEM software AMODE64 Verification Steps: 1. APAR OA46291 is applied (ptf UA90976 ) In a dump: ip verbx nucmap f IAXVP (you can search for any module that the ptfs changed) ip list yyyyyyyy len(x'40') *NOTE* replace yyyyyyyy withe the address under location column from verbx nucmap If one of the mentioned PTFs applied proceed to step 2. If it is not applied, this does not describe why your register may be dirty. 2. check the value of register 15 in abend registers (Abend0C4-3B) In the cases where this was observed, R15 content that is dirty is x'10', example 00000010_yyyyyyyy *NOTE* yyyyyyyy is irrelevent what content it is. 3. If an Abend0C4-3B was observed, you may see close to the abend or directly before it in the system trace that a storage obtain or getmain occurred from the program that took the Abend0C4
Local fix
By turning on the RSM Component Trace (CTRACE) the high order bits will be cleared during Ctrace processing in the module that experienced the issue. The ctrace options selected below (HSPSCROL & ALLOC2G) were chosen since they would be less likely than other RSM options to be encountered on most customer systems. However, if you either suspect that both would be likely to be encountered frequently, or experience any issues when turning on Ctrace, please contact Level2 for further recommendations on other Ctrace options that can be chosen. ---------- Turn on RSM Ctrace ---------------------------- There are two ways to turn the CTRACE on 1. From the console TRACE CT,100M,COMP=SYSRSM R xx,OPTIONS=(BUFF=(7,60),HSPCACHE),END We do not anticipate there will be any impact from this option, as it is a fairly uncommon function. If it happens that a customer does complain about a performance from the above ctrace then you may use a different CTRACE option. In that case, replace HSPCACHE with ALLOC2G. So the reply would look like R xx,OPTIONS=(BUFF=(7,60),ALLOC2G),END or 2. Through a PARMLIB member, so it is enabled at IPL automatically Create a CTIRSMxx member in PARMLIB with the following content: TRACEOPTS ON OPTIONS('BUFF=(7,60)','HSPCACHE') Add the following command to your COMMNDxx member in PARMLIB: TRACE CT,100M,COMP=SYSRSM,PARM=CTIRSMxx This will enable RSM trace at IPL time. As with option #1, if there is a performance impact from the HSPCACHE option, ALLOC2G or HSPSCROL can be chosen. ------------------------------------------------------------- You can Display the results of turning on/off the Ctrace with D TRACE,COMP=SYSRSM ------------------------------------------------------------- To turn OFF the RSM Ctrace, in case any problems arise, use TRACE CT,OFF,COMP=SYSRSM
Problem summary
**************************************************************** * USERS AFFECTED: Users of HBB7790 who * * apply apar OA46291 (PTF UA90976). * **************************************************************** * PROBLEM DESCRIPTION: ABEND0C4 PIC3B register 15 R15 dirty * * high half AMODE64 after storage * * obtain - unpredictable results * **************************************************************** * RECOMMENDATION: * **************************************************************** With the apply of apar OA46291 (PTF UA90976), IAXVP was compiled with a different option. This option resulted in an instruction that could corrupt the content of the high half of R15, where previously it resulted in the high half of R15 being cleared. This can lead to Abend0C4-3B PIC3B or unexpected results by the caller in AMODE(64). This happened across a Storage Obtain/getmain call and the service documents that bits 0-31 of register 15 are unpredictable. It is good programming practice to make sure your register is cleared before you use it.
Problem conclusion
The code in IAXVP is changed to clear the high half of the return code (R15). Additional keywords: R2964/K D/T2964
Temporary fix
********* * HIPER * *********
Comments
APAR Information
APAR number
OA48273
Reported component name
RSM - REAL STOR
Reported component ID
5752SC1CR
Reported release
790
Status
CLOSED PER
PE
YesPE
HIPER
YesHIPER
Special Attention
NoSpecatt
Submitted date
2015-07-01
Closed date
2015-08-14
Last modified date
2015-10-23
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UA78633
Modules/Macros
IAXVP
Fix information
Fixed component name
RSM - REAL STOR
Fixed component ID
5752SC1CR
Applicable component levels
R790 PSY UA78633
UP15/08/26 P F508 ®
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
23 October 2015