Hi Peter,

> On Sep 4, 2019, at 2:46 PM, Song Liu <[email protected]> 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 <[email protected]>
> Cc: Jie Meng <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Signed-off-by: Song Liu <[email protected]>

Could you please share your feedbacks/comments on this one?

Thanks,
Song

Reply via email to