On Mon, Aug 26, 2024 at 04:44:01PM GMT, Kent Overstreet wrote: > No, I explained why GFP_NORECLAIM/PF_MEMALLOC_NORECLAIM can absolutely > apply to a context, not a callsite, and why vmalloc() and kvmalloc() > ignoring gfp flags is a much more serious issue. > > If you want to do something useful, figure out what we're going to do > about _that_. If you really don't want PF_MEMALLOC_NORECLAIM to exist, > then see if Linus will let you plumb gfp flags down to pte allocation - > and beware, that's arch code that you'll have to fix. > > Reminder: kvmalloc() is a thing, and it's steadily seeing wider use. > > Otherwise, PF_MEMALLOC_NORECLAIM needs to stay; and thank you for > bringing this to my attention, because it's made me realize all the > other places in bcachefs that use gfp flags for allocating memory with > btree locks held need to be switch to memalloc_flags_do(). Additionally: plumbing gfp flags to pte allocation is something we do need to do. I proposed it before kvmalloc() was a thing, but now it's become much more of a lurking landmine. Even with that I'd still be against this series, though. GFP_NOFAIL interacting badly with other gfp/memalloc flags is going to continue to be an issue, and I think the only answer to that is stricter runtime checks (which, thank you mm guys for adding recently).