IBM Mainframe Discussion List <[email protected]> wrote on 11/21/2008 
01:40:45 PM:

> I'm not saying that I agree that GETMAIN should initialize the storage.
> I am just saying that the way storage is handled has changed in z/OS
> 1.10 and it bit us in vendor code. As I said earlier, programming 101
> says that you should initialize any area you plan on using so, if the
> program was coded correctly, changes in GETMAIN wouldn't have caused
> this problem.
> That being said, can you guarantee that all of your old assembler
> programs initialize their working storage? 

  I thought we had already discussed this on IBM-MAIN, but further
investigation reveals that it was on ASSEMBLER-LIST: 



Date:         Tue, 19 Aug 2008 16:05:19 -0400
Reply-To:     IBM Mainframe Assembler List 
<[EMAIL PROTECTED]>
Sender:       IBM Mainframe Assembler List 
<[EMAIL PROTECTED]>
From:         Jim Mulder <[EMAIL PROTECTED]>
Subject:      Re: Efficiency of code
In-Reply-To:  <[EMAIL PROTECTED]>
Content-Type: text/plain; charset="US-ASCII"
IBM Mainframe Assembler List <[EMAIL PROTECTED]> wrote on
08/19/2008 03:33:27 AM:

> Jim Mulder wrote:
>
> > In z/OS 1.10, for low private subpools, GETMAIN has been
> > changed to allocate forward from the beginning of a page
> > boundary.
>
> About time. That was one of my OS/360 MVT mods. It enabled
> lots of compilers (especially PL/I) and lots more programs
> to run in ~100K regions, a critical requirement when a 1MB
> machine was still rare and very costly.
>
> But it also broke quite a few things, which we had to ZAP
> (preferable then to making a source mod given how hard it
> was to obtain the optional material [source] for a moving
> target [i.e., elements changed frequently by PTFs]). Code
> in some IBM components actually depended upon the odd way
> (which was never explained even if it was documented) that
> GETMAIN worked.
>
> Did anything fall out as a consequence of this change in
> z/OS 1.10 system testing?  If so, I would find that very,
> very amusing.

  DF/HSM, Program Loader, and a local test tool were
casualties - fewer than I was anticipating.  Less amusing
will be possible fallout with customer applications, but
we do have an undocumented parmlib switch to revert to the
old behavior which IBM Level 2 support can direct the
customer to use as a bypass if needed.

> Did the fix also include (even inadvertently) a fix to
> the problem of (for example) a program that repeatedly
> OBTAINs 2056 bytes of storage? In the past, this would
> cause 2056 bytes to be allocated from a brand-new 4K
> page, each time, instead of the 2056 byte areas being
> allocated adjacent to one another. Combining adjacent
> areas into the same DQE was also one of my OS/360 MVT
> GETMAIN mods.  Sadly, it was judged that OS/VS[2] made
> that mod unnecessary (since more [virtual] storage was
> then available to us than "we would ever use"), so the
> mod didn't get carried forward. Later, just before the
> arrival of MVS/XA, the problem came back, and VSCR was
> again a hot issue.

 That was the reason for doing this.  In tests of how
long it takes to open 100,000 data sets in the DB2 address
space, a lot of time was spent scanning the long DQE/FQE
chains for subpool 252, due to small GETMAINs done by OPEN.
This change greatly reduced the number of DQEs/FQEs.

  However, the merging of new DQE space with an older FQE
is done only for request sizes less than 8K, since we had
to preserve the unfortunately documented statement that
requests for at least 8K from a pageable private subpool
are guaranteed to be zeroed by the system.

Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY


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

Reply via email to