Hi Bernard, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.7-rc2 next-20200416] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Bernard-Zhao/kmalloc_index-optimization-code-size-runtime-stable/20200417-100445 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2fcd80144b93ff90836a44f2054b4d82133d3a85 config: ia64-allmodconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=ia64 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): WARNING: unmet direct dependencies detected for FRAME_POINTER Depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS Selected by - FAULT_INJECTION_STACKTRACE_FILTER && FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT && !X86_64 && !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM && !ARC && !X86 scripts/Makefile.build:59: 'arch/ia64/kernel/palinfo.ko' 'arch/ia64/kernel/mca_recovery.ko' 'arch/ia64/kernel/err_inject.ko' will not be built even though obj-m is specified. scripts/Makefile.build:60: You cannot use subdir-y/m to visit a module Makefile. Use obj-y/m instead. In file included from include/linux/irq.h:21, from arch/ia64/include/asm/hardirq.h:19, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from arch/ia64/include/asm/mca.h:17, from arch/ia64/kernel/asm-offsets.c:18: include/linux/slab.h: In function 'kmalloc_index': >> include/linux/slab.h:390:3: error: 'high_bit' undeclared (first use in this function); did you mean 390 | high_bit = fls((int)size); | ^~~~~~~~ | assign_bit include/linux/slab.h:390:3: note: each undeclared identifier is reported only once for each function it appears in Makefile Module.symvers System.map arch block certs crypto drivers fs include init ipc kernel lib mm modules.builtin modules.builtin.modinfo modules.order net scripts security sound source usr virt vmlinux vmlinux.bin vmlinux.gz vmlinux.o [scripts/Makefile.build:100: arch/ia64/kernel/asm-offsets.s] Error 1 Target '__build' not remade because of errors. Makefile Module.symvers System.map arch block certs crypto drivers fs include init ipc kernel lib mm modules.builtin modules.builtin.modinfo modules.order net scripts security sound source usr virt vmlinux vmlinux.bin vmlinux.gz vmlinux.o [Makefile:1141: prepare0] Error 2 Target 'prepare' not remade because of errors. make: Makefile Module.symvers System.map arch block certs crypto drivers fs include init ipc kernel lib mm modules.builtin modules.builtin.modinfo modules.order net scripts security sound source usr virt vmlinux vmlinux.bin vmlinux.gz vmlinux.o [Makefile:180: sub-make] Error 2 13 real 5 user 8 sys 99.31% cpu make prepare vim +/high_bit +390 include/linux/slab.h 356 357 /* 358 * Figure out which kmalloc slab an allocation of a certain size 359 * belongs to. 360 * 0 = zero alloc 361 * 1 = 65 .. 96 bytes 362 * 2 = 129 .. 192 bytes 363 * n = 2^(n-1)+1 .. 2^n 364 */ 365 static __always_inline unsigned int kmalloc_index(size_t size) 366 { 367 if (!size) 368 return 0; 369 370 if (size <= KMALLOC_MIN_SIZE) 371 return KMALLOC_SHIFT_LOW; 372 373 if (KMALLOC_MIN_SIZE <= 32 && size > 64 && size <= 96) 374 return 1; 375 if (KMALLOC_MIN_SIZE <= 64 && size > 128 && size <= 192) 376 return 2; 377 378 if (size <= 8) 379 return 3; 380 381 /* size over KMALLOC_MAX_SIZE should trigger BUG */ 382 if (size <= KMALLOC_MAX_SIZE) { 383 /* 384 * kmalloc_info[index] 385 * size 8----16----32----64----128---256---512---1024---2048. 386 * | | | | | | | | | | | | | | | | | 387 * index 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 388 */ 389 > 390 high_bit = fls((int)size); 391 392 if (size == (2 << (high_bit - KMALLOC_SIZE_POW_2_SHIFT_BIT))) 393 return (high_bit - KMALLOC_SIZE_POW_2_INDEX_BIT); 394 395 return high_bit; 396 } 397 398 BUG(); 399 400 /* Will never be reached. Needed because the compiler may complain */ 401 return -1; 402 } 403 #endif /* !CONFIG_SLOB */ 404 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip