lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 20 Apr 2020 21:20:39 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Bernard Zhao <bernard@...o.com>,
        Christoph Lameter <cl@...ux-foundation.org>,
        Pekka Enberg <penberg@...nel.org>,
        David Rientjes <rientjes@...gle.com>,
        Joonsoo Kim <iamjoonsoo.kim@....com>,
        Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org,
        linux-kernel@...r.kernel.org, kernel@...o.com
Cc:     kbuild-all@...ts.01.org,
        Linux Memory Management List <linux-mm@...ck.org>,
        kernel@...o.com
Subject: Re: [PATCH] kmalloc_index optimization(code size & runtime stable)

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@...el.com>

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@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (57815 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ