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@nvidia.com
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