Re: COW for fork() is disappearing in z/OS 2.4
David Crayford says... > ...It would be fantastic to have bash as the default shell for z/OS but that > ain't gonna happen anytime soon :) FWIW: Here's how I tend to work on z/OS. * I leave my default login shell (in the OMVS segment) as /bin/sh. * I have my .profile/.bash_profile/.bashrc files set up to switch me to bash immediately (though my files are set up to work with /bin/sh , just in case). * I usually write shell scripts with a #!/bin/sh shebang (giving up some bash features in scripts). It works for me. I get bash interactive behavior, but my scripts don't require bash. Yes, a compromise, but one I consider acceptable. The Rocket bash port has some advantages in a mixed-encoding environment (_BPXK_AUTOCVT=ON). Since I run nearly all my shells in an emacs buffer anyway, shell interactive behavior isn't something I usually care much about anyway. :-) -- Jerry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
On Wed, 28 Aug 2019 16:13:36 +, Seymour J Metz wrote: >Could there be legal issues? Does the UNIX® certification process allow the >default shell to be anything but Bourne? > POSIX requires in some cases that it not be Bourne. POSIX shell requires tilde expansion, absent in Bourne shell. POSIX requires that system() invoke a POSIX shell. Bash may deviate. I don't know that POSIX discusses a "default shell". BTW: 534 $ X=Out; { X=In; true; }
Re: COW for fork() is disappearing in z/OS 2.4
Curses: I do feel constrained by the characteristics of an antique device. I guess that one man's Mede is another man's Persian. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of Paul Gilmartin <000433f07816-dmarc-requ...@listserv.ua.edu> Sent: Wednesday, August 28, 2019 12:18 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: COW for fork() is disappearing in z/OS 2.4 On Wed, 28 Aug 2019 12:43:12 +1000, Andrew Rowley wrote: > >> ... I'm astonished and dismayed to >> think that fork() is realized (sometimes) by sending imaginary cards >> through an imaginary card reader. >... >Unix is sending everything through an imaginary teletypewriter, is there >a difference? :-) > There is a difference. When I code a UNIX script I don't feel constrained by the characteristics of an antique device. I needn't be concerned lest my command lines exceed 71 characters requiring me to resort to splitting them and employing a bizarre and onerous continuation convention. -- gil -- 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
Re: COW for fork() is disappearing in z/OS 2.4
On Wed, 28 Aug 2019 12:43:12 +1000, Andrew Rowley wrote: > >> ... I'm astonished and dismayed to >> think that fork() is realized (sometimes) by sending imaginary cards >> through an imaginary card reader. >... >Unix is sending everything through an imaginary teletypewriter, is there >a difference? :-) > There is a difference. When I code a UNIX script I don't feel constrained by the characteristics of an antique device. I needn't be concerned lest my command lines exceed 71 characters requiring me to resort to splitting them and employing a bizarre and onerous continuation convention. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
Could there be legal issues? Does the UNIX® certification process allow the default shell to be anything but Bourne? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of David Crayford Sent: Wednesday, August 28, 2019 9:33 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: COW for fork() is disappearing in z/OS 2.4 On 2019-08-28 7:37 PM, Jerry Callen wrote: > Kirk Wolf wrote: > >> Unfortunately, bash is pretty complicated software, and updating it to do >> this is not at all easy because of the difference in semantics between >> fork()/exec() and spawn(). > Amen, brethren! :-) > > Interestingly, it looks like there is exactly ONE call to fork() in the bash > source. > > But -- it's in a function that gets called all over the place, with large > amounts of > setup and post-fork processing, on both sides (parent/child). It might be > possible to > substitute spawn in some cases but, as you noted, it wouldn't be easy. > > -- Jerry One for the "too hard basket" then Jerry?! It would be fantastic to have bash as the default shell for z/OS but that ain't gonna happen anytime soon :) > > -- > 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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
On 2019-08-28 7:37 PM, Jerry Callen wrote: Kirk Wolf wrote: Unfortunately, bash is pretty complicated software, and updating it to do this is not at all easy because of the difference in semantics between fork()/exec() and spawn(). Amen, brethren! :-) Interestingly, it looks like there is exactly ONE call to fork() in the bash source. But -- it's in a function that gets called all over the place, with large amounts of setup and post-fork processing, on both sides (parent/child). It might be possible to substitute spawn in some cases but, as you noted, it wouldn't be easy. -- Jerry One for the "too hard basket" then Jerry?! It would be fantastic to have bash as the default shell for z/OS but that ain't gonna happen anytime soon :) -- 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
Re: COW for fork() is disappearing in z/OS 2.4
Kirk Wolf wrote: > Unfortunately, bash is pretty complicated software, and updating it to do > this is not at all easy because of the difference in semantics between > fork()/exec() and spawn(). Amen, brethren! :-) Interestingly, it looks like there is exactly ONE call to fork() in the bash source. But -- it's in a function that gets called all over the place, with large amounts of setup and post-fork processing, on both sides (parent/child). It might be possible to substitute spawn in some cases but, as you noted, it wouldn't be easy. -- Jerry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
On 28/08/2019 11:52 am, Paul Gilmartin wrote: I wonder whether nowadays more address spaces are created for batch job steps or for fork()? Of course, it's environment-sensitive. Which path should be optimized? Whenever I see the message BPXAS ON INTRDR it appears the batch path is optimized. I'm astonished and dismayed to think that fork() is realized (sometimes) by sending imaginary cards through an imaginary card reader. Creating an address space on z/OS is relatively expensive, BPXAS is a reusable address space used for unix work. BPXAS ON INTRDR just means that the system has run out of idle unix address spaces and is creating more, triggered by some form of unix work. Fork may be a trigger, but it's more a resource management function than part of fork. In my test, you can see all the forks were reusing the same BPXAS STC06734. Parent tasks used STC06731 and STC06733. If the BPXAS is unused for a period of time (30 minutes?) it is shutdown and a new one will need to be created next time. Unix is sending everything through an imaginary teletypewriter, is there a difference? :-) -- Andrew Rowley Black Hill Software -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
On 27/08/2019 10:54 pm, David Crayford wrote: On 2019-08-27 8:19 PM, David Crayford wrote: Great write-up. Bash doesn't use local spawn so it always runs sub-processes in child address spaces. I have reported this so Rocket are aware and have opened a ticket. I'm not sure if it will be addressed anytime soon. Probably not. Oops. Spoke too soon there! There is no "local" spawn as the job numbers clearly show. How exactly are you deriving CPU time? Is it an accumulation of SMF30CPT CPU times? Thanks. The Derived CPU is calculated as per the description towards the bottom of the page here: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.ieag200/rec30.htm It should provide more precise values than the SMF30CPT fields, particularly when these reports add values from multiple tasks where the values are all < 0.01s. The derived values are displayed in the report with 1/1000s precision, but the underlying numbers are more precise. I can imagine it could be a big job to change the way bash works. I think it is probably more important to be able to easily incorporate new functions and fixes from the mainstream than to improve the performance of shell scripts. I wonder whether the CPU time for the forks is bash specific, or whether it is an unavoidable part of fork? Speculating on the original topic, maybe setting up COW is expensive and a full copy of the address space could even be significantly cheaper in CPU time? -- Andrew Rowley Black Hill Software -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
On a related subject: it would be fantastic IMO to patch bash for z/OS so that it used local spawn and followed _BPX_SHAREAS rules. It would perform better and also allow you to use DD's in batch shell scripts like you can with the z/OS UNIX shell. Unfortunately, bash is pretty complicated software, and updating it to do this is not at all easy because of the difference in semantics between fork()/exec() and spawn(). On Tue, Aug 27, 2019 at 7:54 AM David Crayford wrote: > On 2019-08-27 8:19 PM, David Crayford wrote: > > > > > > On 2019-08-27 8:13 PM, Andrew Rowley wrote: > >>> FWIW - debugging performance of forked Unix process startup/overhead > >>> is a > >>> mess - we had one customer who was seeing terrible performance when > >>> fork/execing tiny little shell processes that did practically > >>> nothing. It > >>> was only happening on one of their LPARs. The IBM Support center was > >>> involved for a really long time, and I don't know if they ever really > >>> figured out what was wrong. > >> > >> It wasn't running under the bash shell was it? I noticed that bash > >> has very significant overhead compared to the regular shell. > >> > >> I did some investigation using SMF data, and just wrote it up here: > >> > >> > https://www.blackhillsoftware.com/news/2019/08/27/comparing-bash-and-bin-sh-on-z-os/ > > > > > > Great write-up. Bash doesn't use local spawn so it always runs > > sub-processes in child address spaces. I have reported this so Rocket > > are aware > > and have opened a ticket. I'm not sure if it will be addressed anytime > > soon. Probably not. > > > Oops. Spoke too soon there! There is no "local" spawn as the job numbers > clearly show. How exactly are you deriving CPU time? Is it an > accumulation of SMF30CPT CPU times? > > > -- > 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
Re: COW for fork() is disappearing in z/OS 2.4
On 2019-08-27 8:19 PM, David Crayford wrote: On 2019-08-27 8:13 PM, Andrew Rowley wrote: FWIW - debugging performance of forked Unix process startup/overhead is a mess - we had one customer who was seeing terrible performance when fork/execing tiny little shell processes that did practically nothing. It was only happening on one of their LPARs. The IBM Support center was involved for a really long time, and I don't know if they ever really figured out what was wrong. It wasn't running under the bash shell was it? I noticed that bash has very significant overhead compared to the regular shell. I did some investigation using SMF data, and just wrote it up here: https://www.blackhillsoftware.com/news/2019/08/27/comparing-bash-and-bin-sh-on-z-os/ Great write-up. Bash doesn't use local spawn so it always runs sub-processes in child address spaces. I have reported this so Rocket are aware and have opened a ticket. I'm not sure if it will be addressed anytime soon. Probably not. Oops. Spoke too soon there! There is no "local" spawn as the job numbers clearly show. How exactly are you deriving CPU time? Is it an accumulation of SMF30CPT CPU times? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
On 2019-08-27 8:13 PM, Andrew Rowley wrote: FWIW - debugging performance of forked Unix process startup/overhead is a mess - we had one customer who was seeing terrible performance when fork/execing tiny little shell processes that did practically nothing. It was only happening on one of their LPARs. The IBM Support center was involved for a really long time, and I don't know if they ever really figured out what was wrong. It wasn't running under the bash shell was it? I noticed that bash has very significant overhead compared to the regular shell. I did some investigation using SMF data, and just wrote it up here: https://www.blackhillsoftware.com/news/2019/08/27/comparing-bash-and-bin-sh-on-z-os/ Great write-up. Bash doesn't use local spawn so it always runs sub-processes in child address spaces. I have reported this so Rocket are aware and have opened a ticket. I'm not sure if it will be addressed anytime soon. Probably not. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
On 24/08/2019 1:41 am, Kirk Wolf wrote: FWIW - debugging performance of forked Unix process startup/overhead is a mess - we had one customer who was seeing terrible performance when fork/execing tiny little shell processes that did practically nothing. It was only happening on one of their LPARs. The IBM Support center was involved for a really long time, and I don't know if they ever really figured out what was wrong. It wasn't running under the bash shell was it? I noticed that bash has very significant overhead compared to the regular shell. I did some investigation using SMF data, and just wrote it up here: https://www.blackhillsoftware.com/news/2019/08/27/comparing-bash-and-bin-sh-on-z-os/ Andrew Rowley Black Hill Software -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
The listserv's web interface *is* e-mail software. It's not uncommon for webmail software to be broken, softimes badly broken. Take gmail - please! -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of Jerry Callen Sent: Friday, August 23, 2019 2:23 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: COW for fork() is disappearing in z/OS 2.4 > The Percent29 at the end breaks the URL. Is your e-mail software doing that > automatically? I created the post directly from the listserv's web interface - no email software involved. I *did* have a closing paren at the end of the URL, since I was in the middle of a parenthesized phrase; it seems that somehow got rolled into the URL. -- Jerry -- 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
Re: COW for fork() is disappearing in z/OS 2.4
I am told that the reasons were: (1) It consumed a lot of ESQA for the RSM control blocks that manage the shared pages. (However, that is no longer an issue because those control blocks were moved to the PFT data space later in z/OS 2.4). (2) The performance was no better than Copy Now. Jim Mulder z/OS Diagnosis, Design, Development, Test IBM Corp. Poughkeepsie NY > According to the "Summary of changes for z/OS UNIX System Services > Planning for Version 2 Release 4 (V2R4)" (see https://www.ibm.com/ > support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.bpxb200/bpxb2soc24.htm > ), copy on write for fork() has been removed from z/OS. It will be > interesting to benchmark the performance of fork() between 2.3 and > 2.4 on a variety of processes. > > I wonder why this was done? (Hi, Peter Relson -- hint, hint...) -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
> The Percent29 at the end breaks the URL. Is your e-mail software doing that > automatically? I created the post directly from the listserv's web interface - no email software involved. I *did* have a closing paren at the end of the URL, since I was in the middle of a parenthesized phrase; it seems that somehow got rolled into the URL. -- Jerry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
One would certainly hope that "copying" an address space for purposes of fork() would not require paging it all in. That would be horrible, and I seriously doubt that it works that way. On Fri, Aug 23, 2019 at 12:26 PM Paul Gilmartin < 000433f07816-dmarc-requ...@listserv.ua.edu> wrote: > On Fri, 23 Aug 2019 10:41:55 -0500, Kirk Wolf > wrote: > > >I agree! > > > >FWIW - debugging performance of forked Unix process startup/overhead is a > >mess - we had one customer who was seeing terrible performance when > >fork/execing tiny little shell processes that did practically nothing. > It > >was only happening on one of their LPARs. The IBM Support center was > >involved for a really long time, and I don't know if they ever really > >figured out what was wrong. > > > Indeed. Ouch! > > But I wonder how this plays with deferred loading of program objects > (I forget the proper term). Suppose a parent whose execution image > is only partially loaded forks a child which accesses pages never loaded > in the parent ...? > > So every page in the parent's execution image must be brought into > storage so it can be copied to the child. > > >On Fri, Aug 23, 2019 at 8:24 AM Jerry Callen wrote: > > > >> According to the "Summary of changes for z/OS UNIX System Services > >> Planning for Version 2 Release 4 (V2R4)" (see > >> > https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.bpxb200/bpxb2soc24.htm > >> copy on write for fork() has been removed from z/OS. It will be > interesting > >> to benchmark the performance of fork() between 2.3 and 2.4 on a variety > of > >> processes. > >> > >> I wonder why this was done? (Hi, Peter Relson -- hint, hint...) > > -- gil > > -- > 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
Re: COW for fork() is disappearing in z/OS 2.4
On Fri, 23 Aug 2019 10:41:55 -0500, Kirk Wolf wrote: >I agree! > >FWIW - debugging performance of forked Unix process startup/overhead is a >mess - we had one customer who was seeing terrible performance when >fork/execing tiny little shell processes that did practically nothing. It >was only happening on one of their LPARs. The IBM Support center was >involved for a really long time, and I don't know if they ever really >figured out what was wrong. > Indeed. Ouch! But I wonder how this plays with deferred loading of program objects (I forget the proper term). Suppose a parent whose execution image is only partially loaded forks a child which accesses pages never loaded in the parent ...? So every page in the parent's execution image must be brought into storage so it can be copied to the child. >On Fri, Aug 23, 2019 at 8:24 AM Jerry Callen wrote: > >> According to the "Summary of changes for z/OS UNIX System Services >> Planning for Version 2 Release 4 (V2R4)" (see >> https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.bpxb200/bpxb2soc24.htm >> copy on write for fork() has been removed from z/OS. It will be interesting >> to benchmark the performance of fork() between 2.3 and 2.4 on a variety of >> processes. >> >> I wonder why this was done? (Hi, Peter Relson -- hint, hint...) -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: COW for fork() is disappearing in z/OS 2.4
I agree! FWIW - debugging performance of forked Unix process startup/overhead is a mess - we had one customer who was seeing terrible performance when fork/execing tiny little shell processes that did practically nothing. It was only happening on one of their LPARs. The IBM Support center was involved for a really long time, and I don't know if they ever really figured out what was wrong. On Fri, Aug 23, 2019 at 8:24 AM Jerry Callen wrote: > According to the "Summary of changes for z/OS UNIX System Services > Planning for Version 2 Release 4 (V2R4)" (see > https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.bpxb200/bpxb2soc24.htm), > copy on write for fork() has been removed from z/OS. It will be interesting > to benchmark the performance of fork() between 2.3 and 2.4 on a variety of > processes. > > I wonder why this was done? (Hi, Peter Relson -- hint, hint...) > > -- Jerry > > -- > 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
Re: COW for fork() is disappearing in z/OS 2.4
The Percent29 at the end breaks the URL. Is your e-mail software doing that automatically? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of Jerry Callen Sent: Friday, August 23, 2019 9:24 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: COW for fork() is disappearing in z/OS 2.4 According to the "Summary of changes for z/OS UNIX System Services Planning for Version 2 Release 4 (V2R4)" (see https://secure-web.cisco.com/1PMawdl0J60zIF_3HZtSrhDeEXqHiAEBFGlT3QbUnQsxZxNDOTW8ikUQCXE7MPxiRm7SBt_c5wEgmzmFWh9QVMv4Io7J1Jb82msA5Po9y5pl2wvq7RZw6CzH_ZZAWwkIICCETW4vl9ZBrVjL4vPyG-i95N-EwF9lTzpb_laLzux6PtB7ffF-OlgmTSwLDkjwGpbLOUAWUSlOqwRIuE5IZq9_K-8GRFTDjiq0ydST_JfTJN6O2jdILZ6nP9GUaFAErGRepK1giWL-exvLtgywbea8EHDewV1Shq8FZAFnLD38Hxl1XIwJSBGinUSrvJxoPhYUaMJOZvQrvFijPf_tfOCUAXvZwBglJvtZQuGg6eH0uwNbyP9YW4WhntufCvX-HcJxzK237SMop9Um46J2f41K7P_MLdaTngjMXTJnld2aBnkgd7u7l9SqdBzkD6csA/https%3A%2F%2Fwww.ibm.com%2Fsupport%2Fknowledgecenter%2FSSLTBW_2.4.0%2Fcom.ibm.zos.v2r4.bpxb200%2Fbpxb2soc24.htm%29, copy on write for fork() has been removed from z/OS. It will be interesting to benchmark the performance of fork() between 2.3 and 2.4 on a variety of processes. I wonder why this was done? (Hi, Peter Relson -- hint, hint...) -- Jerry -- 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
COW for fork() is disappearing in z/OS 2.4
According to the "Summary of changes for z/OS UNIX System Services Planning for Version 2 Release 4 (V2R4)" (see https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.bpxb200/bpxb2soc24.htm), copy on write for fork() has been removed from z/OS. It will be interesting to benchmark the performance of fork() between 2.3 and 2.4 on a variety of processes. I wonder why this was done? (Hi, Peter Relson -- hint, hint...) -- Jerry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN