kernel BUG at kernel/kallsyms.c:222!

Axel Lin axel.lin at ingics.com
Mon Nov 11 01:43:28 EST 2013


2013/11/11 Rusty Russell <rusty at rustcorp.com.au>:
> Ming Lei <tom.leiming at gmail.com> writes:
>> Hi Axel,
>>
>> On Fri, Nov 8, 2013 at 12:20 PM, Axel Lin <axel.lin at ingics.com> wrote:
>>>
>>>
>>> Hi Ming,
>>>
>>> I have patches on top of 3.12 to support gpl32700 SoC.
>>> So you cannot find this platform on mainline kernel.
>>
>> OK, I see.
>>
>>> I havn't tried perf, below is my config for your reference:
>>> (to make the config smaller, I grep out disabled config entries.)
>>
>> I doubt CONFIG_VMSPLIT_3G/CONFIG_PAGE_OFFSET isn't
>> used at all in your unmerged patchset, also your link script should
>> be different with in-tree arch/arm/kernel/vmlinux.lds.S, otherwise
>> you may put all your kernel symbols after 0xC00000000.
>>
>> Maybe you need to not define PAGE_OFFSET and let it be
>> PHYS_OFFSET at default, also VMSPLIT_3G shouldn't have
>> been there on non-MMU linux.
>
> OK, unless there are other platforms which have this issue, I'll
> leave it with you to hold this patch for merge with your SoC.


Hi Rusty,

I don't have other noMMU platform to test.
But I think this issue impacts various !CONFIG_MMU platforms:
We have CONFIG_PAGE_OFFSET=0xC0000000 in various default configs.
For !CONFIG_MMU case, it just don't use the CONFIG_PAGE_OFFSET setting.
So use CONFIG_PAGE_OFFSET to filter symbols looks wrong to me for all
!CONFIG_MMU cases.

Below is PAGE_OFFSET setting for !CONFIG_MMU case:
(arch/arm/include/asm/memory.h)

#ifndef PHYS_OFFSET
#define PHYS_OFFSET             UL(CONFIG_DRAM_BASE)
#endif

#ifndef END_MEM
#define END_MEM                 (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE)
#endif

#ifndef PAGE_OFFSET
#define PAGE_OFFSET             (PHYS_OFFSET)
#endif

My patchs for gpl327xx SoC is still in very early stage.
I think you should send your fix upstream because I think it impacts other
noMMU platforms (for above reason).

Thanks,
Axel



More information about the linux-arm-kernel mailing list