Subject: RE: Random SEGVs, an observation
To: Charles M. Hannum <root@ihack.net>
From: Steve Woodford <swoodfor@bluews.com>
List: port-arm32
Date: 11/26/1998 11:40:00
Mark wrote:
> On Thu, 26 Nov 1998, Charles M. Hannum wrote:
> > It seems that every time this happens, I get `Failed page fault in
> > kernel' syslogged. This, combined with the *lack* of a
> > `[u]vm_fault...' message, should indicate that the SEGVs occur just
> > after a failed copyin/copyout operation.
> I used to have a lot more info printed in these cases but people did not
> like it and took it out.
>
I think I've mentioned this before, but this sounds similar to an m68k
problem with kcopy() when UVM was first integrated. The comment in
m68k/copy.s reads:
* kcopy() _must_ save and restore the old fault handler since it is
* called by uiomove(), which may be in the path of servicing a non-fatal
* page fault.
Now, looking at arm32/bcopyinout.S, kcopy() just calls into the
copyin/copyout code without saving the previous handler...
If the re-entrancy problem doesn't exist on arm32, just ignore this. If it
does exist, then maybe that's the culprit.
Cheers, Steve