From: Michal Hocko <mhocko@suse.com>
To: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Dave Chinner <david@fromorbit.com>,
Andrew Morton <akpm@linux-foundation.org>,
Christoph Hellwig <hch@lst.de>,
Yafang Shao <laoar.shao@gmail.com>,
jack@suse.cz, Christian Brauner <brauner@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Paul Moore <paul@paul-moore.com>,
James Morris <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
linux-bcachefs@vger.kernel.org,
linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2 v2] bcachefs: do not use PF_MEMALLOC_NORECLAIM
Date: Mon, 2 Sep 2024 10:41:31 +0200 [thread overview]
Message-ID: <ZtV6OwlFRu4ZEuSG@tiehlicka> (raw)
In-Reply-To: <nawltogcoffous3zv4kd2eerrrwhihbulz7pi2qyfjvslp6g3f@j3qkqftra2qm>
On Sun 01-09-24 21:35:30, Kent Overstreet wrote:
[...]
> But I am saying that kmalloc(__GFP_NOFAIL) _should_ fail and return NULL
> in the case of bugs, because that's going to be an improvement w.r.t.
> system robustness, in exactly the same way we don't use BUG_ON() if it's
> something that we can't guarantee won't happen in the wild - we WARN()
> and try to handle the error as best we can.
We have discussed that in a different email thread. And I have to say
that I am not convinced that returning NULL makes a broken code much
better. Why? Because we can expect that broken NOFAIL users will not have a
error checking path. Even valid NOFAIL users will not have one because
they _know_ they do not have a different than retry for ever recovery
path.
That means that an unexpected NULL return either means OOPS or a subtle
silent error - e.g. memory corruption. The former is a actually a saner
recovery model because the execution is stopped before more harm can be
done. I suspect most of those buggy users will simply OOPS but
systematically checking for latter is a lot of work and needs to be
constantly because code evolves...
I have tried to argue that if allocator cannot or refuse to satisfy
GFP_NOFAIL request because it is trying to use unsupported allocation
mode or size then we should terminate the allocation context. That would
make the API more predictable and therefore safer to use.
This is not what the allocator does today though. Atomic NOFAIL
allocations fail same as kvmalloc requests which are clearly overflows.
Especially the later could become a risk if they are reachable from the
userspace with controlable allocation size.
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2024-09-02 8:41 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-26 8:47 [PATCH 0/2] get rid of PF_MEMALLOC_NORECLAIM Michal Hocko
2024-08-26 8:47 ` [PATCH 1/2] bcachefs: do not use PF_MEMALLOC_NORECLAIM Michal Hocko
2024-08-26 13:11 ` Matthew Wilcox
2024-08-26 16:48 ` Michal Hocko
2024-08-26 19:39 ` Kent Overstreet
2024-08-26 19:41 ` Matthew Wilcox
2024-08-26 19:42 ` Kent Overstreet
2024-08-26 19:47 ` Matthew Wilcox
2024-08-26 19:54 ` Kent Overstreet
2024-08-26 19:44 ` Kent Overstreet
2024-08-26 19:58 ` Michal Hocko
2024-08-26 20:00 ` Kent Overstreet
2024-08-26 20:27 ` Michal Hocko
2024-08-26 20:43 ` Kent Overstreet
2024-08-26 21:10 ` Kent Overstreet
2024-08-27 6:01 ` Michal Hocko
2024-08-27 6:40 ` Kent Overstreet
2024-08-27 6:58 ` Michal Hocko
2024-08-27 7:05 ` Kent Overstreet
2024-08-27 7:35 ` Michal Hocko
2024-08-26 19:52 ` kernel test robot
2024-08-26 20:53 ` kernel test robot
2024-08-27 2:23 ` kernel test robot
2024-08-27 6:15 ` [PATCH 1/2 v2] " Michal Hocko
2024-08-27 12:29 ` Christoph Hellwig
2024-08-28 4:09 ` Dave Chinner
2024-08-29 10:02 ` Kent Overstreet
2024-08-29 13:12 ` Dave Chinner
2024-08-29 13:22 ` Kent Overstreet
2024-08-29 13:32 ` Kent Overstreet
2024-08-29 14:03 ` Yafang Shao
2024-09-02 0:23 ` Dave Chinner
2024-09-02 1:35 ` Kent Overstreet
2024-09-02 8:41 ` Michal Hocko [this message]
2024-09-02 8:52 ` Kent Overstreet
2024-09-02 9:39 ` Michal Hocko
2024-09-02 9:51 ` Kent Overstreet
2024-09-02 14:07 ` Jonathan Corbet
2024-09-04 18:01 ` Shuah Khan
2024-11-20 20:34 ` Kent Overstreet
2024-11-20 21:12 ` Shuah Khan
2024-11-20 21:20 ` Kent Overstreet
2024-11-20 21:37 ` Shuah Khan
2024-11-20 22:21 ` Shuah Khan
2024-11-20 22:39 ` Kent Overstreet
2024-11-20 22:55 ` Kent Overstreet
2024-11-20 23:21 ` Kent Overstreet
2024-11-20 23:47 ` Theodore Ts'o
2024-11-20 23:57 ` Kent Overstreet
2024-11-21 0:10 ` Kent Overstreet
2024-11-21 4:25 ` Christoph Hellwig
2024-11-21 4:53 ` Kent Overstreet
2024-11-21 23:53 ` Shuah Khan
2024-11-22 6:51 ` Kent Overstreet
2024-11-22 12:06 ` Christoph Hellwig
2024-11-21 21:32 ` Martin Steigerwald
2024-11-22 9:47 ` Geert Uytterhoeven
2024-11-21 5:51 ` Kent Overstreet
2024-11-21 8:43 ` review process (was: underalated stuff) Michal Hocko
2024-11-21 9:03 ` Kent Overstreet
2024-11-21 20:17 ` [PATCH 1/2 v2] bcachefs: do not use PF_MEMALLOC_NORECLAIM Simona Vetter
2024-11-21 21:26 ` Martin Steigerwald
2024-11-22 21:48 ` Dan Williams
2024-11-22 22:02 ` Kent Overstreet
2024-08-29 9:37 ` [PATCH 1/2] " Jan Kara
2024-08-26 8:47 ` [PATCH 2/2] mm: drop PF_MEMALLOC_NORECLAIM Michal Hocko
2024-08-26 13:48 ` Yafang Shao
2024-08-26 16:54 ` Michal Hocko
2024-08-26 13:59 ` Matthew Wilcox
2024-08-26 16:51 ` Michal Hocko
2024-08-26 17:49 ` Matthew Wilcox
2024-08-26 19:18 ` Michal Hocko
2024-08-26 19:20 ` Matthew Wilcox
2024-08-28 4:11 ` Dave Chinner
2024-08-29 21:45 ` Vlastimil Babka
2024-08-26 19:04 ` Kent Overstreet
2024-08-27 12:29 ` Christoph Hellwig
2025-10-01 11:29 [PATCH 1/2 v2] bcachefs: do not use PF_MEMALLOC_NORECLAIM Stephen Whitten
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=ZtV6OwlFRu4ZEuSG@tiehlicka \
--to=mhocko@suse.com \
--cc=akpm@linux-foundation.org \
--cc=brauner@kernel.org \
--cc=david@fromorbit.com \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=jmorris@namei.org \
--cc=kent.overstreet@linux.dev \
--cc=laoar.shao@gmail.com \
--cc=linux-bcachefs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-security-module@vger.kernel.org \
--cc=paul@paul-moore.com \
--cc=serge@hallyn.com \
--cc=viro@zeniv.linux.org.uk \
/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