Subject: Re: SIMH runs NetBSD/vax
To: Eric Smith <eric@brouhaha.com>
From: Olaf Seibert <rhialto@polderland.nl>
List: port-vax
Date: 03/15/2002 22:53:22
On Fri 15 Mar 2002 at 10:13:21 -0800, Eric Smith wrote:
> Changing the semantics of VAX instructions (even effective NOPs) still
> sounds like a bad idea to me. And it's completely unnecessary, since
> simulators like SIMH can be updated to simply detect the existing busy
> wait loop and do the right thing, without needing any changes to the OS.
I notice that the idle loop in -current is shorter than in 1.5.x. The
newer version is, I would say, much easier to detect because it is a
very tight loop which should be fairly easy to detect:
from sys/arch/vax/vax/subr.s,v 1.61 2002/02/10 22:06:45 thorpej Exp $
1: tstl _C_LABEL(sched_whichqs) # Anything ready to run?
beql 1b # no, run the idle loop again.
The idle loop I saw with 1.5 was testing 2 variables in the loop:
from sys/arch/vax/vax/subr.s,v 1.48.2.1 2000/08/02 20:01:54 ragge Exp $
1: tstl _uvm+UVM_PAGE_IDLE_ZERO
beql 2f
#if 0
calls $0,_uvm_pageidlezero
#endif
2: tstl _sched_whichqs # Anything ready to run?
beql 1b # no, continue to loop
This construct is of course a lot more difficult to detect efficiently,
although the branch forward over 0 bytes might provide a clue.
I am looking through the source of SIMH to see if it is easy to put in a
quick hack for this, but it doesn't look like it.
-Olaf.
--
___ Olaf 'Rhialto' Seibert - rhialto@polder --They that can give up essential
\X/ land.nl --liberty to purchase a little temporary safety
--------------deserve neither liberty or safety. - Benjamin Franklin, 1759
---People will accept your ideas much more readily if you tell them that
---Benjamin Franklin said it first. - Unknown