Messages in this thread | | | Date | Mon, 11 Nov 2013 14:43:28 +0800 | Subject | Re: kernel BUG at kernel/kallsyms.c:222! | From | Axel Lin <> |
| |
2013/11/11 Rusty Russell <rusty@rustcorp.com.au>: > Ming Lei <tom.leiming@gmail.com> writes: >> Hi Axel, >> >> On Fri, Nov 8, 2013 at 12:20 PM, Axel Lin <axel.lin@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
| |