On Mon 26-08-24 16:00:56, Kent Overstreet wrote: > On Mon, Aug 26, 2024 at 09:58:08PM GMT, Michal Hocko wrote: > > On Mon 26-08-24 15:39:47, Kent Overstreet wrote: > > > On Mon, Aug 26, 2024 at 10:47:12AM GMT, Michal Hocko wrote: > > > > From: Michal Hocko <mhocko@xxxxxxxx> > > > > > > > > bch2_new_inode relies on PF_MEMALLOC_NORECLAIM to try to allocate a new > > > > inode to achieve GFP_NOWAIT semantic while holding locks. If this > > > > allocation fails it will drop locks and use GFP_NOFS allocation context. > > > > > > > > We would like to drop PF_MEMALLOC_NORECLAIM because it is really > > > > dangerous to use if the caller doesn't control the full call chain with > > > > this flag set. E.g. if any of the function down the chain needed > > > > GFP_NOFAIL request the PF_MEMALLOC_NORECLAIM would override this and > > > > cause unexpected failure. > > > > > > > > While this is not the case in this particular case using the scoped gfp > > > > semantic is not really needed bacause we can easily pus the allocation > > > > context down the chain without too much clutter. > > > > > > yeah, eesh, nack. > > > > Sure, you can NAK this but then deal with the lack of the PF flag by > > other means. We have made it clear that PF_MEMALLOC_NORECLAIM is not we > > are going to support at the MM level. > > > > I have done your homework and shown that it is really easy > > to use gfp flags directly. The net result is passing gfp flag down to > > two functions. Sure part of it is ugglier by having several different > > callbacks implementing it but still manageable. Without too much churn. > > > > So do whatever you like in the bcache code but do not rely on something > > that is unsupported by the MM layer which you have sneaked in without an > > agreement. > > Michal, you're being damned hostile, while posting code you haven't even > tried to compile. Seriously, dude? > > How about sticking to the technical issues at hand instead of saying > "this is mm, so my way or the highway?". We're all kernel developers > here, this is not what we do. Kent, we do respect review feedback. You are clearly fine ignoring it when you feels like it (eab0af905bfc ("mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN") is a clear example of it). I have already made my arguments (repeatedly) why implicit nowait allocation context is tricky and problematic. Your response is that you simply "do no buy it" which is a highly technical argument. -- Michal Hocko SUSE Labs