Obvious application-level solution: Make sure your program occupies whole pages 
by adding adjusted DC XLnnnn at the end to get to a 4096-byte boundary.

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
Charles Mills
Sent: Monday, February 8, 2021 11:57 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LINK vs LOAD/CALL.

Storage protection is page by page. So ... design tradeoff decision:

- Leave any part of the program that occupies a partial page unprotected.
- "Waste" the remainder of the partially-occupied page.

IBM obviously chose the former.

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Seymour J Metz
Sent: Monday, February 8, 2021 8:51 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LINK vs LOAD/CALL.

> Therefore, any parts of the program that are on partial pages are not
page-protected.

Ouch! Why?


--
Shmuel (Seymour J.) Metz
https://urldefense.com/v3/__http://mason.gmu.edu/*smetz3__;fg!!Ebr-cpPeAnfNniQ8HSAI-g_K5b7VKg!apqdxr2kgy4OgUVhbDDDdXnsbRfElo2axM6Vn6NTRjbtS69vfcQNi7VAwPYOgk9z7iWnlA$
 

________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Peter Relson [rel...@us.ibm.com]
Sent: Monday, February 8, 2021 9:13 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LINK vs LOAD/CALL.

<snip>
The effect of REFRPROT has long been enforced for modules loaded from APF 
libraries.
</snip>

Only for non-key-0 programs. Putting code into key 0 storage is not all that 
REFRPROT does.

<snip>
Does REFRPROT have a "warn" setting?
</snip>
No. What would it warn about? That you loaded a refreshable program? You can't 
know it won't work until it doesn't work. It is easy enough to scan your 
libraries for things that are marked refreshable.

<snip>
... one of our interface routines to Adabas has done this for more than 40 
years.
</snip>
But now there is an intrinsic penalty from mixing I-cache and D-cache but 
presumably not enough to merit changing.

<snip>
Any LMOD marked "RF" (REFR) will abend S0C4-4 if it modifies itself during 
execution.
</snip>
If not key 0, yes. If key 0, only if executing within one of the full pages of 
the load module. If the module storage occupies a partial page, that partial 
page is not protected:
"Use the REFRPROT statement type to specify that REFR programs are protected 
from modification by placing them in key 0, non-fetch protected storage, and 
page protecting the full pages. Therefore, any parts of the program that are on 
partial pages are not page-protected."

Peter Relson
z/OS Core Technology Design
--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

----------------------------------------------------------------------
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