Hello, I have used Mark's master originally - that did not really cope with the newest NetBSD v5.1.2 idle handling.
Now I have tried to apply Christopher's patch against SIMH V3.8-1. Tested with NETBSD, OPENBSD etc idle settings without any result. I guess the best way would be, indeed, to suggest adding an idle detection pattern, as Mark suggested, to the NetBSD kernel. I'll give a try, but because I am not the most competent in this area, it would be much more efficient if the NetBSD core developers could negotiate with Mark directly. Thank you. Regards, Z -----Original Message----- From: Christopher Redmon [mailto:credmons...@gmail.com] Sent: den 10 april 2012 03:07 To: simh@trailing-edge.com Subject: Re: [Simh] cpu idle with NetBSD Try "cpu idle=OpenBSD". Available options are VMS, NetBSD, OpenBSD, Ultrix, and 32V. Off all those, the OpenBSD option throttled down my NetBSD/vax 5.0.2 simulation the best. Chris On Mon, Apr 9, 2012 at 3:02 PM, Mark Pizzolato - Info Comm <m...@infocomm.com> wrote: > On Monday, April 09, 2012 at 10:44 AM, Arpadffy Zoltan wrote: >> Hello Mark, >> >> Thank you for the detailed description. >> >> Running x86/amd64 version of NetBSD is not an option in my case (in fact I do >> already) because the only way of the lifting forward the vax architecture >> specific development is to run NetBSD on vax. > > The existing issue (with detecting idle), exists due to some of the prior > 'lifting' efforts which changed how the VAX specific code was doing things > while idle. > >> Definitely, the right way to go is to find that specific reasonable set of >> conditions which uniquely describe the guest NetBSD idling under simh. >> I'll do my best. > > If you're actually influencing the content of the VAX specific code for > NetBSD, then you could probably create a specific signature.... For example, > there probably is a relatively low IPL which is not used by NetBSD. Let's > say that is IPL4. You could have a routine: > Vax_idle() > { > Int oldipl = getipl(); > Setipl(unused_ipl); > Setipl(oldipl); > } > > The mere use of the setipl to the known to be unused IPL would be a > sufficient condition which you could add in the code and could then be > detected in the simulator, but would still run fine on real hardware as well. > > - Mark > >> ________________________________________ >> From: Mark Pizzolato - Info Comm [m...@infocomm.com] >> Sent: Monday, April 09, 2012 6:12 PM >> To: Arpadffy Zoltan; simh@trailing-edge.com >> Subject: RE: cpu idle with NetBSD >> >> On Sunday, April 08, 2012 at 9:00 AM, Arpadffy Zoltan wrote: >> > Hello, >> > >> > I have recently installed a NetBSD version 5.1.2 and realized that it >> > takes 100% of the CPU. >> > >> > I have tried with >> > set cpu idle=NETBSD >> > >> > as well as with the >> > set cpu idle=ALL >> > >> > ...without any success. >> > Could anybody help me; what I am doing wrong? >> >> Hi Zoltan, >> >> The only thing you are doing wrong is trying to run a recent version of >> NetBSD on a VAX. Why are you doing that? Why not run an x86/x64 the >> recent version of NetBSD under VirtualBox or other x86 hypervisor? >> >> The challenge for idle detection for any particular operating system is to >> determine a set of conditions which uniquely exist only when the OS is in the >> idle state. For example, for older VMS Versions, the Idle loop was: >> >> $1: br{b,w} $1 ; While >> the CPU was at IPL 0. >> >> More recent VMS Versions have an idle loop which does a BBS instruction at >> IPL 3 on the interrupt stack, with the BBS branch taken. This is the only >> case >> where the BBS instruction is used at IPL 3 on the interrupt stack in VMS, so >> that condition causes simh to idle. >> Older versions of Ultrix, as well as the older versions of OpenBSD, NetBSD, >> and FreeBSD have a common idle detection condition which is common due >> to the fact that they all have common BSD roots. The condition which >> describes the OS idle here is a TSTL instruction which is running at IPL 0 >> from a >> low addresses in system space (8000000-80003FFF) which is a 6 byte TSTL >> instruction. Later versions of Ultrix had different conditions (BITL >> instruction, >> 8 bytes long, running on interrupt stack, at IPL 24, in system space between >> 8000000-80005ffff). >> These conditions uniquely describe the respective guest OS idling state. >> They have been determined by a combination of examining the instructions >> which are executing when the OS isn't doing anything useful (leveraging the >> simh VAX set cpu history command), and then verified by looking at the OS >> source for the relevant code. >> This was easy enough to do with the older 'legacy' (non changing) guest >> OSes. Meanwhile, the *BSD OSes are a moving target since they're still being >> developed. They have each diverged in different ways from their older BSD >> roots and due to their idling redesigns to work better on newer hardware >> (Multi-Core and power efficient). I was unable to detect a useful pattern >> which uniquely described the guest OS idle condition in the current VAX >> code. >> >> My recommendation to run the x86/amd64 version of NetBSD comes down >> to the fact that the x86 platform specific parts of NetBSD will try to put >> the >> CPU into a low power state when the NetBSD OS is idling. Taking this >> approach will also get you a much quicker NetBSD OS environment since the >> x86 instructions will be running mostly directly by the host processor >> instead >> of having the simh simulation overhead. >> >> Alternative, Feel free to see if you can come up with a reasonable set of >> conditions which uniquely describe the guest NetBSD idling under simh. If >> you do we'll consider adding it to the VAX idling conditions. >> >> Good Luck, >> >> - Mark >> >> >> >> _______________________________________________ >> Simh mailing list >> Simh@trailing-edge.com >> http://mailman.trailing-edge.com/mailman/listinfo/simh > > > _______________________________________________ > Simh mailing list > Simh@trailing-edge.com > http://mailman.trailing-edge.com/mailman/listinfo/simh _______________________________________________ Simh mailing list Simh@trailing-edge.com http://mailman.trailing-edge.com/mailman/listinfo/simh _______________________________________________ Simh mailing list Simh@trailing-edge.com http://mailman.trailing-edge.com/mailman/listinfo/simh