All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zi Yan <ziy@nvidia.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	syzbot <syzbot+805630f1453e490427fa@syzkaller.appspotmail.com>,
	apopple@nvidia.com, byungchul@sk.com, david@kernel.org,
	gourry@gourry.net, joshua.hahnjy@gmail.com,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	matthew.brost@intel.com, rakie.kim@sk.com,
	syzkaller-bugs@googlegroups.com, ying.huang@linux.alibaba.com,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org, Vlastimil Babka <vbabka@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Brendan Jackman <brendan.jackman@linux.dev>,
	Johannes Weiner <hannes@cmpxchg.org>
Subject: Re: [syzbot] [mm?] WARNING in ep_write_iter
Date: Mon, 17 Aug 2026 11:22:47 -0400	[thread overview]
Message-ID: <A2BA0883-6B5D-4AB1-A7CF-6B9BDF27F439@nvidia.com> (raw)
In-Reply-To: <7deabd9c-04d5-4a45-8b8a-39929c046152@rowland.harvard.edu>

On 17 Aug 2026, at 11:06, Alan Stern wrote:

> On Mon, Aug 17, 2026 at 10:37:29AM -0400, Zi Yan wrote:
>> On 17 Aug 2026, at 10:34, Zi Yan wrote:
>>> But the warning here is when kernel user wants buddy allocator to give
>>> what it cannot allocate, a page order > MAX_PAGE_ORDER. The warning
>>> tells that kernel user please ask for a reasonably sized memory.
>
> That's fine, but it doesn't have to be done in a way that will crash
> many systems.
>
>>> The issue here is that the inode.c code passes the user input len without
>>> checking to page allocator code. Capping that is a minimal requirement
>>> to prevent untrusted userspace input getting into trusted kernel space code
>>> easily.
>
> I disagree.  If the memory allocators are so fragile that userspace can
> break into the kernel just by asking for too much memory, the allocators
> should be fixed.
>
> Furthermore, it's generally recognized that library routines such as
> kmalloc() should check their own inputs rather than relying on their
> callers to do this work for them.
>
>>>>> Why are we emitting a WARN if an allocation fails, given that this will
>>>>> often panic the kernel?  Should we on the core MM side dial that back
>>>>> to a pr_warn() and a helpful backtrace?
>>>>
>>>> I think that would be a very good idea.  Only the caller knows whether
>>>> an allocation failure will leave the system in an unstable state; the
>>>> library routine shouldn't try to make this decision on its own.
>>>
>>> In this case, the WARN is emitted not because of an allocation failure,
>>> but an invalid input to buddy allocator (order > MAX_PAGE_ORDER). The
>>> WARN is for kernel developers, telling them their code is asking too much
>>> free memory and core MM cannot handle it. Suppressing that means
>>> code outside MM can abuse page allocator. Code like doing
>>> alloc_pages(MAX_PAGE_ORDER + 1, __GFP_NOFAIL | __GFP_NOWARN) should not
>>> exist, instead of just getting pr_warn() and failures.
>
> Again, I disagree with some of the details of this argument in this
> context.  For instance, if all kernel developers are supposed to know
> that they shouldn't ask kmalloc() for more than MAX_PAGE_ORDER at the
> risk of provoking a WARN, if this is such an important restriction, then
> shouldn't this requirement be mentioned in the kerneldoc for kmalloc()?


kmalloc is the normal method of allocating memory
for objects smaller than page size in the kernel.

See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/slab.h?h=v7.2#n1001

In this case, kmalloc is used to request > 4MB memory.

>
> Regardless, if it is important to let kernel developers know that their
> code is doing something wrong, why not make the WARN conditional on
> CONFIG_EXPERT or something similar?  In other words, prevent it from
> crashing production systems.



Best Regards,
Yan, Zi


  reply	other threads:[~2026-08-17 15:22 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-16 19:25 [syzbot] [mm?] WARNING in ep_write_iter syzbot
2026-08-16 20:52 ` Andrew Morton
2026-08-16 21:47   ` Zi Yan
2026-08-16 23:32     ` Alan Stern
2026-08-17  0:13       ` Zi Yan
2026-08-17  1:15         ` Alan Stern
2026-08-17  1:47           ` Zi Yan
2026-08-17  2:42             ` Andrew Morton
2026-08-17 13:55               ` Alan Stern
2026-08-17 14:34                 ` Zi Yan
2026-08-17 14:37                   ` Zi Yan
2026-08-17 15:06                     ` Alan Stern
2026-08-17 15:22                       ` Zi Yan [this message]
2026-08-17 15:37                         ` Alan Stern
2026-08-17 18:45                           ` Zi Yan
2026-08-18  3:12                             ` Alan Stern
2026-08-18 23:45                               ` Zi Yan
2026-08-19  1:30                                 ` Alan Stern
2026-08-17 15:06                   ` Greg Kroah-Hartman
2026-08-17 15:19                     ` Zi Yan
2026-08-17 15:55                       ` Greg Kroah-Hartman
2026-08-17 18:51                         ` Zi Yan
2026-08-17 20:34                           ` John Hubbard
2026-08-20 13:55   ` Zi Yan
2026-08-20 13:59     ` Zi Yan
2026-08-20 14:27       ` Alan Stern
2026-08-21  8:30   ` David Laight
2026-08-21 14:24     ` Zi Yan
2026-08-21 15:13       ` David Laight
2026-08-21 15:31         ` Zi Yan
2026-08-26 10:26           ` Vlastimil Babka (SUSE)
2026-08-17  9:14 ` syzbot
2026-08-17 19:45   ` Zi Yan
2026-08-17 19:59     ` syzbot
2026-08-20 13:15   ` Zi Yan
2026-08-20 13:30     ` syzbot

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=A2BA0883-6B5D-4AB1-A7CF-6B9BDF27F439@nvidia.com \
    --to=ziy@nvidia.com \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=brendan.jackman@linux.dev \
    --cc=byungchul@sk.com \
    --cc=david@kernel.org \
    --cc=gourry@gourry.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=joshua.hahnjy@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=matthew.brost@intel.com \
    --cc=mhocko@suse.com \
    --cc=rakie.kim@sk.com \
    --cc=stern@rowland.harvard.edu \
    --cc=surenb@google.com \
    --cc=syzbot+805630f1453e490427fa@syzkaller.appspotmail.com \
    --cc=syzkaller-bugs@googlegroups.com \
    --cc=vbabka@kernel.org \
    --cc=ying.huang@linux.alibaba.com \
    /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.