[Simh] Idle problem with VAX/VMS V4.7 on Simh V3.8-0
Jason Stevens
neozeed at gmail.com
Mon Sep 22 17:50:08 EDT 2008
>
> Now the question is: which is the difference between idle=VMS and idle=32v
> and
> why VMS 4.x works better with the "wrong" setting?
>
In the code it's really quite simple:
from vax_cpu.c
In version 3.8-0
uint32 cpu_idle_ipl_mask = 0x8; /* idle if on IPL 3
*/
And yet in 3.7-1
uint32 cpu_idle_ipl_mask = 0xB; /* idle if on IPL
0,1,3*/
So of course I've tried changing the 0x8 to 0xB to
no discernible difference. There is also this in 3.8-0 that let's you
select the 'os'
static struct os_idle os_tab[] = {
{ "VMS", 0x8 },
{ "NETBSD", 0x2 },
{ "ULTRIX", 0x2 },
{ "OPENBSD", 0x1 },
{ "32V", 0x1 },
{ "0", 0x0 }, //Added for testing
{ "1", 0x1 }, //by Jason
{ "2", 0x2 },
{ "3", 0x3 },
{ "4", 0x4 },
{ "5", 0x5 },
{ "6", 0x6 },
{ "7", 0x7 },
{ "8", 0x8 },
{ "9", 0x9 },
{ "A", 0xa },
{ "B", 0xb },
{ "C", 0xc },
{ "D", 0xd },
{ "E", 0xe },
{ "F", 0xf },
{ NULL, 0 }
};
t_stat cpu_set_idle (UNIT *uptr, int32 val, char *cptr, void *desc)
{
uint32 i;
if (cptr != NULL) {
for (i = 0; os_tab[i].name != NULL; i++) {
if (strcmp (os_tab[i].name, cptr) == 0) {
cpu_idle_type = i + 1;
cpu_idle_ipl_mask = os_tab[i].mask;
return sim_set_idle (uptr, val, cptr, desc);
}
}
return SCPE_ARG;
}
return sim_set_idle (uptr, val, cptr, desc);
}
So what I've done is added one byte's worth of IPL masking in the equation,
and they all suck up 100% of the cpu, except the 32V setting, although the
slightest thing can knock it back to 100%.
I did have a nonsense version I built that would print "i" every time it
should idle, and flush out stdout, and it actually did reduce cpu
consumption.... although the console is useless.
> Thanks again,
> G.
>
I'll keep on plugging away... It's annoying I though I did have a 'fixed'
back port of it, but naturally I can't find it anywhere.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20080922/66406a98/attachment-0003.html>
More information about the Simh
mailing list