HEADSUP : n64 changes in HEAD.

Jayachandran C. c.jayachandran at gmail.com
Sat Aug 7 04:17:41 UTC 2010


On Fri, Aug 6, 2010 at 12:06 PM, waynegong L <waynegong83 at gmail.com> wrote:
> Jayachandran,
>
> Please see my reply inline.
>
> On Thu, Aug 5, 2010 at 7:43 PM, Jayachandran C. <c.jayachandran at gmail.com>
> wrote:
>>
>> On Thu, Aug 5, 2010 at 6:43 PM, waynegong L <waynegong83 at gmail.com> wrote:
>> > Hi Jayachandran,
>> >
>> > I have been waiting for n64 support and happy to see this mail.
>> > But unfortunately i got a panic with the from HEAD(revision 210854) on
>> > my
>> > octeon board. Please find the information below.
>> > I have built rootfs in to the kernel and the rootfs is stripped one with
>> > 30M
>> > size. Also SMP support is disabled in the config file.
>>
> As i am building for OCTEON board, my config file OCTEON1 has the respective
> options
>
> options         ISA_MIPS64
> makeoptions     LDSCRIPT_NAME=ldscript.mips.octeon1.64
> makeoptions     ARCH_FLAGS="-march=octeon -mabi=64"
> makeoptions     KERNLOADADDR=0xffffffff80100000
>
>
>> There are few other changes to the config file too, to
>>
>> options         ISA_MIPS64
>> makeoptions     LDSCRIPT_NAME=ldscript.mips.64
>> makeoptions     ARCH_FLAGS="-march=mips64 -mabi=64"
>> makeoptions   KERNLOADADDR=0xffffffff80100000
>>
>> ideally, we should get this setup when TARGET_ABI is set, but not yet.
>>
>> > -----------------panic
>> > info------------------------------------------------------------------
>> > Trying to mount root from ufs:/dev/md0
>> > warning: no time-of-day clock registered, system time will not be set
>> > accurately
>> > Lookup of /dev for devfs, error: 2
>> > start_init: trying /sbin/init
>> > panic: userret: Returning with 1 locks held.
>> > KDB: enter: panic
>> > [ thread pid 1 tid 100001 ]
>> > Stopped at      kdb_enter+0x90: lui     at,0x0
>> >
>> >
>> > A bit of debugging pointed has taken me to lockmgr.
>> >
>> > db> show alllocks
>> > Process 1 (init) thread 0xc000000007926000 (100001)
>> > exclusive lockmgr devfs (devfs) r = 0 (0xc000000007fb8cf0) locked @
>> > /freebsd/testmainline/
>> > head/sys/kern/vfs_subr.c:2101
>> >
>> > db> show lockedvnods
>> > Locked vnodes
>> >
>> > db> show lock 0xc000000007fb8cf0
>> >  class: lockmgr
>> >  name: devfs
>> >  state: XLOCK: 0xc000000007926000 (tid 100001, pid 1, "init")
>> >  waiters: none
>> >  spinners: none
>> >
>> > db> show thread 100001
>> > Thread 100001 at 0xc000000007926000:
>> >  proc (pid 1): 0xc000000007923000
>> >  name: init
>> >  stack: 0xc00000002589c000-0xc00000002589dfff
>> >  flags: 0x1000004  pflags: 0
>> >  state: RUNNING (CPU 0)
>> >  priority: 180
>> >  container lock: sched lock (0xffffffff8240a338)
>> >
>> >
>> > db>  ps
>> >   pid  ppid  pgrp   uid   state   wmesg         wchan        cmd
>> >    15     0     0     0  DL      mdwait   0xc0000000080a0800 [md0]
>> >    14     0     0     0  DL      -        0xffffffff82404eb4 [schedcpu]
>> >    13     0     0     0  DL      sdflush  0xffffffff825b00c8
>> > [softdepflush]
>> >     9     0     0     0  DL      syncer   0xffffffff825ac2a0 [syncer]
>> >     8     0     0     0  DL      vlruwt   0xc0000000080a9448 [vnlru]
>> >     7     0     0     0  DL      psleep   0xffffffff825abe50 [bufdaemon]
>> >     6     0     0     0  RL                                  [pagezero]
>> >     5     0     0     0  DL      psleep   0xffffffff825b0e8c
>> > [pagedaemon]
>> >    12     0     0     0  DL      -        0xffffffff82404eb4 [yarrow]
>> >     4     0     0     0  DL      -        0xffffffff82401950 [g_down]
>> >     3     0     0     0  DL      -        0xffffffff82401948 [g_up]
>> >     2     0     0     0  DL      -        0xffffffff82401938 [g_event]
>> >    11     0     0     0  WL      (threaded)                  [intr]
>> > 100015                   I                                   [swi0: uart
>> > uart]
>> > 100014                   I                                   [swi5: +]
>> > 100012                   I                                   [swi6: task
>> > queue]
>> > 100011                   I                                   [swi6:
>> > Giant
>> > taskq]
>> > 100005                   I                                   [swi3: vm]
>> > 100004                   I                                   [swi1:
>> > netisr
>> > 0]
>> > 100003                   I                                   [swi4:
>> > clock]
>> >    10     0     0     0  RL                                  [idle]
>> >     1     0     0     0  RL      CPU 0                       [init]
>> >     0     0     0     0  DLs     (threaded)                  [kernel]
>> > 100017                   D       deadlkre 0xffffffff82404eb4 [deadlkres]
>> > 100016                   D       -        0xc0000000079b4380 [octe
>> > taskq]
>> > 100013                   D       -        0xc000000007972e00 [kqueue
>> > taskq]
>> > 100010                   D       -        0xc000000007955500 [thread
>> > taskq]
>> > 100000                   D       sched    0xffffffff824019c8 [swapper]
>> >
>> > My env is as below.
>> > TARGET=mips
>> > TARGET_ABI=n64
>> > TARGET_CPUTYPE=mips64
>> > TARGET_BIG_ENDIAN=y
>> >
>> > My kernel build was successful, Also buildworld/install world was done
>> > with
>> > the below components as suggested.
>> > -DWITHOUT_CDDL -DWITHOUT_USB -DWITHOUT_BLUETOOTH
>> >
>> > Please let me know if you need any more info.
>>
>> `show registers' output will be good, but I think the kernel is still
>> not 64 bit, so the 64 bit userspace crashed.
>
> db> show reg
> at          0xffffffff82410000  sysctl__debug_witness_children+0x26d8
> v0                0x12  _DYNAMIC_LINKING+0x11
> v1                0x12  _DYNAMIC_LINKING+0x11
> a0                   0
> a1                 0xa  _DYNAMIC_LINKING+0x9
> a2          0xffffffff825d1fe0
> a3               0x109  _DYNAMIC_LINKING+0x108
> t0                   0
> t1                   0
> t2                   0
> t3                   0
> t4          0xc000000007987638
> t5                   0
> t6                   0
> t7                   0
> s0          0xffffffff80408ab0
> s1          0xc000000007926000
> s2          0xc00000002589dd30
> s3          0xc000000007923000
> s4                0x22  _DYNAMIC_LINKING+0x21
> s5          0xc000000007926000
> s6          0xc000000007927c80
> s7                 0x1  _DYNAMIC_LINKING
> t8                   0
> t9          0x120004da0
> k0                   0
> k1                 0xa  _DYNAMIC_LINKING+0x9
> gp          0xffffffff82405684  _gp
> sp          0xc00000002589db70
> s8                 0x1  _DYNAMIC_LINKING
> ra          0xffffffff801ffd64  kdb_enter+0x74
> sr          0x408084e3
> lo                   0
> hi              0x111d  _DYNAMIC_LINKING+0x111c
> bad         0xc0000000079ac600
> cs                0x24  _DYNAMIC_LINKING+0x23
> pc          0xffffffff801ffd80  kdb_enter+0x90
> kdb_enter+0x90: lui     at,0x0
>
>
> Please let me know if u need any more info.

Looks like the kernel and userspace are 64bit, and it crashed on
getting into userspace the first time.  I am really not sure what
could have caused that lock to be held...

Have you checked if the exact same source comes up on 32 bit
compilation?  This may be worth checking first.  After that, may be
enabling debug in trap.c may be a good way to see if the exceptions
generated while jumping to userspace are handled correctly.

JC.


More information about the freebsd-mips mailing list