[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f51fa4b7-58b2-4e0b-9e6d-0d5bb032b0c4@lucifer.local>
Date: Wed, 13 Aug 2025 06:41:50 +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 05/15] perf: Merge consecutive conditionals in
perf_mmap()
On Tue, Aug 12, 2025 at 12:39:03PM +0200, Peter Zijlstra wrote:
> if (cond) {
> A;
> } else {
> B;
> }
>
> if (cond) {
> C;
> } else {
> D;
> }
>
> into:
>
> if (cond) {
> A;
> C;
> } else {
> B;
> D;
> }
>
> Notably the conditions are not identical in form, but are equivalent.
Good to point out.
>
> Suggested-by: Thomas Gleixner <tglx@...utronix.de>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Seems logical and reduces complexity, so LGTM and:
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
> ---
> kernel/events/core.c | 41 +++++++++++++++++++----------------------
> 1 file changed, 19 insertions(+), 22 deletions(-)
>
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -7064,6 +7064,25 @@ static int perf_mmap(struct file *file,
> if (vma->vm_flags & VM_WRITE)
> flags |= RING_BUFFER_WRITABLE;
>
> + rb = rb_alloc(nr_pages,
> + event->attr.watermark ? event->attr.wakeup_watermark : 0,
> + event->cpu, flags);
> +
> + if (!rb) {
> + ret = -ENOMEM;
> + goto unlock;
> + }
> +
> + atomic_set(&rb->mmap_count, 1);
> + rb->mmap_user = get_current_user();
> + rb->mmap_locked = extra;
> +
> + ring_buffer_attach(event, rb);
> +
> + perf_event_update_time(event);
> + perf_event_init_userpage(event);
> + perf_event_update_userpage(event);
> + ret = 0;
> } else {
> /*
> * AUX area mapping: if rb->aux_nr_pages != 0, it's already
> @@ -7120,29 +7139,7 @@ static int perf_mmap(struct file *file,
>
> if (vma->vm_flags & VM_WRITE)
> flags |= RING_BUFFER_WRITABLE;
> - }
>
> - if (!rb) {
> - rb = rb_alloc(nr_pages,
> - event->attr.watermark ? event->attr.wakeup_watermark : 0,
> - event->cpu, flags);
> -
> - if (!rb) {
> - ret = -ENOMEM;
> - goto unlock;
> - }
> -
> - atomic_set(&rb->mmap_count, 1);
> - rb->mmap_user = get_current_user();
> - rb->mmap_locked = extra;
> -
> - ring_buffer_attach(event, rb);
> -
> - perf_event_update_time(event);
> - perf_event_init_userpage(event);
> - perf_event_update_userpage(event);
> - ret = 0;
> - } else {
> ret = rb_alloc_aux(rb, event, vma->vm_pgoff, nr_pages,
> event->attr.aux_watermark, flags);
> if (!ret) {
>
>
Powered by blists - more mailing lists