svn commit: r312901 - head/sys/kern

Mateusz Guzik mjg at FreeBSD.org
Fri Jan 27 22:13:16 UTC 2017


Author: mjg
Date: Fri Jan 27 22:13:15 2017
New Revision: 312901
URL: https://svnweb.freebsd.org/changeset/base/312901

Log:
  hwpmc: partially depessimize mmap handling if the module is not loaded
  
  In particular this means the pmc sx lock is no longer taken when an
  executable mapping succeeds.
  
  MFC after:	1 week

Modified:
  head/sys/kern/vfs_vnops.c

Modified: head/sys/kern/vfs_vnops.c
==============================================================================
--- head/sys/kern/vfs_vnops.c	Fri Jan 27 21:55:47 2017	(r312900)
+++ head/sys/kern/vfs_vnops.c	Fri Jan 27 22:13:15 2017	(r312901)
@@ -2460,10 +2460,12 @@ vn_mmap(struct file *fp, vm_map_t map, v
 	}
 #ifdef HWPMC_HOOKS
 	/* Inform hwpmc(4) if an executable is being mapped. */
-	if (error == 0 && (prot & VM_PROT_EXECUTE) != 0) {
-		pkm.pm_file = vp;
-		pkm.pm_address = (uintptr_t) *addr;
-		PMC_CALL_HOOK(td, PMC_FN_MMAP, (void *) &pkm);
+	if (PMC_HOOK_INSTALLED(PMC_FN_MMAP)) {
+		if ((prot & VM_PROT_EXECUTE) != 0 && error == 0) {
+			pkm.pm_file = vp;
+			pkm.pm_address = (uintptr_t) *addr;
+			PMC_CALL_HOOK(td, PMC_FN_MMAP, (void *) &pkm);
+		}
 	}
 #endif
 	return (error);


More information about the svn-src-all mailing list