On Thu, 12 Jun 2008 22:41:37 -0400, Jim Mulder wrote: >IBM Mainframe Discussion List <[email protected]> wrote on 06/12/2008 >02:14:24 PM: > >> We just opened APAR OA25468 against z/OS UNIX. If you run with REFRPROT >> in PROGxx, you can be hit by this. >> >> IIUC, z/OS UNIX fork processing uses the OC instruction, while in PSW >> key zero, to WRITE on EVERY PAGE of EVERY MODULE in the private area of >> the address space! > > That's a bit of an exageration. Every page of every program object >which is eligible for deferred page mode loading would be more accurate >(not sure whether this includes ones whose pages have already all been >loaded or not). > > Anyway, most likely, the OC will be changing to be a TM with a mask >of x'00'. > Ah, the problem does arise from deferred loading. But lots of questions:
Is x'00' better than other mask values? Why? Is TM preferable to IC or ICM or L or LH or CLC or ...? (What's the fastest way to clear a register?) Was there any good rationale for a write operation rather than just a read operation to each page? Was it just a developer's naive presumption that the pages must be immediately copied rather than just fetched? Will TM perhaps cause pages that have previously been loaded, then paged out, to be re-fetched, perhaps unnecessarily. The worst case is when the program object has been loaded (but deferred) from a STEPLIB which is allocated with an exclusive ENQ. Clearly, there's no way the child can load the pages after the fork(). Even prior to the advent of PROGxx REFRPROT, weren't refreshable load modules from an authorized STEPLIB loaded into a write- protected key? If so, it's surprising that the problem didn't surface earlier or that it does not occur even in the absence of REFRPROT. What happens if the parent process LOADs a module (not necessarily eligible for deferred page loading) prior to fork(), then after the fork() either the parent or the child, but not both, DELETEs that module? I suppose that if the Content Supervision entries are copied (or COW) on the fork() things simply work. -- gil ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

