Re: Anyone Using z10 Large Pages in anger
Shane wrote: On Tue, 2010-08-17 at 13:27 -0500, Elpida Tzortzatos. wrote: The goal of every platform is to move to transparent use of large pages but that is a very high goal to achieve especially when the large page size is 1MB (256 contiguous 4k Frames). Implementation of large pages is much simpler and more flexible with smaller large page sizes but the complexity increases with larger large pages sizes. Much as I am a long time MVS bigot, it would be remiss not to point out that Linux supports various sized large pages across disparate architectures - none of them smaller than 1 Meg I would think. Different processor architectures support a variety of pages sizes. For example, Itanium or whatever it is called today has architected page sizes of 4K, 8K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, and 4G. Power supports 4K, 64K, and larger implementation defined sizes such as 16M and 16G. I can Not to mention multiple (concurrent) sizes within particular architectures. I considered z/OS late to the party when this was announced. Although Linux supports multiple sizes of larger pages, as a practical matter using more than one is cumbersome, and I not sure what, if any, application does. Pools of each size have to be preallocated. In Linux page tables are not sharable, so applications with large shared memory segments with a lot of processes attached to them, such as some relational data bases, can chew up a lot of real memory with page tables to map the shared segments. Welcome, but late. And if you want to utilise this as a z/VM guest ??? - too bad. All the software and hardware is IBM proprietary - how is that acceptable ? I am glad you mentioned zLinux since as you can see the z/OS implementation is more flexible in some aspects especially given the 1MB large page size. When it comes to memory topology, our hypervisor (PR/SM) is aware but z/OS itself is agnostic as to hardware memory topology. I have to question this ambivalent attitude. If TLB hit ratio is such a major consideration, how can the possibility of allocation on a foreign book be even contemplated as acceptable ?. Even the current processors have shown susceptibility to performance impacts due to poor CP allocation at LPAR activation - are you prepared to accept that memory allocation won't be similarly impacted by poor decisions ?. Shane ... -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: I'm amazed
Shane Ginnane wrote: I suspect IBM wants to keep the penguin colonies appropriately corralled. Hard to tout you can support hundreds/thousands of Linuses in a (native) LPAR environment. Does Power have a z/VM analogue ?. Not the same functionality as z/VM. There is PowerVM which is the Power7 version of the z LPAR code plus paging - PowerVM can page LPARs using a service LPAR to do the I/O. Also Active Memory Sharing that allows LPARs to donate memory they don't need to other LPARs. The LPAR architecture for Power is such that the guests have to be aware, and it often takes a little longer to get needed changes into the Linux distros Shane ... h -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Significant Bits
Paul Gilmartin wrote: On Tue, 25 May 2010 16:38:32 -0400, David Andrews wrote: On Tue, 2010-05-25 at 16:10 -0400, Tom Marchant wrote: The 68000 and its successors are big endian. They switched to PowerPC in 1994 and to i86 in 2006. Didn't PPC go both ways? (I vaguely remember a talk by David Barnes a few years ago, where he mentioned the OS/2 PPC port making use of the mixed-endian-ness of PPC.) Yow! I knew it was bimodal, but: http://en.wikipedia.org/wiki/PowerPC#Endian_modes In little-endian mode, the three lowest-order bits of the effective address are exclusive-ORed with a three bit value selected by the length of the operand. This is enough to appear fully little-endian to normal software. I suppose three lowest-order bits means the rightmost three bits in big-endian mode, and something somewhat different in little-endian. Nope, it always means the three rightmost bits of an address. Bytes get reordered when data is moved between memory and a register. The hardware still runs big-endian. There's one bit that controls the endianness in supervisor state; another for problem state. In the embedded version of the Power architecture, byte ordering is an attribute of a page. Power is not the only chip architecture that supports some sort of bi-endianess. Itanium, which is mainly little-endian, supports big-endian memory references. --gil Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: What am I missing on XPLINK(OSCALL(N)) ?
Charles Mills wrote: If your assembler code expects the standard register conventions ... My understanding of XPL(OSCALL(N)) is that is says call the assembler routines the old way. Am I missing something? Charles I believe the problem is that XPL(OSCALL(N)) says no stack, just a standard save area, and the EDCPRLG macro assumes the old UPSTACK. Either use XPL(OSCALL(U)) or don't use the EDC macros. Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Putting system integrity at risk to save software charges
George Henke wrote: Shadow from Data Direct does this painlessly. I am totally independent of this vendor, so I can be objective. But a former client of mine implemented their product several years ago and extended the life of their 2 GPP configure enormously with very little cost. The installation was transparent to their applications. All they did was install the product, reconfigure the ziip an the HMC panel, and they were off and running. If you are talking about high profile actuarial computations, check with the vendor, they are probably covered as well, since my former client is a leading insurance company in New Jersy. According to their Chief Architect http://blogs.datadirect.com/2009/07/setting-the-record-straight-datadirect-shadow-is-not-affiliated-with-neon-enterprise-software.html that isn't what they do. They only run their own software as zIIP eligible SRBs. Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: z9 / z10 instruction speed(s)
R.S. wrote: Edward Jaffe pisze: [...] People with PC-only experience are always astonished when I tell them about modern mainframe provisioning capabilities. They always assume when your hard drive fills up you need a new one or when your CPU is too slow you need a new one. What we do seems like magic to them. Yes, mainframe capabilities are excellent in this area. From the other hand they solve problems which exist only in mainframe world: CPU power adjustment. CPU shortage is bad thing on any platform, but mainframe is the only one where too much MIPS is not good. Why to downgrade a PC? The same apply to specialty processors. That is not completely true. Some amount of Unix and even Windows enterprise software (and not from IBM) is licensed by the capacity on the machine. -- Radoslaw Skorupka Lodz, Poland -- BRE Bank SA ul. Senatorska 18 00-950 Warszawa www.brebank.pl Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Does SAC 0 make PASN = HASN = SASN
Joe Reichman wrote: It is A Stacking PC I was under impression that when PR executes at the end of the PC rtn the OS puts the environment back to the way it was before the PC rtn Was invoked The POST ASID is only a few instruction later don't know why the SYSUDUMP says PRIMARY NOT EQUAL HOME If the PASN is not equal to the HASN, what are they? Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: How to get a dump from a failing SRB
ec wrote: I have an SRB scheduled thru IEAMSCHD. If it abends, I get the abend code in the comp, code and rsn fields. However I do not get any dump. Is there any method to get a dump for the failing SRB ? DUMPX from the FRR (my preference). SLIP Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Clues on using C++ prelink * lked for first time
Charles Mills wrote: I've got my first mainframe C++ application. It runs under Windows. (Obviously, that's not the same as running under z/OS, but the point is it's a complete program. My concern at this point is getting it to link, not run.) It compiles cleanly under z/OS C++. I have long names and want the load module in a PDS, so I'm running the compile/pre-link/link proc. There are eight object modules from eight source files in an HFS path. I'm good up to that point. Questions: 1. How do I specify the input to the prelinker? I tried LIBRARY with a DD name pointing to my object path and all of the object files listed in parentheses. If I do that, the prelinker runs to completion with a zero return code and nothing in SYSPRINT, but the link fails on a SYSLIN that is apparently empty (wrong length record, that sort of thing). SYSLIN is the same dataset as the prelink SYSMOD. How do I know if the prelinker actually did anything? My guess is that it did not. (SYSMOD specfies FB/80/3200 and SYSLIN lets it default.) 2. If I specify INCLUDE with a DD pointing to the main() object module and LIBRARY with a DD for everything else, I get a warning of unresolved extrns, but it still runs to a zero completion, and I still get the same error out of the link editor. Any clues? Is the prelinker documented anywhere other than the C++ User's Guide? Thanks, Charles Mills It is probably easiest to do this from a Unix Service shell using the c++ command. See the description of the c89 command in Unix System Services Command Reference, and in particular the prefix_STEPS environment variable. It has been a long time, but I believe if the target of the link is a PDS, the prelinker is invoked automatically even without the prefix_STEPS environment variable. Regards. Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: EZASMI no data on READ
Joe Reichman wrote: Hi I am running a cocurrent server with multiple connections/ports When I connect on my first socket/port I am able to later on read data as my logic has the read waiting for TCP/IP To post the ECB whenever the client Sends data and the read completes The second connection the send immeaditly follows the connect and my Read does complete but there is nothing in the buffer (binary zeros) It was my understanding that all sockets are in blocking mode thus If a client does a send before I able to do a read TCP/IP will hold up the works As a sidebar would anyone know what the difference is between a read and a recv/recvfrom recv and recvfrom are part of the Berkeley socket interface at least as defined on Unix systems. However, on Unix (including z/OS Unix) there is essentially no difference between read and recv, and they can be used interchangeably on socket descriptors. The same is true with send and write. On Windows sockets you have to use recv and send because as I recall a Windows socket descriptor is a very different thing from a file handle. recvfrom and sendto are usually used for datagram sockets and although they can be used for stream sockets as well. recvfrom takes additional parameters for a sockaddr structure which contains the address of the sender when recvfrom returns. Thankx in advance Sent from my iPhone Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Final Conlusions on Concurrenrt Server
Shmuel Metz , Seymour J. wrote: In 01ca5b6c$532d3e30$f987ba...@net, on 11/01/2009 at 10:26 PM, Joe Reichman joereich...@optonline.net said: Here are my Final Conclusions These can only be one Active Conversation between a Client and Server on a port (if its between two different machines) If the client is using multiple port numbers then it should be able to sustain multiple conversations with a single server. TCP/IP does not allow concurrent multiple conversations between a single src-IP:port dst-IP port pair. Actually, technically speaking, TCP/IP has no concept of a conversation. TCP/IP provides a reliable point to point connection over which you can have as many conversations as you want. -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: EZASMI Concurrent Server cann't handle mutiple open connections in the same port
Joe Reichman wrote: Hi, All regarding my earlier inquiry can anyone correct me if I am wrong I don't think you can have multiple open connections ( in the process of read and writes ) on the same port/same ip ?? Typically all connections on the server or listening side are to the same port and IP address. Each connection has its own socket which is created by accept or equivalent. A connection is defined by the IP/port addresses of both endpoints. An attempt to bind a socket to a port that is in use by another connection will fail. Having used both the EZA and BPX socket interfaces, I much prefer the latter. The BPX interface is not only easier to use, but more powerful. Plus I believe these days the EZA code uses the BPX interface. If your server is running authorized, you can use most of the BPX socket interfaces in SRB mode. Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: IBM C header files
Pierre Fichaud wrote: Folks, I've been hired to implement SSL socket calls in an existing z/OS product. The IBM SSL API is in C. I'm changing the TCB structure to have 2 listeners, one TCP/IP and the other SSL. They listen on different ports. I've added a TCB layer and so have had to use the pthread API calls. I've defined a structure with a variable in it defined as : pthread_t *thrd; My thinking was that if I included pthread.h ( as the doc states for any of the pthread API calls) that I would get clean compile. Such is not the case. I get the following message: ERROR CCN3045 @PRF01.SSL.C(NEWL05):324 Undeclared identifier pthread_t. My includes in the C source are as follows: #include time.h #include types.h #include socket.h #include in.h #include pthread.h #include stdio.h #include stdlib.h and my SYSLIB concatenation in the compile JCL is : 11 //SYSLIB DD DISP=SHR,DSN=USERID.H X/SYSLIB DD DSNAME=LIBPRFX..SCEEH.H,DISP=SHR IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEEH.H,DISP=SHR 12 //DD DISP=SHR,DSN=ISV.DEV.H X/ DD DSNAME=LIBPRFX..SCEEH.SYS.H,DISP=SHR IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEEH.SYS.H,DISP=SHR 13 //DD DISP=SHR,DSN=CEE.SCEEH.H 14 //DD DISP=SHR,DSN=CEE.SCEEH.SYS.H 15 //DD DISP=SHR,DSN=CEE.SCEEH.NET.H 16 //DD DISP=SHR,DSN=CEE.SCEEH.NETINET.H 17 //DD DISP=SHR,DSN=CEE.SCEEH.ARPA.H 18 //DD DISP=SHR,DSN=SYS1.SIEAHDR.H I've shown all the includes but I've got over 15K lines to look at. Nowhere do I find pthread_t defined. pthread_t is actually defined in CEE.SCEEH.SYS.H(EDC4H031). Am I supposed to debug IBM's torturous C header file hierarchy? No, but if you look in the C RTL Reference you will see that you need a define for either _OPEN_THREADS or _UNIX03_THREADS. Another issue is that for another SSL program to compile, I had to include the following define: #define _OE_SOCKETS Otherwise, I had en error with the AF_INET defined value. How is one supposed to figure this out? Looking in the C RTL Reference? Alternatively you could define _XOPEN_SOURCE_EXTENDED to 1. Also, look at the SYSLIB concatenation. The communications stuff is in 4 header files: SYS.H, NET.H, NETINET.H and ARPA.H. Couldn't they combine all this into 1 nice, neat PDS. The structure of these things is largely defined by other standards Maybe there is another #define that will fix the pthread_t problem? I wonder which variable it is supposed to be? See above I'm going to hard code the typedef pthread_t in my C source to get around the problem for now. Pierre. Unfortunately, there are conflicting and sometimes slightly incompatible standards. You need to define which you want. Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: CEEPIPI incorrect recovery processing?
Gord Tomlin wrote: To be completely accurate, we are developing a new component for an existing product. The existing product is written entirely in Assembler and is not compatible with LE. I would love to not use CEEPIPI, but that's a non-starter. The new component needs to use a couple of APIs that are only provided in C and C++ and require LE. Were it not for the LE requirement, we would have used someone else's C/C++ compiler/library that plays more nicely with Assembler. I suspect that your suggestion of init_sub_dp, start_seq, call_sub, and end_seq will still get the same behavior in some cases, e.g., an abend in the driving program anywhere between two start_seq and end_seq. In that case, we would just be reconfiguring the problem, not really fixing it. deleted stuff It seems to me the simplest solution is just to insert your own ESTAEX in front of LE's. If you want to get more adventuresome and can tolerate the restrictions, you can use the service routine vector to ask LE to let you provide the recovery routine. Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Assembler TCP/IP
Joe Reichman wrote: Does Anybody have any pointers re: concurrent TCP/IP Assembler programs specfically A)in the Subtak (attached program) do you have to issue a INITAPI B) It it necessary to use EZASM STORAGE=GLOBAL or STORAGE=TASK when writting a concurrent (meaning using subtask to use the send and receive) program I highly recommend bypassing this interface and using the assembler callable services socket interface. I think it is easier to use and more powerful especially if you use the AIO interface. If you can run authorized, you can do much or all of the work on enclave SRBs. Regards, Henry -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: vsnprintf(); off by 1!?
Paul Gilmartin wrote: On Mon, 12 Jan 2009 22:31:50 -0800, Henry Willard wrote: memcpy( ap, xp, sizeof( va_list ) ); is not legal C. Either use the c99 va_copy (va_copy(ap,xp)) created for this purpose or define _VARARG_EXT before including stdarg.h. Up until c99 there was no defined way to do what you were trying to do although your method as well as direct assignment worked on many but not all systems. Thanks for educating me. Hmmm... #define _VARARG_EXT_ leads to: Trying vsnprintf(); CEE3204S The system detected a protection exception (System Completion Code=0C4). From entry point f2 at compile unit offset +01A4 at entry offset +01A4 at address 448CCADC. [1] + Done(139) gmake varg amp; ./varg 67109204 Segmentation violation ./varg ... a step backward. If vsnprintf() is incompatible with _VARARG_EXT_, it would be a courtesy to the programmer to manifest this at compile time, possibly by using char** instead of va_list to expose the incompatibility. vsnprintf() is incompatible with C89. Although it has shown up in many compilers it was officially introduced to C in C99. You are trying to use two features of the C language that are defined only in C99. I see that va_copy() is defined as: #define va_copy(dest, src) ((dest) = (src)) ... simple enough. But our systems programmer hasn't configured the c99 environment. Then I think you have a complaint with your systems programmer if you want to use C99 features. If I undefine and redefine va_start, adding a call to va_arg at the end, it works OK. But my real goal is to get it working in enhanced ASCII mode. And that fails with: c89 -I.. -D_ALL_SOURCE -Wa,ASA,RENT -Wl,xplink,EDIT=NO -Wc,dll,ascii -o varg ../source/varg.c /usr/lib/Xaw.x /usr/lib/SM.x /usr/lib/ICE.x /usr/lib/X11.x -lcurses -sh 0 + ./varg -sh 0 + 2 1 -sh 0 + iconv -f ISO8859-1 -t IBM-1047 CEE3204S The system detected a protection exception (System Completion Code=0C4). From entry point f2 at compile unit offset +0060 at entry offset +0060 at address 448F0190. Format: %s -- %s Your program using either C99 va_copy or _VARARG_EXT and your technically illegal memcpy technique works fine for me in enhanced ASCII mode if I tell the compiler to use C99 rules. Thanks, gil h -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: vsnprintf(); off by 1!?
Paul Gilmartin wrote: Are questions about C better asked here or on MVS-OE? Surely not on ASSEMBLER_LIST -- it's far too busy this week with a nostalgia thread. The C test program: /* -*/ #include stdarg.h #include stdio.h #include string.h static char buffer[ 100 ]; static void f2( char *fmt, va_list xp ) { va_list ap; char *a; memcpy( ap, xp, sizeof( va_list ) ); printf(Format: \%s\\n, fmt ); a = va_arg( ap, char * ); printf(First : \%s\\n, a ); a = va_arg( ap, char * ); printf(Second: \%s\\n, a ); memcpy( ap, xp, sizeof( va_list ) ); printf( \nRetrying\n ); a = va_arg( ap, char * ); printf(First : \%s\\n, a ); a = va_arg( ap, char * ); printf(Second: \%s\\n, a ); memcpy( ap, xp, sizeof( va_list ) ); printf( \nTrying vsnprintf();\n ); vsnprintf( buffer, 99, fmt, ap ); printf( %s\n, buffer ); return; } static void f1( char *fmt, ... ) { va_list ap; char *a; va_start( ap, fmt ); f2( fmt, ap ); return; } int main( void ) { f1( %s -- %s , foo, bar ); return( 0 ); } /* -*/ On Solaris and OS X prints, as I expect: Format: %s -- %s First : foo Second: bar Retrying First : foo Second: bar Trying vsnprintf(); foo -- bar But on z/OS 1.10 and 1.7, the unexpected: Format: %s -- %s First : %s -- %s Second: foo Retrying First : %s -- %s Second: foo Trying vsnprintf(); %s -- %s -- foo Do I fail to understand something, or have I (again) encountered a bug? I'll welcome any workaround that doesn't break compatibility with the other 2 systems. I'll likewise welcome a test on another system (Linux?) Thanks, gil memcpy( ap, xp, sizeof( va_list ) ); is not legal C. Either use the c99 va_copy (va_copy(ap,xp)) created for this purpose or define _VARARG_EXT before including stdarg.h. Up until c99 there was no defined way to do what you were trying to do although your method as well as direct assignment worked on many but not all systems. h -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: zIIP API for ISV's
Brian Westerman wrote: I'm a member, but I wasn't aware of the availability. I still can't find it on the D-Works web site. Can you point me to it? You need a CDA first. Being a D-Works member doesn't count. Brian Henry -- 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
Re: Migration from Mainframe to othre platforms - the othe bell?
Rich Smrcina wrote: At one time AIX ran on the mainframe, first as AIX/370, then briefly as AIX/ESA. Now it is strictly a System p operating system. Other than having AIX in the name and being ports based on some version of Unix, AIX/ESA and AIX/370 didn't have much in common with the AIX that runs on System p. Henry -- 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
Re: Two things missing from DFSORT in a perfect world?
Frank Yaeger wrote: Roberto Halais wrote on 01/28/2008 11:54:59 AM: also a conversion for IP addresses as they are stored in SMF in hex format to something like xxx.xxx.xxx.xxx. You can already convert 4-byte hex values for IP addresses to displayable values with DFSORT. For example if you had input records with the following hex values in positions 1-4: 1 2 3 4 - position 05E21308 8520E301 you could use this DFSORT job to convert them to ddd.ddd.ddd.ddd values: //S1EXEC PGM=ICEMAN //SYSOUTDD SYSOUT=* //SORTIN DD DSN=... input file //SORTOUT DD SYSOUT=* //SYSINDD* OPTION COPY INREC BUILD=(1,1,BI,TO=ZD,C'.',2,1,BI,TO=ZD,C'.', 3,1,BI,TO=ZD,C'.',4,1,BI,TO=ZD) /* For the example input, SORTOUT would have: 005.226.019.008 133.032.227.001 Frank Yaeger - DFSORT Development Team (IBM) - [EMAIL PROTECTED] Specialties: PARSE, JFY, SQZ, ICETOOL, IFTHEN, OVERLAY, Symbols, Migration BTW, the dotted decimal representation of 8520E301 is 133.32.227.1. 133.032.227.001 is 851AE301. Leading zeros means octal. Henry -- 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
Re: How does ATTACH pass address of ECB to child?
Craddock, Chris wrote: As in horshoes? Yes. The ECB is one of the most widely used tools in the system. As a serialization primitive it is just awful, but there's no getting away from it now. The ECB might not be perfect, but compared to what you have to put up with on Unix where there are about a half dozen mechanisms which can't be used together, it is downright brilliant. CC Henry -- 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
Re: Basic Cross Memory questions
Logan, David wrote: Even with my AXSET, I still get a S052/319 ABEND at the ETCRE macro. I have no idea why. My code looks right based on what I think I know. What am I doing wrong? MODESET MODE=SUP,KEY=ZERO GETAXDS0H LA6,1 AXSET AX=(6) MVC LXCOUNT,=F'1' GETLXWTO 'BEFORE LXRES' XETLXLXRES LXLIST=LXL,SYSTEM=YES WTO 'AFTER LXRES' L 5,PCRTNADR ETDEF TYPE=SET,ETEADR=ETD1,ROUTINE=(5),EAX=(6),AKM=(0:15),X SSWITCH=YES,STATE=SUPERVISOR,EKM=(0:15),PKM=OR, X ASCMODE=AR WTO 'AFTER ETDEF'-- Last WTO to be written CET1 ETCRE ENTRIES=ETDESC WTO 'AFTER ETCRE' ST 0,TKVALUE MODESET MODE=PROB,KEY=NZERO EDCEPIL David Logan Get rid of the EAX altogether. Regards, Henry -- 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
Re: Zapping HFS files
McKown, John wrote: -Original Message- From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf Of Tony Harminc Sent: Thursday, October 18, 2007 12:00 PM To: IBM-MAIN@BAMA.UA.EDU Subject: Re: Zapping HFS files snipped I asked over on the Linux-390 forum about this. GNU patch has a --binary option for changing binary (non text) files. Unfortunately, IBM once again lags behind GNU in functionality. There is nothing magical about patch or particularly advanced. It takes the output from diff and applies to other files. I believe patch has been ported to z/OS, and if it weren't it shouldn't be hard to do. -- John McKown Senior Systems Programmer HealthMarkets Keeping the Promise of Affordable Coverage Administrative Services Group Information Technology The information contained in this e-mail message may be privileged and/or confidential. It is for intended addressee(s) only. If you are not the intended recipient, you are hereby notified that any disclosure, reproduction, distribution or other use of this communication is strictly prohibited and could, in certain circumstances, be a criminal offense. If you have received this e-mail in error, please notify the sender by reply and delete this message without copying or disclosing it. -- 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 Henry -- 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
Re: Non-Standard Mainframe Language?
Mohammad Khan wrote: Well, C on UNIX is really assembler - just one step removed from the bits and bytes of the underlying CPU. No, assembler is assembler on Unix. C is a high level language used as a system programming and implementation language on Unix just as PL/I was the implementation language of Multics and ESPOL (an extension of ALGOL) was the implementation language of Burroughs' MCP. Both of these predated C and Unix, Its designers realized that there is not much benefit in writing CPU specific code to copy x bytes of memory to another location over the generic a = b kind of code. Same for other basic operation common to most CPUs - arithmetic, compare, branch etc. Going CPU specific and lot of tedius work one could get a few percent CPU savings but it wasn't considered to be worth it. And I tend to agree. The developers working on Unix, most of whom had been working on Multics, wanted to work in a high-level language. The major languages of the time, Fortran, PL/I, and ALGOL were too large for the resources available. A large part of the primitive character of C is due to its ancestors, BCPL and B, and the original environment where B was developed - a PDP-7 with 8K words of memory. On the other hand OS specific facilities ( macros, SVC ) were wrapped for easy use in standard library. Then again their standard library is NOT z/OS standard library, though you can try to map it. This also made their application and system programming domains a continuum rather than two isolated domains. A similar approach for MVS would have been great in my humble opinion but it developed on very different lines. On one side we have COBOL programmers who hardly know anything about the capabilities and strength of the underlying OS. Their domain is merely the generic computing functions ( arithmetic, compare etc. ) and middleware API ( CICS command level, DB2 SQL, IMS calls etc.). Just ask any COBOLer about coding a program with parallel tasks. This step is a lot easier for a UNIX programmer. On the other hand the real programmers talk in bits and bytes which does create a guru aura but isn't easy for the newcomers. There is little if anything that can be done in C that can't be done in PL/I including implementing an operating system[1]. The C language itself has no support whatever for parallel tasks and is no more well suited to such an environment than COBOL. pthreads, which is a Posix standard, is an add-on library with limited support for parallel tasks. Just my 2 cents Mohammad [1] C seems to be particularly well suited to writing code susceptible to buffer overrun bugs which have often made Unix systems easy prey for attackers. Regards, Henry Willard -- 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
Re: DB2 V9 z/OS GA (Was: What to do with extra storage on new z9)
Craddock, Chris wrote: There are 3 different code platforms for DB2 - I'm missing some details, so someone please fill in the blanks... - Non-mainframe platforms (Unix-type), which came from another data base product purchased by IBM a long time ago (Sequent?), and has some code shared with Informix - z/OS (the original System R) - z/VSE, z/VM, which IIRC is based on DL/1 IIRC, DL/I maps to IMS On VM/ESA (previous shop; many moons ago) we ran SQL, which probably maps to DB2 on z/OS. I think it was also called SQL on VSE. The first IBM relational product was SQL/DS which ran on VM. System/R was the original research prototype and it never shipped to the outside world. DB2 was developed independently of SQL/DS and it had a completely MVS-centric design that could never have fit into any other IBM mainframe OS. I don't know if SQL/DS ever ran on VSE, but I am certain that DB2 never did. DL/1 (data language 1) was and is the interface language for IMS/DB and its successors. It supports access to hierarchical parent/child data structures with verbs like Get Unique (GU), Get Next (GN) etc. The DL/1 model is wildly different than any SQL dialect. It is true that there are separate code bases for the z and non-z forms of DB2, but as time passes most new functions are added to the open platforms first and wherever possible that code is shared with DB2 on z. CC SQL/DS was actually released on VSE a few months before VM. It was a cleaned-up version of System/R. DB2 was written from scratch to run on MVS. Besides the three mentioned so far there is also a fourth DB2 that is integrated with i5/OS. h -- 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
Re: fd_set, select() and z/OS XL C 1.7
Michael Knigge wrote: On Wed, 29 Nov 2006 09:31:12 -0800, Henry Willard [EMAIL PROTECTED] wrote: How about reading the manual? How about reading my posting? Or am I blind? #define _OE_SOCKETS #define _OPEN_MSGQ_EXT Both are defined using the following Compiler-Options: DEFINE(_OE_SOCKETS) DEFINE(_OPEN_MSGQ_EXT) #include sys/types.h #include sys/time.h #include sys/msg.h All three headerfiles are also included in my source. So, what did you wanna tell me? I can't get it! Bye, Michael Sorry, I did miss that. Unfortunately your example compiles cleanly on my 1.7 system using the same options except for LOCALE and LSEARCH. Use of the SHOWINC option will show what is going on in the header files. Regards, Henry -- 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
Re: fd_set, select() and z/OS XL C 1.7
Michael Knigge wrote: All, I need the datatype fd_set and the select() function on z/OS but it seems I'm loosing the fight with the compiler :-( my source looks quite simple: #include sys/types.h #include sys/time.h #include sys/msg.h int main(int argc, char *argv[]) { fd_set bla; printf(HEELP!\n); return(0); } And the compiler tells me: CCN3275 Unexpected text bla encountered. CCN3045 Undeclared identifier fd_set. But why?!?!?! What's missing? fd_set is defined in sys/time.h (SYS1.CEE.SCEEH.SYS.H) and I can't see what I'm missing. Just for the completeness, here are my compiler-options: DLL RENT STRICT CHARS(UNSIGNED) LANGLVL(EXTENDED) ARCH(0) TUNE(0) SSCOMM TARGET(LE) LSEARCH(DD:USERLIB) NOOPT LONGNAME SOURCE ROSTRING OBJECT PLIST(HOST) LOCALE(DE_DE.IBM-273) EXECOPS NOSTRICT_INDUC NOWSIZEOF NOSEQUENCE NOMARGINS NOINLINE NOLIST NOOFFSET NOCOMPACT NOCOMPRESS NOIGNERRNO NOINITAUTO DEFINE(_OS390) DEFINE(_OE_SOCKETS) DEFINE(_OPEN_MSGQ_EXT) DEFINE(_ALL_SOURCE) Can someone bring me in the right direction?!?! Thank you very much, Michael How about reading the manual? X/Open #define _XOPEN_SOURCE_EXTENDED 1 #define _OPEN_MSGQ_EXT #include sys/types.h #include sys/time.h #include sys/msg.h int select(int nmsgsfds, fd_set *readlist, fd_set *writelist, fd_set *exceptlist, struct timeval *timeout); Berkeley Sockets #define _OE_SOCKETS #define _OPEN_MSGQ_EXT #include sys/types.h #include sys/time.h #include sys/msg.h int select(int nmsgsfds, fd_set *readlist, fd_set *writelist, fd_set *exceptlist, struct timeval *timeout); Regards, Henry -- 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
Re: assembler question (strong typing)
Paul Gilmartin wrote: In a recent note, john gilmore said: Date: Sat, 18 Nov 2006 15:10:14 + I, for one, loathe strong typing. In my own code I do data-type punning routinely, and I should not wish to see the HLASM converted into as C-lilke language that made this gratuitously difficult. Certainly data-type punning is possible in C; entire oerating systems have been written in C, which would be impossible otherwise. (What prevalent operating systems are written in PL/I?). Multics was written in PL/I Henry -- 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
Re: How is the mainframe like the opera?
Craddock, Chris wrote: I wonder how difficult it would be for IBM to implement a totally millicoded zSeries instruction set using a Power chip? It depends. If you just wanted it to run, then it would be easy. Heck you can do it on a PC and get 80-odd MIPS so how hard can it be? OTOH if you wanted it to run at a respectable fraction of (current) native performance it might be quite a bit harder. Developing the genuine z hardware platform is far more expensive than simply doing emulation and there is a duplication of effort between z and p series. However, there is also a lot of shared development between z and p too. IBM obviously believes it's in their best interests to maintain a native z architecture implementation, at least for now. The same was true of native AS/400 but eventually economics drove that platform into the arms of the Power architecture and they haven't looked back. It's theoretically possible to do z on Power and even if there aren't any plans to do it, never is a long time. CC Google ECLipz h -- 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
Re: REAL memory column in SDSF
[EMAIL PROTECTED] wrote: Have the presenter review ancient history in the S/360 line -- the 360 line generally supported differing page sizes (2K and 4K) and the 360/67 supported 2K, 4K and even 1M page sizes. (I don't recall whether any SCP shipped that dealt with 1M page sizes, especially in the VERY expensive storage era of the S360 line though. That could be why the idea lurked for lo these many years.) S/360 didn't have page sizes since there were no pages, because there was no virtual storage. The support for 2K and 4K pages occurred on S/370 with VS1 and VS2. I'm not entirely sure why anyone would think a 1MB page size is beneficial in any way. It would arbitrarily increase the cost of data transfer with no tangible benefit. If the storage were already being frequently referenced, then block paging would group contiguous pages together and block then for a more adjustable benefit. Using 1MB sizes would presume that there is enough references to warrant grouping so a large number of pages together. Unless you're seeing large paging blocks, there is no support for the notion that larger page sizes would be either more efficient or better performers. I suppose an argument could be made that larger page sizes would reduce the amount of storage necessary to back allocations (i.e. page tables). If there is little real page movement to DASD, then the trade-off may be worth it in reducing the cost of managing large working sets. Adam Practically all of the other processor architectures (Sparc, Itaniam, PowerPC, x86-64) support large pages of 1M or more, and all the commercial Unix systems and Linux support them in one or another. The main purpose is to make more efficient use of the TLB and reduce the size of the page tables which can grow quite large on 64-bit systems. Large pages are typically used for things like Oracle buffer pools which are never paged. Henry -- 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