[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8fe920fc-83e5-4892-9457-45da6ed23a09@lucifer.local>
Date: Wed, 13 Aug 2025 06:28:08 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: tglx@...utronix.de, linux-kernel@...r.kernel.org,
torvalds@...uxfoundation.org, mingo@...nel.org, namhyung@...nel.org,
acme@...hat.com, kees@...nel.org
Subject: Re: [PATCH v3 04/15] perf: Move perf_mmap_calc_limits() into both rb
and aux branches
On Tue, Aug 12, 2025 at 12:39:02PM +0200, Peter Zijlstra wrote:
> if (cond) {
> A;
> } else {
> B;
> }
> C;
>
> into
>
> if (cond) {
> A;
> C;
> } else {
> B;
> C;
> }
>
> Suggested-by: Thomas Gleixner <tglx@...utronix.de>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Seems sensible enough, guessing trade off on duplication vs. complexity of
having to keep track of 'C' being in place for both and I assume makes
later refactorings easier :)
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
> ---
> kernel/events/core.c | 26 ++++++++++++++++++--------
> 1 file changed, 18 insertions(+), 8 deletions(-)
>
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -7054,6 +7054,16 @@ static int perf_mmap(struct file *file,
> ring_buffer_attach(event, NULL);
> }
>
> + if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
> + ret = -EPERM;
> + goto unlock;
> + }
> +
> + WARN_ON(!rb && event->rb);
> +
> + if (vma->vm_flags & VM_WRITE)
> + flags |= RING_BUFFER_WRITABLE;
> +
> } else {
> /*
> * AUX area mapping: if rb->aux_nr_pages != 0, it's already
> @@ -7100,17 +7110,17 @@ static int perf_mmap(struct file *file,
> ret = 0;
> goto unlock;
> }
> - }
>
> - if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
> - ret = -EPERM;
> - goto unlock;
> - }
> + if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
> + ret = -EPERM;
> + goto unlock;
> + }
>
> - WARN_ON(!rb && event->rb);
> + WARN_ON(!rb && event->rb);
>
> - if (vma->vm_flags & VM_WRITE)
> - flags |= RING_BUFFER_WRITABLE;
> + if (vma->vm_flags & VM_WRITE)
> + flags |= RING_BUFFER_WRITABLE;
> + }
>
> if (!rb) {
> rb = rb_alloc(nr_pages,
>
>
Powered by blists - more mailing lists