Date: Sat, 11 Jul 2009 22:27:20 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r195625 - head/sys/ia64/ia64 Message-ID: <200907112227.n6BMRKPe065011@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907112227.n6BMRKPe065011>