Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 May 2009 11:42:39 -0500
From:      Alan Cox <alc@cs.rice.edu>
To:        =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= <des@des.no>
Cc:        alc@freebsd.org, arch@freebsd.org
Subject:   Re: PTE modified bit emulation trap
Message-ID:  <4A0C49FF.1070707@cs.rice.edu>
In-Reply-To: <86prec4kwj.fsf@ds4.des.no>
References:  <86tz3o4lb9.fsf@ds4.des.no> <86prec4kwj.fsf@ds4.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help
Dag-Erling Smørgrav wrote:
> [from -alpha, -hackers]
>
> Dag-Erling Smørgrav <des@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A0C49FF.1070707>