Re: Crash with VMALLOC api

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

 



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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]