From owner-svn-src-head@FreeBSD.ORG Sat Jul 11 22:27:21 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21D601065670; Sat, 11 Jul 2009 22:27:21 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0C1F88FC17; Sat, 11 Jul 2009 22:27:21 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n6BMRKCC065013; Sat, 11 Jul 2009 22:27:20 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n6BMRKPe065011; Sat, 11 Jul 2009 22:27:20 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <200907112227.n6BMRKPe065011@svn.freebsd.org> From: Marcel Moolenaar Date: Sat, 11 Jul 2009 22:27:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r195625 - head/sys/ia64/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jul 2009 22:27:21 -0000 Author: marcel Date: Sat Jul 11 22:27:20 2009 New Revision: 195625 URL: http://svn.freebsd.org/changeset/base/195625 Log: On exec(2), when loading the ELF image, pmap_enter_object() is called to prefault pages. This is an obvious place for making sure the I-cache is coherent. It was missing though. As such, execution over NFS and ZFS file systems was failing. NFS was fixed the wrong way (by flushing the D-cache as part of the NFS code) in a previous commit. ZFS problems were encountered after that and indicated that something else was wrong... Approved by: re (kib) Modified: head/sys/ia64/ia64/pmap.c Modified: head/sys/ia64/ia64/pmap.c ============================================================================== --- head/sys/ia64/ia64/pmap.c Sat Jul 11 21:56:23 2009 (r195624) +++ head/sys/ia64/ia64/pmap.c Sat Jul 11 22:27:20 2009 (r195625) @@ -1733,6 +1733,9 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ pmap_pte_prot(pmap, pte, prot & (VM_PROT_READ | VM_PROT_EXECUTE)); pmap_set_pte(pte, va, VM_PAGE_TO_PHYS(m), FALSE, managed); + + if (prot & VM_PROT_EXECUTE) + ia64_sync_icache(va, PAGE_SIZE); } }