Skip site navigation (1)Skip section navigation (2)
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>