# 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-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 8008293888188c3923f5bd8a69370dae25ed14e5 # < make -s -j 80 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_SAMPLES=n # < make -s -j 80 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 80 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 80 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-objdump: mm/kfence/kfence_test.o: unable to initialize decompress status for section .debug_info /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-objdump: mm/kfence/kfence_test.o: unable to initialize decompress status for section .debug_info /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-objdump: mm/kfence/kfence_test.o: File format not recognized vmlinux.o: warning: objtool: __do_fast_syscall_32()+0xa: call to stackleak_track_stack() leaves .noinstr.text section vmlinux.o: warning: objtool: do_syscall_64()+0x8: call to stackleak_track_stack() leaves .noinstr.text section vmlinux.o: warning: objtool: do_int80_syscall_32()+0x8: call to stackleak_track_stack() leaves .noinstr.text section vmlinux.o: warning: objtool: exc_general_protection()+0x24: call to stackleak_track_stack() leaves .noinstr.text section vmlinux.o: warning: objtool: fixup_bad_iret()+0x21: call to stackleak_track_stack() leaves .noinstr.text section vmlinux.o: warning: objtool: pv_ops[22]: xen_cpuid vmlinux.o: warning: objtool: pv_ops[22]: native_cpuid vmlinux.o: warning: objtool: mce_setup()+0xcb: call to pv_ops[22]() leaves .noinstr.text section vmlinux.o: warning: objtool: do_machine_check()+0x28: call to stackleak_track_stack() leaves .noinstr.text section vmlinux.o: warning: objtool: .text+0x4580e: call to stackleak_erase() leaves .noinstr.text section vmlinux.o: warning: objtool: .entry.text+0x143: call to stackleak_erase() leaves .noinstr.text section vmlinux.o: warning: objtool: .entry.text+0x10eb: call to stackleak_erase() leaves .noinstr.text section vmlinux.o: warning: objtool: .entry.text+0x17e9: call to stackleak_erase() leaves .noinstr.text section /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld: mm/kfence/kfence_test.o: unable to initialize decompress status for section .debug_info /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld: mm/kfence/kfence_test.o: unable to initialize decompress status for section .debug_info /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld: mm/kfence/kfence_test.o: unable to initialize decompress status for section .debug_info /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld: mm/kfence/kfence_test.o: unable to initialize decompress status for section .debug_info mm/kfence/kfence_test.o: file not recognized: File format not recognized make[3]: *** [/kisskb/src/scripts/Makefile.modfinal:60: mm/kfence/kfence_test.ko] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/scripts/Makefile.modpost:140: __modpost] Error 2 make[1]: *** [/kisskb/src/Makefile:1761: modules] Error 2 make: *** [Makefile:219: __sub-make] Error 2 Command 'make -s -j 80 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 # Build took: 0:34:52.551072