Hi David, On Mon, Jun 25, 2012 at 2:17 AM, David Rientjes <rientjes@xxxxxxxxxx> wrote: > On Sat, 23 Jun 2012, R, Sricharan wrote: > >> Hi, >> I am observing a below crash with VMALLOC call on mainline kernel. >> The issue happens when there is insufficent vmalloc space. >> Isn't it expected that the API should return a NULL instead of crashing when >> there is not enough memory?. > > Yes. > >> This can be reproduced with succesive vmalloc >> calls for a size of about say 10MB, without a vfree, thus exhausting >> the memory. >> >> Strangely when vmalloc is requested for a large chunk, then at that time API >> does not crash instead returns a NULL correctly. >> >> Please correct me if my understanding is not correct.. >> >> -------------------------------------------------------------------------------------- >> >> [ 345.059841] Unable to handle kernel paging request at virtual >> address 90011000 >> [ 345.067063] pgd = ebc34000 >> [ 345.069793] [90011000] *pgd=00000000 >> [ 345.073383] Internal error: Oops: 5 [#1] PREEMPT SMP ARM >> [ 345.078685] Modules linked in: bcmdhd cfg80211 inv_mpu_ak8975 >> inv_mpu_kxtf9 mpu3050 >> [ 345.086380] CPU: 0 Tainted: G W (3.4.0-rc1-05660-g0d4b175 #1) >> [ 345.093351] PC is at vmap_page_range_noflush+0xf0/0x200 >> [ 345.098569] LR is at vmap_page_range+0x14/0x50 >> [ 345.103005] pc : [<c01091c8>] lr : [<c01092ec>] psr: 80000013 >> [ 345.103009] sp : ebc41e38 ip : fe000fff fp : 00002000 >> [ 345.114472] r10: c0a78480 r9 : 90011000 r8 : c096e2ac >> [ 345.119685] r7 : 90011000 r6 : 00000000 r5 : fe000000 r4 : 00000000 >> [ 345.126198] r3 : 50011452 r2 : f385c400 r1 : fe000fff r0 : f385c400 >> [ 345.132713] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user >> [ 345.139835] Control: 10c5387d Table: abc3404a DAC: 00000015 > > Couple requests: > > - since you're already running an -rc kernel, would it be possible to > try 3.5-rc4, which was released today, instead? > > - could you disassemble vmap_page_range_noflush and post the output or > map the offset back to the line in the code? Thanks a lot for the response. Debugged this further and the real issue was because of static mapping for a 1MB io page and the vmalloc mapping for a 1MB dram page falling in to one PGD entry (PGDIR_SHIFT is 0x21). While trying to setup the pagetables for the dram page, the PGD entry of static io map is used, resulting in the paging fault. This was because of a recent change that brought the static io mappings under the vmalloc space. Thanks, Sricharan -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html