# git rev-parse -q --verify 8008293888188c3923f5bd8a69370dae25ed14e5^{commit} 8008293888188c3923f5bd8a69370dae25ed14e5 already have revision, skipping fetch # git checkout -q -f -B kisskb 8008293888188c3923f5bd8a69370dae25ed14e5 # git clean -qxdf # < git log -1 # commit 8008293888188c3923f5bd8a69370dae25ed14e5 # Author: Mel Gorman # Date: Fri Dec 31 13:10:09 2021 -0800 # # mm: vmscan: reduce throttling due to a failure to make progress -fix # # Hugh Dickins reported the following # # My tmpfs swapping load (tweaked to use huge pages more heavily # than in real life) is far from being a realistic load: but it was # notably slowed down by your throttling mods in 5.16-rc, and this # patch makes it well again - thanks. # # But: it very quickly hit NULL pointer until I changed that last # line to # # if (first_pgdat) # consider_reclaim_throttle(first_pgdat, sc); # # The likely issue is that huge pages are a major component of the test # workload. When this is the case, first_pgdat may never get set if # compaction is ready to continue due to this check # # if (IS_ENABLED(CONFIG_COMPACTION) && # sc->order > PAGE_ALLOC_COSTLY_ORDER && # compaction_ready(zone, sc)) { # sc->compaction_ready = true; # continue; # } # # If this was true for every zone in the zonelist, first_pgdat would never # get set resulting in a NULL pointer exception. # # Link: https://lkml.kernel.org/r/20211209095453.GM3366@techsingularity.net # Fixes: 1b4e3f26f9f75 ("mm: vmscan: Reduce throttling due to a failure to make progress") # Signed-off-by: Mel Gorman # Reported-by: Hugh Dickins # Cc: Michal Hocko # Cc: Vlastimil Babka # Cc: Rik van Riel # Cc: Mike Galbraith # Cc: Darrick J. Wong # Cc: Shakeel Butt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 8008293888188c3923f5bd8a69370dae25ed14e5 # < make -s -j 80 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- randconfig # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_CPU_BIG_ENDIAN=y # Added to kconfig CONFIG_PPC64=y # Added to kconfig CONFIG_PPC_DISABLE_WERROR=y # Added to kconfig CONFIG_SECTION_MISMATCH_WARN_ONLY=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # Added to kconfig CONFIG_CC_STACKPROTECTOR_STRONG=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig CONFIG_LD_HEAD_STUB_CATCH=y # Added to kconfig CONFIG_TRIM_UNUSED_KSYMS=n # Added to kconfig CONFIG_UBSAN=n # < make -s -j 80 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 80 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig .config:4003:warning: override: reassigning to symbol PPC64 .config:4004:warning: override: reassigning to symbol PPC_DISABLE_WERROR .config:4005:warning: override: reassigning to symbol SECTION_MISMATCH_WARN_ONLY .config:4006:warning: override: reassigning to symbol PREVENT_FIRMWARE_BUILD .config:4008:warning: override: reassigning to symbol GCC_PLUGINS .config:4011:warning: override: reassigning to symbol UBSAN # make -s -j 80 ARCH=powerpc O=/kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/linus-rand_powerpc-randconfig_powerpc-gcc11 # Build took: 0:03:24.875578