On Wednesday, March 13, 2013 at 2:41 PM, Cory Smelosky wrote:
On 13 Mar 2013, at 17:38, "Mark Pizzolato - Info Comm"
<Mark at infocomm.com> wrote:
On Wednesday, March 13, 2013 at 1:09 PM, Cory Smelosky wrote:
On 13 Mar 2013, at 16:05, "Cory Smelosky" <b4 at gewt.net> wrote:
On 13 Mar 2013, at 15:43, "Mark Pizzolato - Info Comm"
<Mark at infocomm.com> wrote:
On Wednesday, March 13, 2013 at 12:11 PM, Cory Smelosky wrote:
On 13 Mar 2013, at 15:04, "Mark Pizzolato - Info Comm"
<Mark at infocomm.com> wrote:
On Wednesday, March 13, 2013 at 11:51 AM, Cory Smelosky wrote:
Speaking of SIMH on Solaris and similar...is SIMH capable of SET
CPU IDLE in zones on SPARC? It looks like 3.9-0 can't.
[...]
Idling for any simulator requires that the host system's clock
tick be <= the size of the simulated system's clock tick. VAX
systems have a clock tick of 10ms.. Idling for simulated VAX
systems works best
if the host clock tick is 1ms.
Windows systems have a user mode programmatically settable clock
tick size (a facility useful for some media playback capabilities).
On Windows systems simh will set the host's clock tick to 1ms
while a
simulator is running.
We haven't seen programmatically settable host clock tick sizes
on
other platforms.
In general, other platforms have a tick size which can be changed
in some system specific way (which might require building a
kernel
with a desired tick size) or not changeable at
all. This issue comes up often enough that adding how to make
these
system specific
adjustments would be a useful addition to the simh FAQ. Any
feedback on this subject will be welcome.
Ahhh.
"Solaris timing uses a real-time clock that can generate
interrupts at a resolution bound by the processor speed. For
scheduling purposes, it fires every 10 milliseconds. As in Linux,
this is a clock "tick." Note that 2.6 Linux uses a
1000-tick/second clock, as opposed to the 100-tick/second clock
used by Solaris and by previous versions of Linux. User-level
programs on Solaris can program the real
time clock to fire at nanosecond granularity, rounded up by processor
time-- much finer than the clock tick granularity of ten or one milliseconds.
However, the program interface to use the high-resolution timers
is not visible in the DDI/DKI. See clock_settime(3rt) for
user-level details andusr/src/uts/common/os/cyclic.c for details
on high-resolution
timing in Solaris.
Also note that in Solaris, you can change the value of hz or clock
ticks/second by setting hires_tick to 1 and hires_hz to the
desired time in the /etc/system file. The default is
1000 ticks per second. Here's an example:
set hires_tick=1
set hires_hz=10000 <~--- 10000 ticks per second"
Looks like Solaris can set it in user mode, too.
This 'documented' tick rate would seem to meet simh's requirements
without any adjustments.
Does the current simh code work? If not, what does it think the
tick size
is?
I will tell you once I work around ld: fatal: auxiliary filter
option (-f, --auxiliary) is only available when building a shared
object
ld: fatal: flags processing errors
;)
sim> SET cpu idle
Idling is not available, Minimum OS sleep time is 11ms Command not
allowed
Same result as Brian. 11ms instead of 10.
OK. So, now it is time to try and adjust the system clock tick.
What are the current values in /etc/system?
What happens if you change /etc/system to have:
set hires_tick=1
set hires_hz=1000
Reboot and try the simh vax again....
Is it okay if I wait a day or so to add those? It requires a reboot to do that and
i'm planning on taking the system down for maintenance in a couple days
when some NICs get here. I like not having to reboot multiple times. ;)
Sure, but what are the current values in /etc/system?
Meanwhile, I've changed the makefile so that it should work on your platform without
any modification. Please test the latest from github.
Thanks.
- Mark
Show replies by date