Re: Need help from a VAX abi expert (was: Reproducable kernel crash)
Anders Magnusson <[email protected]>
| Newsgroups | gmane.os.netbsd.ports.vax |
|---|---|
| Message-ID | <[email protected]> |
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