Re: [linux-next:master 11808/13503] kernel/bpf/syscall.c:154: undefined reference to `vmalloc_user_node_flags'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/23/19 3:44 AM, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   b9d3d01405061bb42358fe53f824e894a1922ced
> commit: fc9702273e2edb90400a34b3be76f7b08fa3344b [11808/13503] bpf: Add mmap() support for BPF_MAP_TYPE_ARRAY
> config: arm-randconfig-a001-20191123 (attached as .config)
> compiler: arm-linux-gnueabi-gcc (GCC) 7.4.0
> reproduce:
>          wget https://urldefense.proofpoint.com/v2/url?u=https-3A__raw.githubusercontent.com_intel_lkp-2Dtests_master_sbin_make.cross&d=DwIBAg&c=5VD0RTtNlTh3ycd41b3MUw&r=vxqvl81C2rT6GOGdPyz8iQ&m=OyqPkKr2ayhE9rsjQ3V9TjPHNWGAzMj67odoKch8_YM&s=JuUtGb4L_bH6ANKEMAgVL3zSBnFkOW4jhVP9W3WBHBM&e=  -O ~/bin/make.cross
>          chmod +x ~/bin/make.cross
>          git checkout fc9702273e2edb90400a34b3be76f7b08fa3344b
>          # save the attached .config to linux build tree
>          GCC_VERSION=7.4.0 make.cross ARCH=arm
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> 
> All errors (new ones prefixed by >>):
> 
>     arm-linux-gnueabi-ld: section .data VMA [0000000000808000,00000000008829bf] overlaps section .ARM.unwind_idx VMA [00000000007d7000,000000000080b8ef]
>     arm-linux-gnueabi-ld: section .ARM.unwind_tab VMA [000000000080b8f0,000000000080febb] overlaps section .data VMA [0000000000808000,00000000008829bf]
>     kernel/bpf/syscall.o: In function `__bpf_map_area_alloc':
>>> kernel/bpf/syscall.c:154: undefined reference to `vmalloc_user_node_flags'
> 

Can't repro this with given config on x86_64. Trying to make make.cross 
work for me still. Any ideas why this is happening? I see that 
__vmalloc_node_flags_caller that we also use if #ifdef'ed as static 
inline in include/linux/vmalloc.h if no CONFIG_MMU is defined. Are we 
missing some config dependency or should I do the same trick as 
__vmalloc_node_flags_caller does?

Also. Daniel, when I tried to build latest bpf-next with this config, I 
got another compilation error, related to your recent patch, you might 
want to take a look as well:

   CC      kernel/tracepoint.o
   CC      kernel/elfcore.o
/data/users/andriin/linux/kernel/bpf/verifier.c: In function 
‘fixup_bpf_calls’:
/data/users/andriin/linux/kernel/bpf/verifier.c:9132:25: error: implicit 
declaration of function ‘bpf_jit_blinding_enabled’; did you mean 
‘bpf_jit_kallsyms_enabled’? [-Werror=implicit-function-declaration]
   bool expect_blinding = bpf_jit_blinding_enabled(prog);
                          ^~~~~~~~~~~~~~~~~~~~~~~~
                          bpf_jit_kallsyms_enabled
   CC      kernel/irq_work.o
   CC      kernel/crash_dump.o

> vim +154 kernel/bpf/syscall.c
> 
>     129	
>     130	static void *__bpf_map_area_alloc(size_t size, int numa_node, bool mmapable)
>     131	{
>     132		/* We really just want to fail instead of triggering OOM killer
>     133		 * under memory pressure, therefore we set __GFP_NORETRY to kmalloc,
>     134		 * which is used for lower order allocation requests.
>     135		 *
>     136		 * It has been observed that higher order allocation requests done by
>     137		 * vmalloc with __GFP_NORETRY being set might fail due to not trying
>     138		 * to reclaim memory from the page cache, thus we set
>     139		 * __GFP_RETRY_MAYFAIL to avoid such situations.
>     140		 */
>     141	
>     142		const gfp_t flags = __GFP_NOWARN | __GFP_ZERO;
>     143		void *area;
>     144	
>     145		/* kmalloc()'ed memory can't be mmap()'ed */
>     146		if (!mmapable && size <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER)) {
>     147			area = kmalloc_node(size, GFP_USER | __GFP_NORETRY | flags,
>     148					    numa_node);
>     149			if (area != NULL)
>     150				return area;
>     151		}
>     152		if (mmapable) {
>     153			BUG_ON(!PAGE_ALIGNED(size));
>   > 154			return vmalloc_user_node_flags(size, numa_node, GFP_KERNEL |
>     155						       __GFP_RETRY_MAYFAIL | flags);
>     156		}
>     157		return __vmalloc_node_flags_caller(size, numa_node,
>     158						   GFP_KERNEL | __GFP_RETRY_MAYFAIL |
>     159						   flags, __builtin_return_address(0));
>     160	}
>     161	
> 
> ---
> 0-DAY kernel test infrastructure                 Open Source Technology Center
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.01.org_hyperkitty_list_kbuild-2Dall-40lists.01.org&d=DwIBAg&c=5VD0RTtNlTh3ycd41b3MUw&r=vxqvl81C2rT6GOGdPyz8iQ&m=OyqPkKr2ayhE9rsjQ3V9TjPHNWGAzMj67odoKch8_YM&s=zQax2z98Tn-V1wcH0rtwmJ0iA9DpFhqbVNzexx7wOWw&e=  Intel Corporation
> 





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux