PTE modified bit emulation trap
John Baldwin
jhb at freebsd.org
Fri May 15 13:11:06 UTC 2009
On Thursday 14 May 2009 12:42:39 pm Alan Cox wrote:
> Dag-Erling Smørgrav wrote:
> > [from -alpha, -hackers]
> >
> > Dag-Erling Smørgrav <des at des.no> writes:
> >
> >> Coverity complains about the lack of error checking in the following
> >> code in sys/kern/kern_sysctl.c, around line 1390:
> >>
> >> /*
> >> * Touch all the wired pages to avoid PTE modified
> >> * bit emulation traps on Alpha while holding locks
> >> * in the sysctl handler.
> >> */
> >> for (i = (wiredlen + PAGE_SIZE - 1) / PAGE_SIZE,
> >> cp = req->oldptr; i > 0; i--, cp += PAGE_SIZE) {
> >> copyin(cp, &dummy, 1);
> >> copyout(&dummy, cp, 1);
> >> }
> >>
> >> Since Alpha is dead, can we remove this, or is it still needed for other
> >> platforms?
> >>
> >
> > kmacy suggested you might be the right person to ask... the conclusion
> > so far is that it *might* be necessary on sparc64 and / or mips.
> >
>
> I think that this code may no longer be needed, but I want to
> double-check. I faced a related problem implementing superpages
> support, so I introduced an additional "access type" parameter to
> pmap_enter(). This parameter was specifically intended to allow a
> pmap_enter() implementation to preset the PTE's modified bit. I think
> that the simulated page fault that occurs on vslock()-style wiring
> passes "write access" to pmap_enter(). If so, then it's just a matter
> of tweaking the MIPS or any other pmap_enter() to actually do something
> with the "access type" parameter. Currently, only the architectures
> that implement the pmap-level support for superpages, i.e., amd64 and
> i386, do anything with this parameter.
Then it sounds like the code should definitely be removed and that if any
problems do crop up, they can be fixed in pmap_enter() instead.
--
John Baldwin
More information about the freebsd-arch
mailing list