Re: [PATCH] mm: add warning if __vm_enough_memory fails

From: David Hildenbrand
Date: Tue Jul 26 2022 - 09:45:59 EST


On 26.07.22 09:24, Kefeng Wang wrote:
> If a process has no enough memory to allocate a new virtual mapping, we
> may meet kinds of error, eg, fork cannot allocate memory, SIGBUS error
> in shmem, but it is difficult to confirm them, let's add some debug
> information to easy to check this scenario if __vm_enough_memory fails.
>
> Reported-by: Yongqiang Liu <liuyongqiang13@xxxxxxxxxx>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
> ---
> mm/util.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/mm/util.c b/mm/util.c
> index 1266a33a49ea..19bfff8a0ad6 100644
> --- a/mm/util.c
> +++ b/mm/util.c
> @@ -1020,6 +1020,8 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
> if (percpu_counter_read_positive(&vm_committed_as) < allowed)
> return 0;
> error:
> + pr_warn("%s: pid: %d, comm: %s, no enough memory for the allocation\n",
> + __func__, current->pid, current->comm);
> vm_unacct_memory(pages);
>
> return -ENOMEM;

Users can easily spam the kernel log, no? Maybe at least ratelimit.

--
Thanks,

David / dhildenb