RPI-B VM panic

Hans Petter Selasky hps at selasky.org
Thu Jun 12 17:52:45 UTC 2014


On 06/12/14 19:41, Hans Petter Selasky wrote:
> On 06/12/14 19:32, Ian Lepore wrote:
>> On Thu, 2014-06-12 at 19:28 +0200, Hans Petter Selasky wrote:
>>> On 06/12/14 19:12, Alan Cox wrote:
>>>> On 06/12/2014 01:03, Hans Petter Selasky wrote:
>>>>> On 06/11/14 22:47, Alan Cox wrote:
>>>>>>
>>>>>> On Jun 11, 2014, at 3:45 PM, Hans Petter Selasky wrote:
>>>>>>
>>>>>>> On 06/11/14 22:20, Alan Cox wrote:
>>>>>>>>
>>>>>>>> On Jun 11, 2014, at 3:07 PM, Hans Petter Selasky wrote:
>>>>>>>>
>>>>>>>>> kernel:     file format elf32-littlearm
>>>>>>>>>
>>>>>>>>
>>>>>>>> Then this problem is unrelated to the one that I just fixed.  It's
>>>>>>>> also not a problem that I've seen before.
>>>>>>>
>>>>>>> It is happening after your recent patches to -current, optimising
>>>>>>> the "page ordering". Happens every now and then during boot when
>>>>>>> stack is growing looks like.
>>>>>>
>>>>>> More precisely, which commit is that?
>>>>>>
>>>>>
>>>>>> commit 7d20e37fb658b0e2cd7f3c13dac8022e0e866a21
>>>>>> Author: alc <alc at FreeBSD.org>
>>>>>> Date:   Sun May 12 16:50:18 2013 +0000
>>>>>>
>>>>>>       Refactor vm_page_alloc()'s interactions with
>>>>>> vm_reserv_alloc_page() and
>>>>>>       vm_page_insert() so that (1) vm_radix_lookup_le() is never
>>>>>> called
>>>>>> while the
>>>>>>       free page queues lock is held and (2) vm_radix_lookup_le() is
>>>>>> called at most
>>>>>>       once.  This change reduces the average time that the free page
>>>>>> queues lock
>>>>>>       is held by vm_page_alloc() as well as vm_page_alloc()'s average
>>>>>> overall
>>>>>>       running time.
>>>>>>
>>>>>>       Sponsored by:       EMC / Isilon Storage Division
>>>>>>
>>>>>
>>>>>
>>>>
>>>> That's not exactly a recent commit.  It was 13 months ago.  And, this
>>>> code is exercised by all page allocations except for page table pages
>>>> and uma_small_alloc().
>>>>
>>>> What this assertion is telling us is that somewhere else we have
>>>> screwed
>>>> up the vm object to which we are now trying to allocate a page.
>>>>
>>>> Try the attached patch.  It will provide additional information the
>>>> next
>>>> time that the assertion fails.
>>>>
>>>
>>> Here you go:
>>>
>>>> panic: vm_page_insert_after: msucc 0xc0993e50 (0) doesn't succeed
>>>> pindex 4
>>>> object 0xc1a2b140 type 0
>>>> KDB: enter: panic
>>>> [ thread pid 18 tid 100052 ]
>>>> Stopped at      $d:     ldrb    r15, [r15, r15, ror r15]!
>>>> db>
>>
>> Could this be related to changing superpages to enabled by default
>> recently?  Easy to test by setting vm.pmap.sp_enabled=0 in ubldr
>>
>
> Setting the sp_enabled to 0 does not fix the problem.
>
> --HPS

Output from the debugger regarding the object:

> panic: vm_page_insert_after: msucc 0xc0993e50 (0) doesn't succeed pindex 4
> object 0xc1a2b1e0 type 0
> KDB: enter: panic

> db> show vmochk
> vmochk: internal obj is not in a map: ref: 1, size: 2: 0x2, backing_object: 0
> vmochk: internal obj is not in a map: ref: 1, size: 2: 0x2, backing_object: 0

....

> db> show vmopag

....

> new object: 0xc1a2b1e0
>  index(0)run(1)pa(0x1766000)
>  index(1)run(1)pa(0x1e17000)
>  index(2)run(2)pa(0x1772000)
>  index(4)run(1)pa(0x1e6a000)
>  index(5)run(2)pa(0x1775000)
>  index(7)run(1)pa(0x1778000)
>  index(8)run(1)pa(0x1788000)
>  index(9)run(1)pa(0x17e9000)

--HPS




More information about the freebsd-arm mailing list