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

Zbyszek Bodek zbb at semihalf.com
Fri Jul 5 15:37:12 UTC 2013


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 @ /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
>> @ /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 @
>> /usr/home/br/dev/head/sys/arm/arm/pmap-v6.c:729
>> exclusive rw pmap pv global (pmap pv global) r = 0 (0xc1479dd0) locked
>> @ /usr/home/br/dev/head/sys/arm/arm/pmap-v6.c:728
>> shared rw vm object (vm object) r = 0 (0xc1551d4c) locked @
>> /usr/home/br/dev/head/sys/vm/vm_map.c:1809
>> exclusive sx vm map (user) (vm map (user)) r = 0 (0xc5600528) locked @
>> /usr/home/br/dev/head/sys/kern/imgact_elf.c:445
>> exclusive lockmgr ufs (ufs) r = 0 (0xc56f7914) locked @
>> /usr/home/br/dev/head/sys/kern/imgact_elf.c:821
>> exclusive sleep mutex Giant (Giant) r = 0 (0xc147c778) locked @
>> /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


More information about the freebsd-arm mailing list