From: Leon Romanovsky <leon@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Bixuan Cui <cuibixuan@linux.alibaba.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
torvalds@linux-foundation.org, w@1wt.eu, keescook@chromium.org
Subject: Re: [PATCH -next] mm: delete oversized WARN_ON() in kvmalloc() calls
Date: Thu, 2 Dec 2021 17:23:42 +0200 [thread overview]
Message-ID: <Yajk/oVypyUFTtgd@unreal> (raw)
In-Reply-To: <20211201192643.ecb0586e0d53bf8454c93669@linux-foundation.org>
On Wed, Dec 01, 2021 at 07:26:43PM -0800, Andrew Morton wrote:
> On Thu, 2 Dec 2021 10:06:24 +0800 Bixuan Cui <cuibixuan@linux.alibaba.com> wrote:
>
> > Delete the WARN_ON() and return NULL directly for oversized parameter
> > in kvmalloc() calls.
> > Also add unlikely().
> >
> > Fixes: 7661809d493b ("mm: don't allow oversized kvmalloc() calls")
> > Signed-off-by: Bixuan Cui <cuibixuan@linux.alibaba.com>
> > ---
> > There are a lot of oversize warnings and patches about kvmalloc() calls
> > recently. Maybe these warnings are not very necessary.
>
> Or maybe they are. Please let's take a look at these warnings, one at
> a time. If a large number of them are bogus then sure, let's disable
> the runtime test. But perhaps it's the case that calling code has
> genuine issues and should be repaired.
Andrew,
The problem is that this WARN_ON() is triggered by the users.
At least in the RDMA world, users can provide huge sizes and they expect
to get plain -ENOMEM and not dump stack, because it happens indirectly
to them.
In our case, these two kvcalloc() generates WARN_ON().
umem_odp->pfn_list = kvcalloc(
npfns, sizeof(*umem_odp->pfn_list), GFP_KERNEL);
if (!umem_odp->pfn_list)
return -ENOMEM;
umem_odp->dma_list = kvcalloc(
ndmas, sizeof(*umem_odp->dma_list), GFP_KERNEL);
https://elixir.bootlin.com/linux/v5.16-rc3/source/drivers/infiniband/core/umem_odp.c#L80
It is not a kernel programmer error to allow "oversized kvmalloc call" .
Thanks
next prev parent reply other threads:[~2021-12-02 15:24 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-02 2:06 [PATCH -next] mm: delete oversized WARN_ON() in kvmalloc() calls Bixuan Cui
2021-12-02 2:53 ` Tang Yizhou
2021-12-02 3:26 ` Andrew Morton
2021-12-02 4:05 ` Bixuan Cui
2021-12-02 4:29 ` Andrew Morton
2021-12-02 10:38 ` Jeremy Sowden
2021-12-02 15:34 ` Alexei Starovoitov
2021-12-02 21:16 ` Jeremy Sowden
2021-12-02 11:49 ` Bixuan Cui
2021-12-03 19:37 ` Sean Christopherson
2021-12-02 15:23 ` Leon Romanovsky [this message]
2021-12-02 15:29 ` Matthew Wilcox
2021-12-02 16:08 ` Leon Romanovsky
2021-12-02 19:08 ` Kees Cook
2021-12-02 19:24 ` Leon Romanovsky
2021-12-02 21:23 ` Kees Cook
2021-12-02 22:03 ` Andrew Morton
2021-12-03 4:39 ` Matthew Wilcox
2021-12-02 17:00 ` Jason Gunthorpe
2021-12-02 3:46 ` Kees Cook
2021-12-02 4:44 ` Bixuan Cui
2021-12-02 17:03 ` Jason Gunthorpe
2021-12-05 11:59 ` Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yajk/oVypyUFTtgd@unreal \
--to=leon@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=cuibixuan@linux.alibaba.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=torvalds@linux-foundation.org \
--cc=w@1wt.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.