On Mon, Feb 12, 2024 at 01:39:11PM -0800, Suren Baghdasaryan wrote: > From: Kent Overstreet <kent.overstreet@xxxxxxxxx> > > This adds an alloc_hooks() wrapper around kmem_alloc(), so that we can > have allocations accounted to the proper callsite. > > Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx> > Signed-off-by: Suren Baghdasaryan <surenb@xxxxxxxxxx> > --- > fs/xfs/kmem.c | 4 ++-- > fs/xfs/kmem.h | 10 ++++------ > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/fs/xfs/kmem.c b/fs/xfs/kmem.c > index c557a030acfe..9aa57a4e2478 100644 > --- a/fs/xfs/kmem.c > +++ b/fs/xfs/kmem.c > @@ -8,7 +8,7 @@ > #include "xfs_trace.h" > > void * > -kmem_alloc(size_t size, xfs_km_flags_t flags) > +kmem_alloc_noprof(size_t size, xfs_km_flags_t flags) > { > int retries = 0; > gfp_t lflags = kmem_flags_convert(flags); > @@ -17,7 +17,7 @@ kmem_alloc(size_t size, xfs_km_flags_t flags) > trace_kmem_alloc(size, flags, _RET_IP_); > > do { > - ptr = kmalloc(size, lflags); > + ptr = kmalloc_noprof(size, lflags); > if (ptr || (flags & KM_MAYFAIL)) > return ptr; > if (!(++retries % 100)) > diff --git a/fs/xfs/kmem.h b/fs/xfs/kmem.h > index b987dc2c6851..c4cf1dc2a7af 100644 > --- a/fs/xfs/kmem.h > +++ b/fs/xfs/kmem.h > @@ -6,6 +6,7 @@ > #ifndef __XFS_SUPPORT_KMEM_H__ > #define __XFS_SUPPORT_KMEM_H__ > > +#include <linux/alloc_tag.h> > #include <linux/slab.h> > #include <linux/sched.h> > #include <linux/mm.h> > @@ -56,18 +57,15 @@ kmem_flags_convert(xfs_km_flags_t flags) > return lflags; > } > > -extern void *kmem_alloc(size_t, xfs_km_flags_t); > static inline void kmem_free(const void *ptr) > { > kvfree(ptr); > } > > +extern void *kmem_alloc_noprof(size_t, xfs_km_flags_t); > +#define kmem_alloc(...) alloc_hooks(kmem_alloc_noprof(__VA_ARGS__)) > > -static inline void * > -kmem_zalloc(size_t size, xfs_km_flags_t flags) > -{ > - return kmem_alloc(size, flags | KM_ZERO); > -} > +#define kmem_zalloc(_size, _flags) kmem_alloc((_size), (_flags) | KM_ZERO) > > /* > * Zone interfaces > -- > 2.43.0.687.g38aa6559b0-goog These changes can be dropped - the fs/xfs/kmem.[ch] stuff is now gone in linux-xfs/for-next. -Dave. -- Dave Chinner david@xxxxxxxxxxxxx