Peter 

Thank you for explaining it I really think I get it 

I agree I can generalize a recovery I am changing file192 thinking of it as 
estate 

Including cases where there is abend in 

1) SVC 
2) PC 

For these I am going to locate the user registers and off set 

And include for all cases when appropriate 64 bit regs.  

Thank you again  

> On Feb 5, 2024, at 3:20 AM, Peter Relson 
> <0000056a472f7cb4-dmarc-requ...@listserv.ua.edu> wrote:
> 
> The fact that registers are saved (or at least land) in the "new RB" and the 
> PSW in the "old RB" was described many posts earlier. That applies in all 
> cases where a new (not "first") RB is created. Note that just when that 
> saving happens can be kind of funky for a case such as XCTL(X).
> 
> The problem that keeps cropping up in the posts is that the OP keeps making 
> judgments and assumptions that are not true (sometimes because they are 
> wrong, sometimes because they are incomplete). And these are under the guise 
> of enhancing a general recovery routine that never was a general recovery 
> routine, and based on the questions being asked will not be (because it won't 
> be suitable for an FRR). Now if it's a general ESTAE-type recovery routine, 
> perhaps that would be a reasonable goal.
> 
> If we want to be picky, System 0C1 is not an abend code. System 0C4 is not an 
> abend code. These are completion codes which might or might not result from 
> ABEND.
> <snip>For purposes of example the hardware gives control to the program check
> FLIH for interrupt code 4 the program check FLIH issues ABEND abend code
> 0C4 reason 4</snip>
> Well, not exactly. Let's try to be accurate. The program check FLIH issues 
> SOMETHING that results in recovery seeing a system completion code of 0C4 
> reason 4. That SOMETHING happens to be CALLRTM TYPE=PROGCK, about which I 
> will not provide any additional information. There is no ABEND at this point.
> 
> By the way there are more reason codes for 0C4 than 4,10,11 as of 
> z/Architecture.
> We keep saying that not everything that disrupts a running work unit creates 
> an RB. It is therefore obviously the case that the registers are saved 
> somewhere; they are not in a "new RB" when there is no new RB.
> 
> Consider the case where there was a program check when there is an FRR. RTM 
> understands how to convert a program interrupt code to a system completion 
> code. It does so, so that it can place that in the proper areas (such as the 
> SDWA and TCBCMPC and STCBCMPC), and it got the time of error regs from where 
> the PC FLIH put them. If the FRR retries, no new RB was ever involved.
> But let's say that all FRRs percolate, now this is where my hint comes in. 
> RTM issues an SVC D. This is unlike an application-issued (or other 
> system-issued) SVC D. But it is still an SVC D which is a type 2 SVC and thus 
> creates a new RB. Within this RB, the system places the time of error regs 
> that had been stashed earlier.If you want to find the time of error regs and 
> you can find RTM's SVRB, they are in there.
> 
> As to the question about high halves (and ARs for that matter), they are 
> saved in the XSB that corresponds to the RB that has the low halves.
> 
> There was mention about SVC D as being an SVC that can be issued in any 
> environment, such as being disabled (where normal SVCs cannot). That is not 
> accurate either (although it's not unreasonable to think of it that way). 
> When any SVC (x'D' is included) is issued in an improper-for-SVC environment, 
> the same thing happens - the SVC FLIH issues CALLRTM TYPE=SVCERR. You don't 
> get an RB for CALLRTM for a type 2 SVC (x'D' is included) issued in an 
> improper-for-SVC environment.  Flow then proceeds similar to the program 
> interrupt case through FRR processing. If an FRR retries (ignoring a nested 
> FRR), that's that, no "abend" SVC was successfully processed. If we need to 
> get to RTM 2 for ESTAE (or even task termination) processing, then the 
> special SVC D is issued.
> 
> Peter Relsonz/OS Core Technology Design
> 
> 
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to