# git rev-parse -q --verify 9b1ea29bc0d7b94d420f96a0f4121403efc3dd85^{commit} 9b1ea29bc0d7b94d420f96a0f4121403efc3dd85 already have revision, skipping fetch # git checkout -q -f -B kisskb 9b1ea29bc0d7b94d420f96a0f4121403efc3dd85 # git clean -qxdf # < git log -1 # commit 9b1ea29bc0d7b94d420f96a0f4121403efc3dd85 # Author: Linus Torvalds # Date: Wed Mar 10 10:18:04 2021 -0800 # # Revert "mm, slub: consider rest of partial list if acquire_slab() fails" # # This reverts commit 8ff60eb052eeba95cfb3efe16b08c9199f8121cf. # # The kernel test robot reports a huge performance regression due to the # commit, and the reason seems fairly straightforward: when there is # contention on the page list (which is what causes acquire_slab() to # fail), we do _not_ want to just loop and try again, because that will # transfer the contention to the 'n->list_lock' spinlock we hold, and # just make things even worse. # # This is admittedly likely a problem only on big machines - the kernel # test robot report comes from a 96-thread dual socket Intel Xeon Gold # 6252 setup, but the regression there really is quite noticeable: # # -47.9% regression of stress-ng.rawpkt.ops_per_sec # # and the commit that was marked as being fixed (7ced37197196: "slub: # Acquire_slab() avoid loop") actually did the loop exit early very # intentionally (the hint being that "avoid loop" part of that commit # message), exactly to avoid this issue. # # The correct thing to do may be to pick some kind of reasonable middle # ground: instead of breaking out of the loop on the very first sign of # contention, or trying over and over and over again, the right thing may # be to re-try _once_, and then give up on the second failure (or pick # your favorite value for "once"..). # # Reported-by: kernel test robot # Link: https://lore.kernel.org/lkml/20210301080404.GF12822@xsang-OptiPlex-9020/ # Cc: Jann Horn # Cc: David Rientjes # Cc: Joonsoo Kim # Acked-by: Christoph Lameter # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux-ld --version # < git log --format=%s --max-count=1 9b1ea29bc0d7b94d420f96a0f4121403efc3dd85 # < make -s -j 120 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- randconfig KCONFIG_SEED=0xC9D36F26 # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # < make -s -j 120 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- help # make -s -j 120 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- olddefconfig # make -s -j 120 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux-ld: Unexpected GOT/PLT entries detected! /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux-ld: Unexpected run-time procedure linkages detected! drivers/gpu/drm/rcar-du/rcar_du_crtc.o: In function `rcar_du_cmm_setup': rcar_du_crtc.c:(.text+0x244): undefined reference to `rcar_cmm_setup' drivers/gpu/drm/rcar-du/rcar_du_crtc.o: In function `rcar_du_crtc_atomic_enable': rcar_du_crtc.c:(.text+0x1804): undefined reference to `rcar_cmm_enable' drivers/gpu/drm/rcar-du/rcar_du_crtc.o: In function `rcar_du_crtc_atomic_disable': rcar_du_crtc.c:(.text+0x1d2c): undefined reference to `rcar_cmm_disable' drivers/gpu/drm/rcar-du/rcar_du_kms.o: In function `rcar_du_modeset_init': rcar_du_kms.c:(.text+0xcac): undefined reference to `rcar_cmm_init' drivers/gpu/drm/pl111/pl111_versatile.o: In function `pl111_versatile_init': pl111_versatile.c:(.text+0x698): undefined reference to `devm_regmap_init_vexpress_config' make[1]: *** [/kisskb/src/Makefile:1197: vmlinux] Error 1 make: *** [Makefile:215: __sub-make] Error 2 Command 'make -s -j 120 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 # Build took: 0:02:54.391869