[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3be7fd83-e209-49ec-8d81-ba6a60d4da94@lucifer.local>
Date: Mon, 11 Aug 2025 13:58:24 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>,
Linus Torvalds <torvalds@...uxfoundation.org>,
Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Arnaldo Carvalho de Melo <acme@...hat.com>,
Kees Cook <kees@...nel.org>
Subject: Re: [patch V2 RESEND 3/6] perf/core: Split out VM accounting
On Mon, Aug 11, 2025 at 02:36:33PM +0200, Thomas Gleixner wrote:
> Similary to the mlock limit calculation the VM accounting is required for
NIT: Similary -> similarly
> both the ringbuffer and the AUX buffer allocations.
>
> To prepare for splitting them out into seperate functions, move the
NIT: seperate -> separate
> accounting into a helper function.
>
> Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
>
> ---
> kernel/events/core.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -6962,10 +6962,17 @@ static bool perf_mmap_calc_limits(struct
> return locked <= lock_limit || !perf_is_paranoid() || capable(CAP_IPC_LOCK);
> }
>
> +static void perf_mmap_account(struct vm_area_struct *vma, long user_extra, long extra)
> +{
> + struct user_struct *user = current_user();
> +
> + atomic_long_add(user_extra, &user->locked_vm);
> + atomic64_add(extra, &vma->vm_mm->pinned_vm);
> +}
> +
> static int perf_mmap(struct file *file, struct vm_area_struct *vma)
> {
> struct perf_event *event = file->private_data;
> - struct user_struct *user = current_user();
> unsigned long vma_size, nr_pages;
> long user_extra = 0, extra = 0;
> struct mutex *aux_mutex = NULL;
> @@ -7136,9 +7143,7 @@ static int perf_mmap(struct file *file,
>
> unlock:
> if (!ret) {
> - atomic_long_add(user_extra, &user->locked_vm);
> - atomic64_add(extra, &vma->vm_mm->pinned_vm);
> -
> + perf_mmap_account(vma, user_extra, extra);
> atomic_inc(&event->mmap_count);
> } else if (rb) {
> /* AUX allocation failed */
>
>
>
Powered by blists - more mailing lists