I just re-ran a test on our z15 machine and got interesting numbers. The $MVC was reasonably linear from start to finish. The MVCL has a big jump from 2K to 4K, but was also reasonably linear outside of that jump. It never caught up to the $MVC implementation. TEST TYPE = BASE CODE CPU TIME USED= 0.003873 TEST TYPE = 1K 4 MVC CPU TIME USED= 0.171274 TEST TYPE = 1K $MVC CPU TIME USED= 0.183642 TEST TYPE = 1K MVCL CPU TIME USED= 0.345227 TEST TYPE = 2K $MVC CPU TIME USED= 0.357314 TEST TYPE = 2K MVCL CPU TIME USED= 0.509385 TEST TYPE = 4K $MVC CPU TIME USED= 0.704173 TEST TYPE = 4K MVCL CPU TIME USED= 2.790247 TEST TYPE = 8K $MVC CPU TIME USED= 1.426892 TEST TYPE = 8K MVCL CPU TIME USED= 5.480536 TEST TYPE = 32K $MVC CPU TIME USED= 5.835773 TEST TYPE = 32K MVCL CPU TIME USED= 21.734112 TEST TYPE = 64K $MVC CPU TIME USED= 12.278130 TEST TYPE = 64K MVCL CPU TIME USED= 43.380435 TEST TYPE = 128K $MVC CPU TIME USED= 54.570900 TEST TYPE = 128K MVCL CPU TIME USED= 86.739562
All the iterations used this basic set of instructions. * * TEST 1K $MVC * SPACE , L R9,REPEATCOUNT DO IT 100,000 TIMES TIMEUSED STORADR=STARTIME,CPU=TOD,LINKAGE=SYSTEM LOOP1A DS 0H L R3,POOLADDR GET FROM ADDRESS L R4,TOADDR GET TO ADDR L R5,=A(1024) MOVE 1K BYTES $MVC (R4),(R3),(R5) MOVE IT AHI R3,1024 AHI R4,1024 BCT R9,LOOP1A LOOP THE NEEDED NUMBER OF TIMES TIMEUSED STORADR=ENDTIME,CPU=TOD,LINKAGE=SYSTEM SPACE 3 LA R1,=CL12'1K $MVC' BAL R14,TIMEOUT * * TEST 1K MVCL * SPACE , L R9,REPEATCOUNT DO IT 100,000 TIMES TIMEUSED STORADR=STARTIME,CPU=TOD,LINKAGE=SYSTEM LOOP2 DS 0H L R2,POOLADDR GET FROM ADDRESS L R3,=F'1024' L R4,TOADDR GET TO ADDR L R5,=F'1024' MVCL R4,R2 MOVE IT BCT R9,LOOP2 LOOP THE NEEDED NUMBER OF TIMES TIMEUSED STORADR=ENDTIME,CPU=TOD,LINKAGE=SYSTEM SPACE 3 LA R1,=CL12'1K MVCL' BAL R14,TIMEOUT The REPEATCOUNT value is 10,000,000 Both POOLADDR and TOADDR areas are 256K in size, so they both should be on page boundaries. Chris Blaicher Technical Architect Precisely.com -----Original Message----- From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Charles Mills Sent: Tuesday, October 20, 2020 1:57 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Conditional MVCL macro? This message originated Externally. Use proper judgement and caution with attachments, links, or responses. Right. I should have said "an interruptibility that is visible to the surrounding assembler instructions via the CC." Charles -----Original Message----- From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Seymour J Metz Sent: Tuesday, October 20, 2020 10:52 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Conditional MVCL macro? MVCL is, and always has been, interruptible.