summaryrefslogtreecommitdiff
path: root/samples/hw_breakpoint
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2013-05-28 08:55:48 (GMT)
committerIngo Molnar <mingo@kernel.org>2013-05-28 09:05:08 (GMT)
commit26cb63ad11e04047a64309362674bcbbd6a6f246 (patch)
tree559c0a9778e7aa6639a24d9a7951879dc65d0551 /samples/hw_breakpoint
parent7b959fc582741227a1c4cba710d6aff8fb183128 (diff)
downloadlinux-26cb63ad11e04047a64309362674bcbbd6a6f246.tar.xz
perf: Fix perf mmap bugs
Vince reported a problem found by his perf specific trinity fuzzer. Al noticed 2 problems with perf's mmap(): - it has issues against fork() since we use vma->vm_mm for accounting. - it has an rb refcount leak on double mmap(). We fix the issues against fork() by using VM_DONTCOPY; I don't think there's code out there that uses this; we didn't hear about weird accounting problems/crashes. If we do need this to work, the previously proposed VM_PINNED could make this work. Aside from the rb reference leak spotted by Al, Vince's example prog was indeed doing a double mmap() through the use of perf_event_set_output(). This exposes another problem, since we now have 2 events with one buffer, the accounting gets screwy because we account per event. Fix this by making the buffer responsible for its own accounting. Reported-by: Vince Weaver <vincent.weaver@maine.edu> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Link: http://lkml.kernel.org/r/20130528085548.GA12193@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'samples/hw_breakpoint')
0 files changed, 0 insertions, 0 deletions