Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dab5855b authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

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: default avatarPekka Enberg <penberg@cs.helsinki.fi>
LKML-Reference: <Pine.LNX.4.64.0906082111030.12407@melkki.cs.Helsinki.FI>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 820a6442
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@
#include <linux/swapops.h>
#include <linux/swapops.h>
#include <linux/mmu_notifier.h>
#include <linux/mmu_notifier.h>
#include <linux/migrate.h>
#include <linux/migrate.h>
#include <linux/perf_counter.h>
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
#include <asm/pgtable.h>
#include <asm/cacheflush.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);
		error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
		if (error)
		if (error)
			goto out;
			goto out;
		perf_counter_mmap(vma);
		nstart = tmp;
		nstart = tmp;


		if (nstart < prev->vm_end)
		if (nstart < prev->vm_end)