summaryrefslogtreecommitdiffstats
path: root/kernel/events
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2019-11-25 09:08:29 +0100
committerIngo Molnar <mingo@kernel.org>2019-11-25 09:08:29 +0100
commitc494cd6469ab0f4bdd663d1a2d396b0ec2f42103 (patch)
tree5830ff0a0266c5500188d1ee9df8f2cbe0871b35 /kernel/events
parentMerge tag 'perf-core-for-mingo-5.5-20191122' of git://git.kernel.org/pub/scm/... (diff)
parentperf/core: Make the mlock accounting simple again (diff)
downloadlinux-c494cd6469ab0f4bdd663d1a2d396b0ec2f42103.tar.xz
linux-c494cd6469ab0f4bdd663d1a2d396b0ec2f42103.zip
Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/events')
-rw-r--r--kernel/events/core.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 16d80ad8d6d7..059ee7116008 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -5664,10 +5664,8 @@ static void perf_mmap_close(struct vm_area_struct *vma)
perf_pmu_output_stop(event);
/* now it's safe to free the pages */
- if (!rb->aux_mmap_locked)
- atomic_long_sub(rb->aux_nr_pages, &mmap_user->locked_vm);
- else
- atomic64_sub(rb->aux_mmap_locked, &vma->vm_mm->pinned_vm);
+ atomic_long_sub(rb->aux_nr_pages - rb->aux_mmap_locked, &mmap_user->locked_vm);
+ atomic64_sub(rb->aux_mmap_locked, &vma->vm_mm->pinned_vm);
/* this has to be the last one */
rb_free_aux(rb);
@@ -5888,13 +5886,7 @@ accounting:
user_locked = atomic_long_read(&user->locked_vm) + user_extra;
- if (user_locked <= user_lock_limit) {
- /* charge all to locked_vm */
- } else if (atomic_long_read(&user->locked_vm) >= user_lock_limit) {
- /* charge all to pinned_vm */
- extra = user_extra;
- user_extra = 0;
- } else {
+ if (user_locked > user_lock_limit) {
/*
* charge locked_vm until it hits user_lock_limit;
* charge the rest from pinned_vm