Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Jun 2014 22:56:47 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Alan Cox <alc@rice.edu>, Ian Lepore <ian@FreeBSD.org>
Cc:        "arm@freebsd.org" <arm@FreeBSD.org>
Subject:   Re: RPI-B VM panic
Message-ID:  <539A140F.6020107@selasky.org>
In-Reply-To: <5399FB57.8090102@rice.edu>
References:  <539170AA.2000109@selasky.org> <5396947A.1060601@selasky.org>	 <5396A0D1.80309@selasky.org> <5396AF63.6040209@selasky.org>	 <8BA66A45-E08A-475D-A1FA-5047E862681E@rice.edu>	 <5398B6EA.9030408@selasky.org>	 <A9433B36-C15C-455E-AB80-3999596936F9@rice.edu>	 <5398BFD9.60502@selasky.org>	 <7390A211-C949-4079-B3DA-BF23798B8992@rice.edu>	 <539942C0.5010706@selasky.org> <5399DF7F.4010501@rice.edu>	 <5399E349.5050600@selasky.org> <1402594327.20883.216.camel@revolution.hippie.lan> <5399E660.5050207@selasky.org> <5399E901.1080805@selasky.org> <5399FB57.8090102@rice.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06/12/14 21:11, Alan Cox wrote:
> On 06/12/2014 12:53, Hans Petter Selasky wrote:
>> 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@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
>>
>
> Use the ddb command "object", not "vmochk".
>
>> ....
>>
>>> 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
>>
>>
>>
>
>

show object 0xc1a2b1e0
Object 0xc1a2b1e0: type=0, size=0xa, res=10, ref=2, flags=0x3000 ruid 0 
charge a000
  sref=0, backing_object(0)=(0)+0x0
 
memory:=(off=0x0,page=0x1766000),(off=0x1,page=0x1e17000),(off=0x2,page=0x1772000),(off=0x3,page=0x1773000),(off=0x4,page=0x1e6a000),(off=0x5,page=0x177500)
 
...(off=0x6,page=0x1776000),(off=0x7,page=0x1778000),(off=0x8,page=0x1788000),(off=0x9,page=0x17e9000)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?539A140F.6020107>