ARM pmap cache flushed after PT modification.

Olivier Houchard mlfbsd at ci0.org
Sat Jan 26 16:04:02 PST 2008


Hi Mark,

Sorry for the very very late reply.
I like your work, and am about to commit it, however, just a small point :

On Thu, Jan 17, 2008 at 09:48:54AM -0600, Mark Tinguely wrote:
> In pmap_nuke_pv(), the vm_page_flag_clear(pg, PG_WRITEABLE) has been moved
> to the pmap_fix_cache(). 
> 

	if ((pve->pv_flags & PVF_NC) && ((pm == pmap_kernel()) ||
	     (pve->pv_flags & PVF_WRITE) || !(pve->pv_flags & PVF_MWC)))
		pmap_fix_cache(pg, pm, 0);

You only call pmap_fix_cache() if the PVF_NC bit is set, so 
vm_page_flag_clear(pg, PG_WRITEABLE) won't be called, and PVF_MOD won't be
removed, if we're removing the only writeable entry for a cacheable page, or
did I miss something ?

There were a few compile and styles nits, so I put the updated file here :
http://people.FreeBSD.org/~cognet/armpmap_fixcache.c

Thanks a lot !

Olivier


More information about the freebsd-arm mailing list