[Simh] Throttling and this release

Johnny Billquist bqt at softjar.se
Sun Jul 8 09:03:28 EDT 2012


On 2012-07-08 14:22, Stephen Hoffman wrote:
>
> Circa Sat, 7 Jul 2012 15:00:38 -0700, Mark Pizzolato - Info Comm <Mark at infocomm.com> posited:
>> This is exactly the goal.
>> IPL 1 is not used anywhere in the NetBSD kernel so this the transition to IPL 1 can be used as the idle trigger for that OS.
>
> Solely as VAX trivia and not as a solution for NetBSD or OpenVMS VAX, VAX had an architected idle notification mechanism for operating in a virtual machine, and related instructions and registers.
>
> 02FD  WAIT  Wait for Interrupt
>
> This instruction signals idle time from the guest operating system to the real machine operating system (RMOS); from the guest to the virtual machine.

It is unfortunate that they decided from the start to not have a WAIT 
instruction on the VAX. The above WAIT was added very late, when they 
started thinking about virtual machines on the VAX, when they realized 
that a WAIT is good to have.
(The PDP-11 do have a WAIT instruction, but they decided for some reason 
to remove such a thing from the VAX.)

> OpenVMS VAX does not implement WAIT nor other related instructions, which means that this is architectural trivia and not generally useful for idle detection nor related virtual machine processing.

Hum... I don't know the innards of OpenVMS here, but OpenVMS itself 
can't "implement" WAIT. It could however simulate/emulate it.
What would be interesting to know though, is if OpenVMS issues a WAIT 
instruction in the idle loop. Do you know, Stephen?

I guess it would be fairly trivial to check in simh if that instruction 
is ever encountered. And then follow the same rules as laid out in Std32 
- if in kernel mode, do a real wait, else perform the normal instruction 
trap.

Trapping and implementing the WAIT in OpenVMS for its own use would just 
be a reimplementation of the existing idle loop, since you can't 
actually implement what a WAIT do properly. I can understand if they 
didn't bother with that.

> For details, see chapter 12 of DEC Standard 32 <http://bitsavers.org/pdf/dec/vax/archSpec/> document.  Don't bother looking in your handbook.
>
> Yes; using IPL detection is the easiest approach, and generally applicable.

I haven't looked, but how do simh detect OpenVMS idle today? NetBSD is 
simple, since we can play with the source...

	Johnny



More information about the Simh mailing list