Commit 1587db62 authored by Yu Zhao's avatar Yu Zhao Committed by Linus Torvalds

include/linux/page-flags-layout.h: cleanups

Tidy things up and delete comments stating the obvious with typos or
making no sense.

Link: https://lkml.kernel.org/r/20210303071609.797782-2-yuzhao@google.comSigned-off-by: default avatarYu Zhao <yuzhao@google.com>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f73c6c88
...@@ -21,16 +21,17 @@ ...@@ -21,16 +21,17 @@
#elif MAX_NR_ZONES <= 8 #elif MAX_NR_ZONES <= 8
#define ZONES_SHIFT 3 #define ZONES_SHIFT 3
#else #else
#error ZONES_SHIFT -- too many zones configured adjust calculation #error ZONES_SHIFT "Too many zones configured"
#endif #endif
#define ZONES_WIDTH ZONES_SHIFT
#ifdef CONFIG_SPARSEMEM #ifdef CONFIG_SPARSEMEM
#include <asm/sparsemem.h> #include <asm/sparsemem.h>
/* SECTION_SHIFT #bits space required to store a section # */
#define SECTIONS_SHIFT (MAX_PHYSMEM_BITS - SECTION_SIZE_BITS) #define SECTIONS_SHIFT (MAX_PHYSMEM_BITS - SECTION_SIZE_BITS)
#else
#endif /* CONFIG_SPARSEMEM */ #define SECTIONS_SHIFT 0
#endif
#ifndef BUILD_VDSO32_64 #ifndef BUILD_VDSO32_64
/* /*
...@@ -54,17 +55,28 @@ ...@@ -54,17 +55,28 @@
#define SECTIONS_WIDTH 0 #define SECTIONS_WIDTH 0
#endif #endif
#define ZONES_WIDTH ZONES_SHIFT #if ZONES_WIDTH + SECTIONS_WIDTH + NODES_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS
#if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS
#define NODES_WIDTH NODES_SHIFT #define NODES_WIDTH NODES_SHIFT
#else #elif defined(CONFIG_SPARSEMEM_VMEMMAP)
#ifdef CONFIG_SPARSEMEM_VMEMMAP
#error "Vmemmap: No space for nodes field in page flags" #error "Vmemmap: No space for nodes field in page flags"
#endif #else
#define NODES_WIDTH 0 #define NODES_WIDTH 0
#endif #endif
/*
* Note that this #define MUST have a value so that it can be tested with
* the IS_ENABLED() macro.
*/
#if NODES_SHIFT != 0 && NODES_WIDTH == 0
#define NODE_NOT_IN_PAGE_FLAGS 1
#endif
#if defined(CONFIG_KASAN_SW_TAGS) || defined(CONFIG_KASAN_HW_TAGS)
#define KASAN_TAG_WIDTH 8
#else
#define KASAN_TAG_WIDTH 0
#endif
#ifdef CONFIG_NUMA_BALANCING #ifdef CONFIG_NUMA_BALANCING
#define LAST__PID_SHIFT 8 #define LAST__PID_SHIFT 8
#define LAST__PID_MASK ((1 << LAST__PID_SHIFT)-1) #define LAST__PID_MASK ((1 << LAST__PID_SHIFT)-1)
...@@ -77,36 +89,20 @@ ...@@ -77,36 +89,20 @@
#define LAST_CPUPID_SHIFT 0 #define LAST_CPUPID_SHIFT 0
#endif #endif
#if defined(CONFIG_KASAN_SW_TAGS) || defined(CONFIG_KASAN_HW_TAGS) #if ZONES_WIDTH + SECTIONS_WIDTH + NODES_WIDTH + KASAN_TAG_WIDTH + LAST_CPUPID_SHIFT \
#define KASAN_TAG_WIDTH 8
#else
#define KASAN_TAG_WIDTH 0
#endif
#if SECTIONS_WIDTH+ZONES_WIDTH+NODES_WIDTH+LAST_CPUPID_SHIFT+KASAN_TAG_WIDTH \
<= BITS_PER_LONG - NR_PAGEFLAGS <= BITS_PER_LONG - NR_PAGEFLAGS
#define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT
#else #else
#define LAST_CPUPID_WIDTH 0 #define LAST_CPUPID_WIDTH 0
#endif #endif
#if SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH+LAST_CPUPID_WIDTH+KASAN_TAG_WIDTH \ #if LAST_CPUPID_SHIFT != 0 && LAST_CPUPID_WIDTH == 0
> BITS_PER_LONG - NR_PAGEFLAGS #define LAST_CPUPID_NOT_IN_PAGE_FLAGS
#error "Not enough bits in page flags"
#endif
/*
* We are going to use the flags for the page to node mapping if its in
* there. This includes the case where there is no node, so it is implicit.
* Note that this #define MUST have a value so that it can be tested with
* the IS_ENABLED() macro.
*/
#if !(NODES_WIDTH > 0 || NODES_SHIFT == 0)
#define NODE_NOT_IN_PAGE_FLAGS 1
#endif #endif
#if defined(CONFIG_NUMA_BALANCING) && LAST_CPUPID_WIDTH == 0 #if ZONES_WIDTH + SECTIONS_WIDTH + NODES_WIDTH + KASAN_TAG_WIDTH + LAST_CPUPID_WIDTH \
#define LAST_CPUPID_NOT_IN_PAGE_FLAGS > BITS_PER_LONG - NR_PAGEFLAGS
#error "Not enough bits in page flags"
#endif #endif
#endif #endif
......
...@@ -19,10 +19,6 @@ ...@@ -19,10 +19,6 @@
#ifdef CONFIG_DEBUG_MEMORY_INIT #ifdef CONFIG_DEBUG_MEMORY_INIT
int __meminitdata mminit_loglevel; int __meminitdata mminit_loglevel;
#ifndef SECTIONS_SHIFT
#define SECTIONS_SHIFT 0
#endif
/* The zonelists are simply reported, validation is manual. */ /* The zonelists are simply reported, validation is manual. */
void __init mminit_verify_zonelist(void) void __init mminit_verify_zonelist(void)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment