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

From: Jeff Roberson <jroberson_at_jroberson.net>
Date: Mon, 24 Jun 2013 17:23:34 -1000 (HST)
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
Received on Tue Jun 25 2013 - 01:21:32 UTC

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