On Mon, Dec 13, 2021 at 10:54PM +0100, andrey.konovalov@xxxxxxxxx wrote: > From: Andrey Konovalov <andreyknvl@xxxxxxxxxx> > > Add a new GFP flag __GFP_SKIP_ZERO that allows to skip memory > initialization. The flag is only effective with HW_TAGS KASAN. [...] > - * is being zeroed (either via __GFP_ZERO or via init_on_alloc). > + * is being zeroed (either via __GFP_ZERO or via init_on_alloc, provided that > + * __GFP_SKIP_ZERO is not set). > + * > + * %__GFP_SKIP_ZERO makes page_alloc skip zeroing memory. > + * Only effective when HW_TAGS KASAN is enabled. > * > * %__GFP_SKIP_KASAN_UNPOISON makes KASAN skip unpoisoning on page allocation. > * Only effective in HW_TAGS mode. > @@ -242,6 +247,7 @@ struct vm_area_struct; > #define __GFP_COMP ((__force gfp_t)___GFP_COMP) > #define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) > #define __GFP_ZEROTAGS ((__force gfp_t)___GFP_ZEROTAGS) > +#define __GFP_SKIP_ZERO ((__force gfp_t)___GFP_SKIP_ZERO) > #define __GFP_SKIP_KASAN_UNPOISON ((__force gfp_t)___GFP_SKIP_KASAN_UNPOISON) > #define __GFP_SKIP_KASAN_POISON ((__force gfp_t)___GFP_SKIP_KASAN_POISON) > > @@ -249,7 +255,7 @@ struct vm_area_struct; > #define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP) > > /* Room for N __GFP_FOO bits */ > -#define __GFP_BITS_SHIFT (26 + IS_ENABLED(CONFIG_LOCKDEP)) > +#define __GFP_BITS_SHIFT (27 + IS_ENABLED(CONFIG_LOCKDEP)) You're adding several new flags, I think you should also make a corresponding change to include/trace/events/mmflags.h? At least __GFP_SKIP_KASAN_POISON is currently in there.