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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.