Subject: Re: 1.6.1 lack of stability on cats
To: None <Richard.Earnshaw@arm.com>
From: Chris Gilbert <chris@dokein.co.uk>
List: port-arm
Date: 02/11/2003 13:41:56
Richard Earnshaw said:
> Here's one ARM patch in the right time-frame:
>
> revision 1.23
> date: 2002/11/24 01:07:47;  author: chris;  state: Exp;  lines: +2 -2
> Fix's DEBUG kernel's not making it into multiuser on cats. (as spotted
> by nick)
> When wiring a page with pmap_enter you must supply the protection in the
> flags as well as in the prot.
>
> Chris, can you remember what this was for?  Especially interesting is
> that  last bit.

Yes, the page is wired, and it should have specified it's permissions for
the page in the flags arg. Wired pages need the permissions to be set up
front as they're supposed to be safe to access at all times, IE shouldn't
need paging in. Not having the flags I think causes a page fault when
accessed (npte has doesn't get setup, see line 2868 for the npte setup
code).  Jason may be able to give a better description as he told me how
this stuff works, as my memory has forgotten the exact details.

I think that a DEBUG kernel panic'd when it tried to fault a page in that
should have been wired, I tracked it down to the pte not having the right
flags, and added the assert to the pmap (checked into revision 1.123) to
catch this happening again.  The assert was triggered by the bug in
vm_machdep.c.

No idea if that will have fixed this bug as well, but certainly it may
have an impact.

Chris