On Tue, Nov 24, 2020 at 03:34:11PM +0100, Daniel Vetter wrote: > On Fri, Nov 20, 2020 at 02:07:19PM -0400, Jason Gunthorpe wrote: > > On Fri, Nov 20, 2020 at 10:54:43AM +0100, Daniel Vetter wrote: > > > diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h > > > index d5ece7a9a403..f94405d43fd1 100644 > > > +++ b/include/linux/sched/mm.h > > > @@ -180,6 +180,22 @@ static inline void fs_reclaim_acquire(gfp_t gfp_mask) { } > > > static inline void fs_reclaim_release(gfp_t gfp_mask) { } > > > #endif > > > > > > +/** > > > + * might_alloc - Marks possible allocation sites > > > + * @gfp_mask: gfp_t flags that would be use to allocate > > > + * > > > + * Similar to might_sleep() and other annotations this can be used in functions > > > + * that might allocate, but often dont. Compiles to nothing without > > > + * CONFIG_LOCKDEP. Includes a conditional might_sleep() if @gfp allows blocking. > > > + */ > > > +static inline void might_alloc(gfp_t gfp_mask) > > > +{ > > > + fs_reclaim_acquire(gfp_mask); > > > + fs_reclaim_release(gfp_mask); > > > + > > > + might_sleep_if(gfpflags_allow_blocking(gfp_mask)); > > > +} > > > > Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > > > > Oh, I just had a another thread with Matt about xarray, this would be > > perfect to add before xas_nomem(): > > Yeah I think there's plenty of places where this will be useful. Want to > slap a sob onto this diff so I can include it for the next round, or will > you or Matt send this out when my might_alloc has landed? When this is merged I can do this - just wanted to point out the API is good and useful Jason