On Thu, May 9, 2024 at 4:52 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Thu, May 09, 2024 at 02:20:03PM +1200, Barry Song wrote: > > reverting the fix intended to address the OOM-killer issue in commit > > dd544141b9eb. > > Should we indeed permit the NOFAIL flag for large kvmalloc allocations? > > What is large? When you don't allow actually use cases people will > just reimplement it poorly. E.g. we'd probably have to add back the > XFS kmem_ wrappers. Xiang gave his number 24KiB in erofs, but probably we still have some "naughty" users allocating much more than 24KiB with NOFAIL in other subsystems. We should never return NULL for NOFAIL. So, in any case, we require Hailong's patch in some form. However, commit dd544141b9eb ("vmalloc: back off when the current task is OOM-killed") is also tackling an issue. If we can find a way to preserve its benefits even in the NOFAIL scenario, it would be preferable, though it seems improbable. Thus, I'm considering if we could at least include a WARN_ON_ONCE((gfp & NOFAIL) && size > LARGE) to aid in debugging potential issues we might encounter. Furthermore, compelling a large allocation with NOFAIL also appears pointless, as it could lead to unpredictable long latency. But I don't know what the proper "LARGE" value is. Thanks Barry