Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Need help from a VAX abi expert (was: Reproducable kernel crash)
Hi folks,
new year, new try: I would love to get some help from someone who understands
the low level details of a VAX calls frame better than me:
https://mail-index.netbsd.org/port-vax/2024/02/29/msg004920.html
The problem: I would like to get rid of the superflous (and harmfull)
pmap_activate() call in vax/vm_machdep.c
https://nxr.netbsd.org/xref/src/sys/arch/vax/vax/vm_machdep.c#113
107 /*
108 * Activate address space for the new process. The PTEs have
109 * already been allocated by way of pmap_create().
110 * This writes the page table registers to the PCB.
111 */
112 pcb2->pcb_pm = NULL;
->> 113 pmap_activate(l2);
114
115 /* Mark guard page invalid in kernel stack */
116 kvtopte((uintptr_t)uv + REDZONEADDR)->pg_v = 0;
117
118 /*
119 * Set up the calls frame above (below) the trapframe and populate
120 * it with something good. This is so that we can simulate that we
121 * called cpu_lwp_bootstrap with a CALLS insn and it can return to
122 * sret.
123 */
Without that pmap_activate() the new lwp can not start (lwp_startup crashes
when jumping into it). My guess: the pmap_activate() hides something missing
from the cpu_lwp_bootstrap() setup.
Can you help spot what is missing there?
Thanks,
Martin
Home |
Main Index |
Thread Index |
Old Index