PTE modified bit emulation trap
Alan Cox
alc at cs.rice.edu
Thu May 14 16:42:48 UTC 2009
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.
Alan
More information about the freebsd-arch
mailing list