svn commit: r195625 - head/sys/ia64/ia64

Marcel Moolenaar marcel at FreeBSD.org
Sat Jul 11 22:27:21 UTC 2009


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);
 	}
 }
 


More information about the svn-src-all mailing list