Just to continue the experiment and confirm my conclusion, all I have to do
to get the below to "work" is remove the last MODESET:

         MODESET KEY=NZERO         Make sure we are in Key 8
         MODESET MODE=PROB         Allow SPKA 8
*  ***   MODESET KEY=ZERO          Get access to CSA
         SPKA  X'80'(0)            *** Total experiment ***

So I rest my case: a MODESET leaves you in a state where you can do any SPKA
you want so long as it is for the key you already are in.

Or, turning this from a complaint to the underlying question: if you had
code that was executed *very* frequently and needed to be in Key 0 briefly,
what would you do? Is there any way to avoid the SVC when returning to Key
8?

@Peter, @Jim -- if you're following this, I'm testing on V2R2 but could
readily try on V2R1 or V1R13.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On
Behalf Of Charles Mills
Sent: Tuesday, December 13, 2016 6:48 AM
To: [email protected]
Subject: Re: Question on SPKA and Control Register 3

Okay, there is just no doubt in my mind that the use of MODESET precludes
the use of SPKA (and I'm not certain how to get around it other than to use
MODESET (with its attendant SVC) rather than SPKA). It's code that runs
millions of times per hour on multiple LPARs so I am trying to minimize
gratuitous overhead. Here is the exact failing code (unedited, and yes, I
know it's dumb -- I'm trying to illustrate the problem)

                                    868          MODESET KEY=NZERO
Make sure we are in Key 8  
                                    869+* MACDATE Y-3 81030

00055C                              871+         CNOP  0,4

00055C 4510 C564            00564   872+         BAL   1,*+8

000560 00000020                     873+         DC
B'00000000000000000000000000100000'            
000564 5810 1000            00000   874+         L     1,0(0,1)

000568 0A6B                         875+         SVC   107

                                    876          MODESET MODE=PROB
Allow SPKA 8               
                                    877+* MACDATE Y-3 81030

00056A 0700                         879+         CNOP  0,4

00056C 4510 C574            00574   880+         BAL   1,*+8

000570 00000004                     881+         DC
B'00000000000000000000000000000100'            
000574 5810 1000            00000   882+         L     1,0(0,1)

000578 0A6B                         883+         SVC   107

                                    884          MODESET KEY=ZERO
Get access to CSA          
                                    885+* MACDATE Y-3 81030

00057A 0700                         887+         CNOP  0,4

00057C 4510 C584            00584   888+         BAL   1,*+8

000580 00000030                     889+         DC
B'00000000000000000000000000110000'            
000584 5810 1000            00000   890+         L     1,0(0,1)

000588 0A6B                         891+         SVC   107

00058A B20A 0080      00080         892          SPKA  X'80'(0)
*** Total experiment ***   

And here is the result (unedited):

        CEE3202S The system detected a privileged-operation exception
(System Completion Code=0C2).                                 
      Location:

        Program Unit:  Entry: DIRECTOR Statement:  Offset: +000000DA

      Machine State:

        ILC..... 0004    Interruption Code..... 0002

        PSW..... 070D0400 A4991406

        GPR0..... ********_00022798  GPR1..... ********_00000030  GPR2.....
********_00F898C4  GPR3..... ********_00000001          
        GPR4..... ********_2499A9F8  GPR5..... ********_25E98940  GPR6.....
********_2499CB38  GPR7..... ********_25E71528          
        GPR8..... ********_26093E70  GPR9..... ********_1C7AC560  GPR10....
********_000223BC  GPR11.... ********_25E9336C          
        GPR12.... ********_24990E78  GPR13.... ********_000226C8  GPR14....
********_A4991388  GPR15.... ********_00000000          
        FPC...... 00000000

        FPR0..... 45EA1145  00000000            FPR1..... 43169000  00000000

        FPR2..... 4D5438B2  C38FA400            FPR3..... 35000000  00000000

        FPR4..... 433E8000  00000000            FPR5..... 41A00000  00000000

        FPR6..... 35000000  00000000            FPR7..... 33000000  00000000

        FPR8..... 00000000  00000000            FPR9..... 00000000  00000000

        FPR10.... 00000000  00000000            FPR11.... 00000000  00000000

        FPR12.... 00000000  00000000            FPR13.... 00000000  00000000

        FPR14.... 00000000  00000000            FPR15.... 00000000  00000000

 

    Storage dump near condition, beginning at location: 249913F2

      +000000 249913F2  07004510 C5840000 00305810 10000A6B  B20A0080
A73E0002 A7840011 E32090F8  |....Ed.........,....x...xd..T..8|

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to