Re: [PATCH] perf: rework memory accounting in perf_mmap()

From: Song Liu
Date: Mon Sep 30 2019 - 01:34:42 EST




> On Sep 16, 2019, at 1:10 PM, Hechao Li <hechaol@xxxxxx> wrote:
>
> Song Liu <songliubraving@xxxxxx> wrote on Mon [2019-Sep-16 12:43:16 -0700]:
>> Hi Peter,
>>
>>> On Sep 4, 2019, at 2:46 PM, Song Liu <songliubraving@xxxxxx> wrote:
>>>
>>> perf_mmap() always increases user->locked_vm. As a result, "extra" could
>>> grow bigger than "user_extra", which doesn't make sense. Here is an
>>> example case:
>>>
>>> Note: Assume "user_lock_limit" is very small.
>>> | # of perf_mmap calls |vma->vm_mm->pinned_vm|user->locked_vm|
>>> | 0 | 0 | 0 |
>>> | 1 | user_extra | user_extra |
>>> | 2 | 3 * user_extra | 2 * user_extra|
>>> | 3 | 6 * user_extra | 3 * user_extra|
>>> | 4 | 10 * user_extra | 4 * user_extra|
>>>
>>> Fix this by maintaining proper user_extra and extra.
>>>
>>> Reported-by: Hechao Li <hechaol@xxxxxx>
>>> Cc: Jie Meng <jmeng@xxxxxx>
>>> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>>> Signed-off-by: Song Liu <songliubraving@xxxxxx>
>>
>> Could you please share your feedbacks/comments on this one?
>>
>> Thanks,
>> Song
>
> The change looks good to me. Thanks, Song.
>
> Reviewed-By: Hechao Li <hechaol@xxxxxx>

Thanks Hechao!

Hi Peter,

Does this fix look good to you?

Thanks,
Song