# git rev-parse -q --verify 82bc47f26969f6ed290cda529b9893941923c0f4^{commit} 82bc47f26969f6ed290cda529b9893941923c0f4 already have revision, skipping fetch # git checkout -q -f -B kisskb 82bc47f26969f6ed290cda529b9893941923c0f4 # git clean -qxdf # git log -1 commit 82bc47f26969f6ed290cda529b9893941923c0f4 Author: Nicholas Piggin Date: Wed Mar 7 11:37:18 2018 +1000 powerpc/mm/slice: use the dynamic high slice size to limit bitmap operations The number of high slices a process might use now depends on its address space size, and what allocation address it has requested. This patch uses that limit throughout call chains where possible, rather than use the fixed SLICE_NUM_HIGH for bitmap operations. This saves some cost for processes that don't use very large address spaces. Perormance numbers aren't changed significantly, this may change with larger address spaces or different mmap access patterns that require more slice mask building. Signed-off-by: Nicholas Piggin Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < git log --format=%s --max-count=1 82bc47f26969f6ed290cda529b9893941923c0f4 # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_powerpc-randconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- randconfig KCONFIG_SEED=0x53BDD27A # 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 # yes \n | make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_powerpc-randconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_powerpc-randconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/arch/powerpc/kernel/watchdog.c: In function 'watchdog_smp_panic': /kisskb/src/arch/powerpc/kernel/watchdog.c:166:4: error: implicit declaration of function 'smp_send_nmi_ipi' [-Werror=implicit-function-declaration] smp_send_nmi_ipi(c, wd_lockup_ipi, 1000000); ^ /kisskb/src/arch/powerpc/kernel/watchdog.c:168:3: error: implicit declaration of function 'smp_flush_nmi_ipi' [-Werror=implicit-function-declaration] smp_flush_nmi_ipi(1000000); ^ cc1: some warnings being treated as errors /kisskb/src/scripts/Makefile.build:324: recipe for target 'arch/powerpc/kernel/watchdog.o' failed make[2]: *** [arch/powerpc/kernel/watchdog.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /kisskb/src/Makefile:1051: recipe for target 'arch/powerpc/kernel' failed make[1]: *** [arch/powerpc/kernel] Error 2 make[1]: *** Waiting for unfinished jobs.... /kisskb/src/arch/powerpc/mm/tlb-radix.c:383:0: warning: "radix__flush_all_mm" redefined #define radix__flush_all_mm radix__local_flush_all_mm ^ In file included from /kisskb/src/arch/powerpc/include/asm/book3s/64/radix.h:22:0, from /kisskb/src/arch/powerpc/include/asm/book3s/64/pgtable.h:312, from /kisskb/src/arch/powerpc/include/asm/book3s/64/mmu-hash.h:24, from /kisskb/src/arch/powerpc/include/asm/book3s/64/mmu.h:30, from /kisskb/src/arch/powerpc/include/asm/mmu.h:314, from /kisskb/src/arch/powerpc/include/asm/lppaca.h:36, from /kisskb/src/arch/powerpc/include/asm/paca.h:21, from /kisskb/src/arch/powerpc/include/asm/hw_irq.h:63, from /kisskb/src/arch/powerpc/include/asm/irqflags.h:12, from /kisskb/src/include/linux/irqflags.h:16, from /kisskb/src/include/linux/spinlock.h:54, from /kisskb/src/include/linux/mmzone.h:8, from /kisskb/src/include/linux/gfp.h:6, from /kisskb/src/include/linux/mm.h:10, from /kisskb/src/arch/powerpc/mm/tlb-radix.c:12: /kisskb/src/arch/powerpc/include/asm/book3s/64/tlbflush-radix.h:44:0: note: this is the location of the previous definition #define radix__flush_all_mm(mm) radix__local_flush_all_mm(mm) ^ /kisskb/src/arch/powerpc/mm/slice.c: In function 'slice_range_to_mask': /kisskb/src/arch/powerpc/mm/slice.c:81:2: error: #error XXX: bitmap_zero with non-const size? Good code? #error XXX: bitmap_zero with non-const size? Good code? ^ /kisskb/src/arch/powerpc/mm/slice.c: In function 'slice_get_unmapped_area': /kisskb/src/arch/powerpc/mm/slice.c:660:2: error: #error XXX: are we sure high_slices is > 0 here when SLICE_NUM_HIGH? Perhaps not for 32-bit tasks on 64? #error XXX: are we sure high_slices is > 0 here when SLICE_NUM_HIGH? Perhaps not for 32-bit tasks on 64? ^ /kisskb/src/scripts/Makefile.build:324: recipe for target 'arch/powerpc/mm/slice.o' failed make[2]: *** [arch/powerpc/mm/slice.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /kisskb/src/arch/powerpc/kvm/powerpc.c: In function 'kvm_arch_vcpu_ioctl_run': /kisskb/src/arch/powerpc/kvm/powerpc.c:1611:1: warning: label 'out' defined but not used [-Wunused-label] out: ^ /kisskb/src/Makefile:1051: recipe for target 'arch/powerpc/mm' failed make[1]: *** [arch/powerpc/mm] Error 2 make[1]: *** wait: No child processes. Stop. Makefile:146: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_powerpc-randconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/powerpc-next_powerpc-randconfig_powerpc-5.3 # Build took: 0:00:17.238936