Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Need help from a VAX abi expert (was: Reproducable kernel crash)



Den 2025-01-11 kl. 18:01, skrev Martin Husemann:
On Sat, Jan 11, 2025 at 05:20:42PM +0100, Anders Magnusson wrote:
Anyway; adding the settings of the page registers to cpu_lwp_fork() is
non-trivial (if the goal is just to remove the pmap_activate() call).
No, that part should not happen there, only the initialiization of the PCB
list. The registers will be set by another pmap_activate() call later in
the sequence before that lwp first time makes it to userland.

But again I am not claiming to fully understand what is going on and I
am seriously confused by some parts of the code - I will add instrumentation
and try to debug it further, now that you explained why this is needed here.
Please go ahead!  I'll try to help as much as I can - most of the vax code was written long before the advent of uvm (and lwp), so some parts are most likely wrong. Also; section 9 of the manual did not even exist back then; very much of the
implementation is "trial-and-error" :-)

-- R


Side note:
what I don't undstand is why VAX needs a list of PCBs in its struct pmap.
Doesn't this always map 1:1 to the list pcbs of all lwp's in the process?
This list handling seems to be different to all other pmaps I have seen.
Do you mean the list in PCB; pcb_pmnext?  IIRC it had to do with the logic
for handling the page table resource map (since all lwp:s in a process share
the same page table but have different PCBs).
Ok, I will read more code and ask questions...

Martin



Home | Main Index | Thread Index | Old Index