Re: [PATCH v2] mm: save two stranding bit in gfp_mask

From: Vlastimil Babka
Date: Thu May 17 2018 - 01:42:41 EST


On 05/16/2018 11:14 PM, Shakeel Butt wrote:
> ___GFP_COLD and ___GFP_OTHER_NODE were removed but their bits were
> stranded. Fill the gaps by moving the existing gfp masks around.
>
> Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx>
> Suggested-by: Vlastimil Babka <vbabka@xxxxxxx>
> Acked-by: Michal Hocko <mhocko@xxxxxxxx>

Yeah that's much smaller, thanks.

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>

> ---
> Changelog since v1:
> - Moved couple of gfp masks instead of sliding all.
>
> include/linux/gfp.h | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/include/linux/gfp.h b/include/linux/gfp.h
> index 1a4582b44d32..036846fc00a6 100644
> --- a/include/linux/gfp.h
> +++ b/include/linux/gfp.h
> @@ -24,6 +24,7 @@ struct vm_area_struct;
> #define ___GFP_HIGH 0x20u
> #define ___GFP_IO 0x40u
> #define ___GFP_FS 0x80u
> +#define ___GFP_WRITE 0x100u
> #define ___GFP_NOWARN 0x200u
> #define ___GFP_RETRY_MAYFAIL 0x400u
> #define ___GFP_NOFAIL 0x800u
> @@ -36,11 +37,10 @@ struct vm_area_struct;
> #define ___GFP_THISNODE 0x40000u
> #define ___GFP_ATOMIC 0x80000u
> #define ___GFP_ACCOUNT 0x100000u
> -#define ___GFP_DIRECT_RECLAIM 0x400000u
> -#define ___GFP_WRITE 0x800000u
> -#define ___GFP_KSWAPD_RECLAIM 0x1000000u
> +#define ___GFP_DIRECT_RECLAIM 0x200000u
> +#define ___GFP_KSWAPD_RECLAIM 0x400000u
> #ifdef CONFIG_LOCKDEP
> -#define ___GFP_NOLOCKDEP 0x2000000u
> +#define ___GFP_NOLOCKDEP 0x800000u
> #else
> #define ___GFP_NOLOCKDEP 0
> #endif
> @@ -205,7 +205,7 @@ struct vm_area_struct;
> #define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP)
>
> /* Room for N __GFP_FOO bits */
> -#define __GFP_BITS_SHIFT (25 + IS_ENABLED(CONFIG_LOCKDEP))
> +#define __GFP_BITS_SHIFT (23 + IS_ENABLED(CONFIG_LOCKDEP))
> #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
>
> /*
>