Reminder: Removal of WITHOUT_ARM_EABI

Ronald Klop ronald-freebsd8 at klop.yi.org
Thu Sep 5 10:59:13 UTC 2013


On Fri, 30 Aug 2013 14:04:52 +0200, Ronald Klop  
<ronald-freebsd8 at klop.yi.org> wrote:

> On Thu, 29 Aug 2013 19:38:44 +0200, Adrian Chadd <adrian at freebsd.org>  
> wrote:
>
>> On 29 August 2013 10:25, Warner Losh <imp at bsdimp.com> wrote:
>>
>>>
>>> On Aug 29, 2013, at 11:17 AM, Adrian Chadd wrote:
>>>
>>> > (top posting so one doesn't have to scroll down to the bottom to read
>>> > this..)
>>> >
>>> > ARM people - is this useful? This looks to me like the serial  
>>> console IO
>>> > path to enter ddb. I guess uart_bus_attach() is the wrong function  
>>> name
>>> and
>>> > the real function is something inside the uart RX path
>>>
>>> This stack trace is poo. These routines long ago finished running, and
>>> certainly wouldn't be running in the context of df.
>>
>>
>> They'd be running if he hit the magic "please sir, may I enter ddb?"
>> routine. The attach function is just ddb getting the symbol lookup  
>> wrong -
>> you'd have to run (arm) addr2line to get the PC -> symbol.
>>
>> But the wchan shows its running, not that it's spun in the kernel. So,
>> either it's running and doign ridiculous amounts of syscalls in some  
>> kind
>> of loop, or it's actually spinning in userland.
>>
>> Re jmg - yeah, maybe running it in userland gdb will shed more light.
>
> Hi, it is about the df in this line in /etc/rc.d/initrandom.
>
>          ( kenv; dmesg; df -ib; ps -fauxww; date; sysctl -a ) \
>              | dd of=/dev/random bs=8k 2>/dev/null
>
> If I (only) remove the df it waits on the ps. If I remove the ps it  
> waits on sysctl. Maybe interesting information.
>
> Because it is still running the boot scripts I don't know how to attach  
> gdb. Any pointer how to do that?
>
> ...
>
> Oh wow, for some lucky reason I add rc_info="YES" to rc.conf and when I  
> rebooted it did an fsck of all filesystems and it booted into multiuser.  
> I am now logged in and see the same as Ian. Top does not work. Df hangs.  
> Etc.
> I see I don't have debugging symbols compiled in the userland so I need  
> to rebuild to make gdb happy.
>
> Ronald.

I have some new data. I compiled world with debug symbols and succeeded to  
boot correctly again (it works if fsck needs to kick in).
root@:~ # gdb ps
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you  
are
welcome to change it and/or distribute copies of it under certain  
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "arm-marcel-freebsd"...
(gdb) run axu
Starting program: /bin/ps axu


^C
Program received signal SIGINT, Interrupt.
0x201cc108 in __mult_D2A (a=<value optimized out>, b=<value optimized out>)
     at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c:311
311     /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c: No such file or  
director                                          y.
         in /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c
Current language:  auto; currently minimal
(gdb) bt
#0  0x201cc108 in __mult_D2A (a=<value optimized out>, b=<value optimized  
out>)
     at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c:311
#1  0x201cc2d8 in __pow5mult_D2A (b=<value optimized out>,
     k=<value optimized out>)
     at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c:409
#2  0x201c2b68 in __dtoa (d0=<value optimized out>,
     mode=<value optimized out>, ndigits=1, sign=<value optimized out>,
     rve=<value optimized out>)
     at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_dtoa.c:533
#3  0x201b8c70 in __vfprintf (fp=0xbfffe238, locale=0x201ec620,
     fmt0=0xeec8 "%.1f", ap={__ap = 0xbfffe378})
     at /usr/src/lib/libc/stdio/vfprintf.c:713
#4  0x2015a064 in vasprintf_l (str=0xbfffe378, locale=0x201ec620,
     fmt=0xeec8 "%.1f") at /usr/src/lib/libc/stdio/vasprintf.c:59
#5  0x2015a130 in vasprintf (str=0xbfffe378, fmt=0xeec8 "%.1f")
     at /usr/src/lib/libc/stdio/vasprintf.c:73
#6  0x20158748 in asprintf (s=<value optimized out>,
     fmt=0x20a26338  
"ºRXºÃè\037\227ã\231aõZu\020ïé\031ýË\220\001ùêÆÛ©iM\001¼µîJͱ                                           
ÏÆÃ©Ó.Ð\017$)öä\005ãeZX±.Z&\004 \005×\005")
     at /usr/src/lib/libc/stdio/asprintf.c:52
#7  0x0000b924 in pmem (k=<value optimized out>, ve=<value optimized out>)
     at /usr/src/bin/ps/print.c:669
#8  0x0000d014 in $a () at /usr/src/bin/ps/ps.c:1134
#9  0x0000d014 in $a () at /usr/src/bin/ps/ps.c:1134

Is it possible this gives an endless loop on armv5?


Ronald.


More information about the freebsd-arm mailing list