__rw_wlock_hard panic on 1st malloc

Warner Losh imp at bsdimp.com
Tue Apr 16 22:43:46 UTC 2013


The problem here is a double fault. The first fault is in init_dynamic_kenv when we try to read the kernel environment. The second fault happens because we don't wind up in the debugger (I think due to reading the stack goes awry).

I've fixed the first problem in r249570.

Not sure what's going on beyond that, since after fixing that I hit a similar issue in stack_copy() but without a traceback, it is kinda hard.

This is on my MarsBoard with an allwinner tech's A10 CPU.

Warner


On Apr 14, 2013, at 12:51 PM, Damjan Marion wrote:

> 
> I doubt. init_dynamic_kenv() is called by sysinit as part of standard sysinit sequence and 
> it is called after kmeminit().
> 
> There is no my custom code except standard parts of initarm initialisation.
> 
> Damjan
> 
> On Apr 14, 2013, at 7:19 PM, Warner Losh <imp at bsdimp.com> wrote:
> 
>> Maybe you are calling malloc before these locks are initialized?
>> 
>> Warner
>> 
>> On Apr 14, 2013, at 5:03 AM, Damjan Marion wrote:
>> 
>>> 
>>> Hi,
>>> 
>>> I'm playing a bit with i.MX6 based board (wandboard) and I have serial console working but
>>> now it panics in init_dynamic_kenv() with the following error:
>>> 
>>> panic: __rw_wlock_hard: recursing but non-recursive rw pmap pv global @ /usr/src/sys/arm/arm/pmap-v6.c:1187
>>> 
>>> It looks like this is the 1st place where malloc() is called, an malloc returns valid VA
>>> but 1st attempt to access that address produces panic above.
>>> 
>>> Any idea what can be the reason for this or any other hint?
>>> 
>>> Thanks,
>>> 
>>> Damjan
>>> _______________________________________________
>>> freebsd-arm at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
>>> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
>> 
> 



More information about the freebsd-arm mailing list