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

Jeff Roberson jroberson at jroberson.net
Tue Jun 25 03:21:32 UTC 2013


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


More information about the freebsd-current mailing list