[tip:perfcounters/core] perf_counter: Add mmap event hooks to mprotect()

From: tip-bot for Peter Zijlstra
Date: Mon Jun 08 2009 - 17:34:17 EST


Commit-ID: dab5855b12411334355ba21349a06700e4ae7a3b
Gitweb: http://git.kernel.org/tip/dab5855b12411334355ba21349a06700e4ae7a3b
Author: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
AuthorDate: Mon, 8 Jun 2009 21:11:57 +0300
Committer: Ingo Molnar <mingo@xxxxxxx>
CommitDate: Mon, 8 Jun 2009 23:10:43 +0200

perf_counter: Add mmap event hooks to mprotect()

Some JIT compilers allocate memory for generated code with
posix_memalign() + mprotect() so we need to hook into mprotect()
to make sure 'perf' is aware that we're executing code in
anonymous memory.

[ penberg@xxxxxxxxxxxxxx: move the hook to sys_mprotect() ]
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx>
LKML-Reference: <Pine.LNX.4.64.0906082111030.12407@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>


---
mm/mprotect.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/mm/mprotect.c b/mm/mprotect.c
index 258197b..d80311b 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -23,6 +23,7 @@
#include <linux/swapops.h>
#include <linux/mmu_notifier.h>
#include <linux/migrate.h>
+#include <linux/perf_counter.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
#include <asm/cacheflush.h>
@@ -299,6 +300,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
if (error)
goto out;
+ perf_counter_mmap(vma);
nstart = tmp;

if (nstart < prev->vm_end)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/