From: Jason Gunthorpe <jgg@ziepe.ca>
To: Matthew Wilcox <willy@infradead.org>
Cc: Leon Romanovsky <leon@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
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 13:00:32 -0400 [thread overview]
Message-ID: <20211202170032.GN5112@ziepe.ca> (raw)
In-Reply-To: <YajmawzehKqR+j0v@casper.infradead.org>
On Thu, Dec 02, 2021 at 03:29:47PM +0000, Matthew Wilcox wrote:
> On Thu, Dec 02, 2021 at 05:23:42PM +0200, Leon Romanovsky wrote:
> > The problem is that this WARN_ON() is triggered by the users.
>
> ... or the problem is that you don't do a sanity check between the user
> and the MM system. I mean, that's what this conversation is about --
> is it a bug to be asking for this much memory in the first place?
>
> > 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);
>
> Does it really make sense for the user to specify 2^31 PFNs in a single
> call? I mean, that's 8TB of memory. Should RDMA put its own limit
> in here, or should it rely on kvmalloc returning -ENOMEM?
I wrote this - I don't think RDMA should put a limit here. What
limit would it use anyhow?
I'm pretty sure database people are already using low TB's here. It is
not absurd when you have DAX and the biggest user of ODP is with DAX.
If anything we might get to a point in a few years where the 2^31 is
too small and this has to be a better datastructure :\
Maybe an xarray and I should figure out how to use the multi-order
stuff to optimize huge pages?
I'd actually really like to get rid of it, just haven't figured out
how. The only purpose is to call set_page_dirty() and in many cases
the pfn should still be in the mm's page table. We also store another
copy of the PFN in the NIC's mapping. Surely one of these two could do
instead?
Jason
next prev parent reply other threads:[~2021-12-02 17:00 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
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 [this message]
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=20211202170032.GN5112@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=akpm@linux-foundation.org \
--cc=cuibixuan@linux.alibaba.com \
--cc=keescook@chromium.org \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=torvalds@linux-foundation.org \
--cc=w@1wt.eu \
--cc=willy@infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).