Port-vax archive

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

re: Reproducable kernel crash



> > 	do_lwp_create( ...., &l2, ...);
> > 	lwp_exit(l2);
> > 
> > There is a pmap_activate() call in there that makes l2's pm_pcbs have
> > two entries, and then during lwp_exit only the active one gets removed.
>
> I think this comes from vax/vm_machdep.c:113 where the new lwp gets
> forcefully activated (which is wrong, isnt't it?)
>
>
> 	pcb2->pcb_pm = NULL;
> 	pmap_activate(l2);
>
> I don't see any reason for this pmap_activate(), it would be done later
> if needed, and never in our sample at hand.

sounds about right to me.  this should genreally only be
called by MI code doing context switch.  besides this one
vax call, there are two in arm that may be an issue, though
i can perhaps see why at least the efirt one is needed:

arch/arm/arm/ast.c:             pmap_activate(l);
arch/arm/arm/efi_machdep.c:             pmap_activate(l);

does it happen without this bonus activate call?


Home | Main Index | Thread Index | Old Index