McKown, John wrote:

Well, sort of. Many priviliged instructions are dispatched via SIE. You can't 
affect those. If you have find an unimplimented priviliged instruction which is 
not trapped by SIE (hum is this possible?), then you could modify the z/VM 
software to trap go to your own routine instead of reflecting an program 
interrupt 1 to the guest. Now that I think a about it a bit more, I doubt this 
will work. I'll bet that SIE traps this and reflects the PIC 1 to the guest 
directly. I learned VM back in the VM/370 days, long before SIE existed. It 
would have worked back then. Every program interrupt back then went to VM/370's 
FLIH and was either emulated or reflected back to the guest.


Ok..

Here is my €0.02..

(PS : SIE intercept means the guest flow of instruction is ended by
returning from the SIE instruction - and an Interception code is
indicated in the SIEBK).

An instruction cannot be both "privileged" and "unimplemented" - it's
either one, or the other !

Now.. Can a privileged instruction not generate a SIE intercept ? Sure
(but you already know that)! There are lots of cases where SIE perform
the equivalent function of the privileged instruction without notifying
the SIE host. For example, there are chances a LCTL which loads an
identical value in a Control Register won't notify the host (unless the
host specifically asks for it !) - because there is no actual state change.

Also.. Any PIC 1 (Operation Exception) is a mandatory SIE intercept.
This means the Program Interrupt is NOT simulated by SIE. It is the
responsibility of the hypervisor to do that.

Of course, whether an instruction generating a SIE intercept reflects a
program interrupt to the guest depends on several factors : What is the
interception code ? Is the Guest PSW in problem state ? Is it a page
fault ? is it a *guest* page fault or a host page fault ? Is it an
opcode that would have generated a PIC 1 but that actually means
something for z/VM (B2F0 anyone ?). In light of this, yes - it should be
possible to do your own instruction under z/VM. However, there is a MUCH
simpler ways to do this : DIAG instruction ! That's a documented
extensible interface - Diagnose code can be implemented as loadable CP
modules. No need to fiddle with CP source code !

Of course, if someone wants to be able to run S/360 or S/370 code under
z/VM, it's a bit more tricky than that. Basic S/370 I/O is handled by
S/370 Accommodation Mode. But that's not the only difference between
S/370 and XA+ ! So running a S/360 or S/370 control program (i.e. one
that runs in supervisor mode and *expects* a S/360 or S/370
architectured machine) under z/VM is pretty much impossible (PSW format
changes/restrictions and Control Registers reassignments are going to
bite you). S/370 ACCOM is really only designed (as I see it) to allow
CMS programs that do I/Os to run.. But probably not something more
complicated.

--Ivan

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