Re: Kernel build fails on ARM: Cannot fork: Cannot allocate memory

From: Zbyszek Bodek <zbb_at_semihalf.com>
Date: Fri, 05 Jul 2013 17:37:01 +0200
On 25.06.2013 05:23, Jeff Roberson wrote:
> On Sun, 23 Jun 2013, Ruslan Bukin wrote:
> 
>> On Sun, Jun 23, 2013 at 07:50:40PM +0300, Konstantin Belousov wrote:
>>> On Sun, Jun 23, 2013 at 08:44:25PM +0400, Ruslan Bukin wrote:
>>>> On Sun, Jun 23, 2013 at 07:16:17PM +0300, Konstantin Belousov wrote:
>>>>> On Sun, Jun 23, 2013 at 06:43:46PM +0400, Ruslan Bukin wrote:
>>>>>>
>>>>>> Trying to mount root from ufs:/dev/da0 []...
>>>>>> WARNING: / was not properly dismounted
>>>>>> warning: no time-of-day clock registered, system time will not be
>>>>>> set accurately
>>>>>> panic: __rw_wlock_hard: recursing but non-recursive rw pmap pv
>>>>>> global _at_ /usr/home/br/dev/head/sys/arm/arm/pmap-v6.c:1289
>>>>>>
>>>>>> KDB: enter: panic
>>>>>> [ thread pid 1 tid 100001 ]
>>>>>> Stopped at      kdb_enter+0x48: ldrb    r15, [r15, r15, ror r15]!
>>>>>> db> bt
>>>>>> Tracing pid 1 tid 100001 td 0xc547f620
>>>>>> _end() at 0xde9d0530
>>>>>> scp=0xde9d0530 rlv=0xc1211458 (db_trace_thread+0x34)
>>>>>>         rsp=0xde9d0514 rfp=0xc12d1b60
>>>>>> Bad frame pointer: 0xc12d1b60
>>>>>> db>
>>>>> This is completely broken.  It seems that witness triggered the panic,
>>>>> and ddb is unable to obtain a backtrace from the normal panic(9) call.
>>>>>
>>>>> Show the output of the 'show alllocks'.
>>>>
>>>> No such command
>>> Do you have witness in the kernel config ? If not, add it to the config
>>> and retry.
>>
>> Trying to mount root from ufs:/dev/da0 []...
>> WARNING: / was not properly dismounted
>> warning: no time-of-day clock registered, system time will not be set
>> accurately
>> panic: __rw_wlock_hard: recursing but non-recursive rw pmap pv global
>> _at_ /usr/home/br/dev/head/sys/arm/arm/pmap-v6.c:1289
>>
>> KDB: enter: panic
>> [ thread pid 1 tid 100001 ]
>> Stopped at      kdb_enter+0x48: ldrb    r15, [r15, r15, ror r15]!
>> db> show alllocks
>> Process 1 (kernel) thread 0xc55fc620 (100001)
>> exclusive sleep mutex pmap (pmap) r = 0 (0xc5600590) locked _at_
>> /usr/home/br/dev/head/sys/arm/arm/pmap-v6.c:729
>> exclusive rw pmap pv global (pmap pv global) r = 0 (0xc1479dd0) locked
>> _at_ /usr/home/br/dev/head/sys/arm/arm/pmap-v6.c:728
>> shared rw vm object (vm object) r = 0 (0xc1551d4c) locked _at_
>> /usr/home/br/dev/head/sys/vm/vm_map.c:1809
>> exclusive sx vm map (user) (vm map (user)) r = 0 (0xc5600528) locked _at_
>> /usr/home/br/dev/head/sys/kern/imgact_elf.c:445
>> exclusive lockmgr ufs (ufs) r = 0 (0xc56f7914) locked _at_
>> /usr/home/br/dev/head/sys/kern/imgact_elf.c:821
>> exclusive sleep mutex Giant (Giant) r = 0 (0xc147c778) locked _at_
>> /usr/home/br/dev/head/sys/kern/vfs_mount.c:1093
>> db>
>>
> 
> Would any of the arm users be interested in testing a larger patch that
> changes the way the kernel allocations KVA?  It also has some UMA code
> that lessens kernel memory utilization.
> 
> http://people.freebsd.org/~jeff/vmem.diff
> 
> Any reports would be helpful.  Is there any ETA on getting stack tracing
> fixed?  I suspect the pmap recursion encountered with Kostik's patch
> exist in the current kernel.  The other changes in this patch my fix
> that as well.
> 
> Thanks,
> Jeff

Hello Jeff,

I apologize for a long time with no respond.
The problems that I reported at the origin of this tread are no longer
relevant. I've made some really extensive tests on the current HEAD and
there is no track of kstack allocation failure on my ARM target now.

Thanks a lot for your help!

Best regards
Zbyszek Bodek
Received on Fri Jul 05 2013 - 13:37:12 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:39 UTC