Patch "perf/core: Fix PERF_RECORD_MMAP2 prot/flags for anonymous memory" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
perf/core: Fix PERF_RECORD_MMAP2 prot/flags for anonymous memory
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
perf-core-fix-perf_record_mmap2-prot-flags-for-anonymous-memory.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
0b3589be9b98994ce3d5aeca52445d1f5627c4baMon Sep 17 00:00:00 2001
From: Peter Zijlstra <[email protected]>
Date: Thu, 26 Jan 2017 23:15:08 +0100
Subject: perf/core: Fix PERF_RECORD_MMAP2 prot/flags for anonymous memory
From: Peter Zijlstra <[email protected]>
commit 0b3589be9b98994ce3d5aeca52445d1f5627c4ba upstream.
Andres reported that MMAP2 records for anonymous memory always have their protection field 0.
Turns out, someone daft put the prot/flags generation code in the file branch, leaving them unset for anonymous memory.
--- kernel/events/core.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-)
kernel/events/core.c +21 -21
@@ -6039,6 +6039,27 @@ static void perf_event_mmap_event(structchar *buf =NULL ;char *name; +if (vma->vm_flags &VM_READ ) + prot |=PROT_READ ; +if (vma->vm_flags &VM_WRITE ) + prot |=PROT_WRITE ; +if (vma->vm_flags &VM_EXEC ) + prot |=PROT_EXEC ; + +if (vma->vm_flags &VM_MAYSHARE ) + flags =MAP_SHARED ; +else + flags =MAP_PRIVATE ; + +if (vma->vm_flags &VM_DENYWRITE ) + flags |=MAP_DENYWRITE ; +if (vma->vm_flags &VM_MAYEXEC ) + flags |=MAP_EXECUTABLE ; +if (vma->vm_flags &VM_LOCKED ) + flags |=MAP_LOCKED ; +if (vma->vm_flags &VM_HUGETLB ) + flags |=MAP_HUGETLB ; +if (file) {struct inode *inode;dev_t dev;
@@ -6065,27 +6086,6 @@ static void perf_event_mmap_event(struct maj =MAJOR (dev); min =MINOR (dev); -if (vma->vm_flags &VM_READ ) - prot |=PROT_READ ; -if (vma->vm_flags &VM_WRITE ) - prot |=PROT_WRITE ; -if (vma->vm_flags &VM_EXEC ) - prot |=PROT_EXEC ; - -if (vma->vm_flags &VM_MAYSHARE ) - flags =MAP_SHARED ; -else - flags =MAP_PRIVATE ; - -if (vma->vm_flags &VM_DENYWRITE ) - flags |=MAP_DENYWRITE ; -if (vma->vm_flags &VM_MAYEXEC ) - flags |=MAP_EXECUTABLE ; -if (vma->vm_flags &VM_LOCKED ) - flags |=MAP_LOCKED ; -if (vma->vm_flags &VM_HUGETLB ) - flags |=MAP_HUGETLB ; - goto got_name; }else {if (vma->vm_ops && vma->vm_ops->name) {
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/perf-core-fix-perf_record_mmap2-prot-flags-for-anonymous-memory.patch