[Info-vax] Current expected range for x86-64 first boot date ?
Mike Moroney
Wed Dec 5 22:00:15 EST 2018
On 12/4/2018 8:29 AM, clair.grant at vmssoftware.com wrote:
> Calling SCHED$INIT unleashes the beginnings of a much bigger environment, namely lowering IPL and changing modes. This brings into play much more of the newly-written x86-specific code, in particular page tables for the outer modes, switching modes, and creating a process. Here is recent (yesterday) output including temporary develop helpers.
>
> %EXECINIT-I-ACTIVESET, joining ACTIVE set
> %EXECINIT-S-CIAO, transferring to the scheduler
> Lowering ipl to 3
> Acquiring SCHED lock at IPL 8
> Find next process to schedule; curktb = 0
> New ktb: 800a9718
> Find structures for new thread
> Mark cpu active
> Switch context
> SWPCTX FFFFFFFF858B4620
> FNDHWPCB
> LOG IT
> SAVExSP
> SAVEUNQ
> SAVEASTx
> SAVERSP
> SAVEIDEP
> SWPCC
> LOADPTBR
> NEWPCB FFFFFFFF800A8880
> ASN 00000000000003FF
> PTBR 0000000000EDC000
> CR3 0000000000EDC3FF
> LOADRSP
> LOADASTx
> LOADHPCB
> LOADIDEP
> LOADUNQ
> LOADxSP
> LOG IT
> FIRSTUSE
> XRSTOR FFFF8300103484C0
> CLRREGS
> FUNC
> FUNC FFFFFFFF858B4620
> Never scheduled
> find structures again
> Release sched lock
> Lower ipl to ASTDEL
> newhwpcb: 800a8880
> sch$ar_swppcb(800a9718)->pcb$l_phd(800a8800)->phd$q_hwpcb(@800a8880)
> Enter swapper main loop
> %SWAPPER-I-SHUFFLE, executing SWAPPER initialization code
> %SWAPPER-I-POOL, initializing paged pool
> %SWAPPER-I-INIT, calling initialization routines
> %SWAPPER-I-RSDM, joining system resource domain
> %SWAPPER-I-P1, initializing SWAPPER P1 cells
> %SWAPPER-I-PAGED, paged system initialization
> %SWAPPER-I-HASH, creating the logical name hash tables
> %SWAPPER-I-DEFINE, defining the system logical names
>
> Another significant factor is that we are now up far enough that a number of things can be debugged
> in parallel. A few weeks ago it was really a straight line of single stepping execution but now we
> usually have at least five paths of debugging going on without serious dependencies on one another.
I can say it goes a little further now. I got logical names mostly
working now and now it goes as far as the $CREPRC of SYSINIT and returns
to the main SWAPPER loop. The $CREPRC doesn't work (known issue) and the
SWAPPER loop, well, isn't ready yet.
At least I am away from memory management for now. Fugly. How many
levels of page tables? Variable levels? Add to it VMS-specific stuff and
it is that much worse. And the instruction set/registers... it's obvious
this evolved, it wasn't designed...
Also the further along we go the more code is recompiled existing code
rather than x86 specific like the memory management.
More information about the Info-vax
mailing list