From owner-freebsd-arm@FreeBSD.ORG Sun Jan 27 00:04:02 2008 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 321BD16A41B for ; Sun, 27 Jan 2008 00:04:02 +0000 (UTC) (envelope-from mlfbsd@dong.ci0.org) Received: from dong.ci0.org (dong.ci0.org [IPv6:2001:7a8:2066:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 7D2A413C448 for ; Sun, 27 Jan 2008 00:04:01 +0000 (UTC) (envelope-from mlfbsd@dong.ci0.org) Received: from dong.ci0.org (localhost.ci0.org [127.0.0.1]) by dong.ci0.org (8.14.1/8.13.8) with ESMTP id m0R1EI78020213; Sun, 27 Jan 2008 02:14:18 +0100 (CET) (envelope-from mlfbsd@dong.ci0.org) Received: (from mlfbsd@localhost) by dong.ci0.org (8.14.1/8.13.8/Submit) id m0R1EHm4020210; Sun, 27 Jan 2008 02:14:17 +0100 (CET) (envelope-from mlfbsd) Date: Sun, 27 Jan 2008 02:14:17 +0100 From: Olivier Houchard To: Mark Tinguely Message-ID: <20080127011417.GA19569@ci0.org> References: <20080117001757.GA63358@ci0.org> <200801171548.m0HFmsFH003605@casselton.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200801171548.m0HFmsFH003605@casselton.net> User-Agent: Mutt/1.4.1i Cc: freebsd-arm@freebsd.org Subject: Re: ARM pmap cache flushed after PT modification. X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2008 00:04:02 -0000 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