提交 afdf2a6c 编写于 作者: P Peng Liang 提交者: Zheng Zengkai

kabi: Add reserved page and gfp flags for future extension

euleros inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I4OELI
CVE: NA

-------------------------------------------------

24 page flags are used in 32-bit architectures and 27 page flags are
used in 64-bit ones currently.  And 23 gfp flags are used currently.
Add 2 reserved page and gfp flags for internal extension.  For the
new flags which backported from kernel upstream, place them behind the
reserved flags.
Signed-off-by: NPeng Liang <liangpeng10@huawei.com>
Reviewed-by: NKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 7623fa5d
...@@ -39,8 +39,10 @@ struct vm_area_struct; ...@@ -39,8 +39,10 @@ struct vm_area_struct;
#define ___GFP_HARDWALL 0x100000u #define ___GFP_HARDWALL 0x100000u
#define ___GFP_THISNODE 0x200000u #define ___GFP_THISNODE 0x200000u
#define ___GFP_ACCOUNT 0x400000u #define ___GFP_ACCOUNT 0x400000u
#define ___GFP_RESERVE_0 0x800000u
#define ___GFP_RESERVE_1 0x1000000u
#ifdef CONFIG_LOCKDEP #ifdef CONFIG_LOCKDEP
#define ___GFP_NOLOCKDEP 0x800000u #define ___GFP_NOLOCKDEP 0x2000000u
#else #else
#define ___GFP_NOLOCKDEP 0 #define ___GFP_NOLOCKDEP 0
#endif #endif
...@@ -223,8 +225,12 @@ struct vm_area_struct; ...@@ -223,8 +225,12 @@ struct vm_area_struct;
/* Disable lockdep for GFP context tracking */ /* Disable lockdep for GFP context tracking */
#define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP) #define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP)
/* Reserve 2 flags for future usage */
#define __GFP_RESERVE_0 ((__force gfp_t)___GFP_RESERVE_0)
#define __GFP_RESERVE_1 ((__force gfp_t)___GFP_RESERVE_1)
/* Room for N __GFP_FOO bits */ /* Room for N __GFP_FOO bits */
#define __GFP_BITS_SHIFT (23 + IS_ENABLED(CONFIG_LOCKDEP)) #define __GFP_BITS_SHIFT (25 + IS_ENABLED(CONFIG_LOCKDEP))
#define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
/** /**
......
...@@ -139,6 +139,14 @@ enum pageflags { ...@@ -139,6 +139,14 @@ enum pageflags {
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
PG_arch_2, PG_arch_2,
#endif #endif
/* Add reserved page flags for internal extension. For the new page
* flags which backported from kernel upstream, please place them
* behind the reserved page flags.
*/
PG_reserve_pgflag_0,
PG_reserve_pgflag_1,
__NR_PAGEFLAGS, __NR_PAGEFLAGS,
/* Filesystems */ /* Filesystems */
......
...@@ -48,7 +48,9 @@ ...@@ -48,7 +48,9 @@
{(unsigned long)__GFP_WRITE, "__GFP_WRITE"}, \ {(unsigned long)__GFP_WRITE, "__GFP_WRITE"}, \
{(unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \ {(unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \
{(unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\ {(unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\
{(unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"}\ {(unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"},\
{(unsigned long)__GFP_RESERVE_0, "__GFP_RESERVE_0"}, \
{(unsigned long)__GFP_RESERVE_1, "__GFP_RESERVE_1"} \
#define show_gfp_flags(flags) \ #define show_gfp_flags(flags) \
(flags) ? __print_flags(flags, "|", \ (flags) ? __print_flags(flags, "|", \
...@@ -112,7 +114,9 @@ IF_HAVE_PG_UNCACHED(PG_uncached, "uncached" ) \ ...@@ -112,7 +114,9 @@ IF_HAVE_PG_UNCACHED(PG_uncached, "uncached" ) \
IF_HAVE_PG_HWPOISON(PG_hwpoison, "hwpoison" ) \ IF_HAVE_PG_HWPOISON(PG_hwpoison, "hwpoison" ) \
IF_HAVE_PG_IDLE(PG_young, "young" ) \ IF_HAVE_PG_IDLE(PG_young, "young" ) \
IF_HAVE_PG_IDLE(PG_idle, "idle" ) \ IF_HAVE_PG_IDLE(PG_idle, "idle" ) \
IF_HAVE_PG_ARCH_2(PG_arch_2, "arch_2" ) IF_HAVE_PG_ARCH_2(PG_arch_2, "arch_2" ), \
{1UL << PG_reserve_pgflag_0, "reserve_pgflag_0"}, \
{1UL << PG_reserve_pgflag_1, "reserve_pgflag_1"}
#define show_page_flags(flags) \ #define show_page_flags(flags) \
(flags) ? __print_flags(flags, "|", \ (flags) ? __print_flags(flags, "|", \
......
...@@ -660,6 +660,8 @@ static const struct { ...@@ -660,6 +660,8 @@ static const struct {
{ "__GFP_RECLAIM", "R" }, { "__GFP_RECLAIM", "R" },
{ "__GFP_DIRECT_RECLAIM", "DR" }, { "__GFP_DIRECT_RECLAIM", "DR" },
{ "__GFP_KSWAPD_RECLAIM", "KR" }, { "__GFP_KSWAPD_RECLAIM", "KR" },
{ "__GFP_RESERVE_0", "RE0" },
{ "__GFP_RESERVE_1", "RE1" },
}; };
static size_t max_gfp_len; static size_t max_gfp_len;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册