The processing for SYNCH is the same whether it is issued from a PRB or an SVRB; the caller's PSW goes into the old RB and the caller's general registers go into the new PRB.
<http://wwww.bitsavers.org/pdf/ibm/370/MVS_XA/LY28-1765-0_MVS_XA_Version_2_Release_2.0_System_Logic_Library_Supervisor_Control_Jun1987.pdf> is newer. Sometimes they get better. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר ________________________________________ From: IBM Mainframe Discussion List <[email protected]> on behalf of Michael Stein <[email protected]> Sent: Sunday, February 4, 2024 4:06 AM To: [email protected] Subject: Re: Registers in the RB On Sat, Feb 03, 2024 at 08:20:08PM -0500, Joseph Reichman wrote: > It was my understanding probably erroneously that when a RB I guess I am > talking about a PRB gets interrupted and that can happen in one of two > instances > > 1) An SVC > 2) A Program check e.g. S0C1,4, There are many interrupts possible: External, I/O, Program, SVC plus a few others. Also including software caused like asynchronous exit routines. The bottom level of the system has to deal with these and one of it's main concerns is where to save the state of whatever was running when the interrupt happened. Since there are multiple CPUs and many many tasks & SRBs etc, it's important that the state information (PSW & registers) are only saved in areas others won't use at the same time otherwise they would get overlay by another interrupt or processor leading to disaster. While the OS interrupt routines have processor related storage they can only use this during the time they are disabled. If they are going to return to the interrupted work then they can restore them and return, otherwise they must move/save the state elsewhere before they enable. For an OS task the registers and PSW are saved in task related control blocks, a combination of the TCB and RBs. The SVC interrupt handler save state depending on the type of SVC: type 1: (required to hold local lock, so can use areas address space related)) registers -> TCBGRS (?) PSW -> some address space related area (?) type 2,3,4: (doesn't require holding local lock so can't use address space related area) . SVC caller's PSW & interupt code in top RB on TCB RB chain . gets SVRB, puts SVC issuer registers into this SVRB and addes it to the top of the TCB RB chain so: . SVRB register contain the SVC issuer's registers . SVRB PSW is the SVC routines PSW . TCBGRS is the SVC routines registers Keep in mind that a type 2,3,4 SVC can issue another SVC (which will if type 2,3,4 add another SVRB). Or it might issue the SYNCH SVC resulting in an RB being added to the RB chain (holding the SVC issuing SYNCH's PSW. Where the SVCs routine registers go I don't know. Perhaps SYNCH with restore=yes is newer? Also IRBs for asynchronous exit routines can be added to the RB chain. In this case the interrupted registers will be in the IRB register save area and the interrupted PSW will be in what was the top RB before the IRB was added. I don't know if IBM makes available current logic manuals but old ones exist like: https://archive.org/details/bitsavers_ibm370OSVSystemLogicLibraryVol4Rel3.7Jul76_23459458 It's not clear how much change has happened since then, but some of the basic concepts likely haven't changed all that much. Look up how the SVC interrupt handler works... Or an yet older manual for MVT, no SRBs just tasks, usually only one CPU, but similar TCB/RB structures: https://ia903101.us.archive.org/20/items/bitsavers_ibm360osR1TSupervisorRel17ProgramLogicNov1968_55700209/Y28-6659-3_MVT_Supervisor_Rel_17_Program_Logic_Nov1968.pdf PS: Do the manuals get worse the newer they are? ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
