# 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_pseries_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_defconfig # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-next_pseries_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- /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/Makefile:1051: recipe for target 'arch/powerpc/mm' failed make[1]: *** [arch/powerpc/mm] Error 2 make[1]: *** Waiting for unfinished jobs.... 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_pseries_defconfig_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_pseries_defconfig_powerpc-5.3 # Build took: 0:00:15.407049