linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Kees Cook <keescook@chromium.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Matthew Wilcox <willy@infradead.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
Subject: Re: [PATCH -next] mm: delete oversized WARN_ON() in kvmalloc() calls
Date: Thu, 2 Dec 2021 11:08:34 -0800	[thread overview]
Message-ID: <202112021105.C9E64318F@keescook> (raw)
In-Reply-To: <YajviIws7csNbTxU@unreal>

On Thu, Dec 02, 2021 at 06:08:40PM +0200, Leon Romanovsky wrote:
> 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?
> 
> We do a lot of checks, and in this case, user provided valid input.
> He asked size that doesn't cross his address space.
> https://elixir.bootlin.com/linux/v5.16-rc3/source/drivers/infiniband/core/umem_odp.c#L67
> 
> 		start = ALIGN_DOWN(umem_odp->umem.address, page_size);
> 		if (check_add_overflow(umem_odp->umem.address,
> 				       (unsigned long)umem_odp->umem.length,
> 				       &end))
> 			return -EOVERFLOW;
> 
> There is a feature called ODP (on-demand-paging) which is supported
> in some RDMA NICs. It allows to the user "export" their whole address
> space to the other RDMA node without pinning the pages. And once the
> other node sends data to not-pinned page, the RDMA NIC will prefetch
> it.

I think we have two cases:

- limiting kvmalloc allocations to INT_MAX
- issuing a WARN when that limit is exceeded

The argument for the having the WARN is "that amount should never be
allocated so we want to find the pathological callers".

But if the actual issue is that >INT_MAX is _acceptable_, then we have
to do away with the entire check, not just the WARN.

-- 
Kees Cook


  reply	other threads:[~2021-12-02 19:08 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 [this message]
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=202112021105.C9E64318F@keescook \
    --to=keescook@chromium.org \
    --cc=akpm@linux-foundation.org \
    --cc=cuibixuan@linux.alibaba.com \
    --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).