diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-06-08 20:11:57 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-06-08 23:10:43 +0200 |
commit | dab5855b12411334355ba21349a06700e4ae7a3b (patch) | |
tree | ab4e5c1893fc24e0bdb39ab8fc291aba39278c35 | |
parent | perf_counter, x86: Clean up hw_cache_event ids copies (diff) | |
download | linux-dab5855b12411334355ba21349a06700e4ae7a3b.tar.xz linux-dab5855b12411334355ba21349a06700e4ae7a3b.zip |
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@cs.helsinki.fi: move the hook to sys_mprotect() ]
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
LKML-Reference: <Pine.LNX.4.64.0906082111030.12407@melkki.cs.Helsinki.FI>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | mm/mprotect.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/mprotect.c b/mm/mprotect.c index 258197b76fb4..d80311baeb2d 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) |