arla problems under Solaris 2.6

John Hawkinson jhawk at bbnplanet.com
Wed Jun 17 22:09:11 CEST 1998


(rb's announcement reminds me)

Having finally gotten an Ultra 30 wearing my work hat,
I'm back to fiddling with Arla.

Attached is the output from adb from a panic
that I got after mounting (modloading was fine)
xfs under Solaris 2.6, with all current patches.
This is under gcc 2.8.1, and as usual, I can't imagine
that matters.

I'm not sure what to conclude here. It looks like the pointers
in the struct mounta are not accessible in kernel space.
I don't understand why that might be.

{Writing Device Drivers} instructs one not to use
printf(), but instead to use cmn_err(). I didn't think
this was the problem, but I replaced all printf()s with
cmn_err()s, but that paniced in the same place.

Any thoughts? I suppose arla could treat the members
of the struct mounta as opaque and not try to dereference them,
and maybe everything would work.

I'm also a bit confused why this code is even being executed since
xfsdeb's value should still be zero, as far as I know, since I have
not changed it. But somehow it becomes 3f. Perhaps this is a hint
that something is stomping on it?

It seems to happen as part of the load:

# modload xfs
# adb -k /dev/ksyms /dev/mem
xphysmem        7b3f
fsdeb/X
xfsdeb:
xfsdeb:         3f
xfsdeb/W0

not in write mode
$W
xfsdeb/W0
xfsdeb:         0x3f            =       0x0

Interesting! Now I can mount the xfs module without a panic:
# ./mount_xfs /dev/xfs0 /afs

How bizarre.

Just for comparison's sake, adb thinks that xfsdeb is 0 in the module:
# adb xfs
xfsdeb/X
xfsdeb:
xfsdeb:         0
?X
xfsdeb:
xfsdeb:         3f

Oops, it actually does think that it is 3f, I guess I was using
/X when I should have been using ?X.

Anyhow, any comments? Does it make sense that the pointers in the
struct mounta should be opaque?

Thanks.

--jhawk


# adb -k unix.3 vmcore.3
physmem 7b3f
$c
complete_panic(?) + 24
do_panic(0x1,0x301df4ac,0x1040c3f8,0x0,0x20,0x0)
vcmn_err(0x3,0x1040d418,0x3,0x301df4ac,0x608d4040,0x4) + 190
cmn_err(0x3,0x1040d418,0xeffffc08,0xf5,0xf5,0x10406400) + 1c
die(0x31,0x301df690,0xeffffdd8,0x0,0x1040d418,0x0) + a0
trap(0x301df690,0x0,0xefffe000,0x1,0x0,0x5) + 830
0x301df690$<regs
0x301df690:     tstate                          pc              npc
                8               80001e06        1005f4bc        1005f4c0
0x301df718:     y                               g1
                0                               0               60561f80
0x301df6a0:     g1                              g2
                0               60561f80        0               78
0x301df6b0:     g3                              g4
                0               61              0               0
0x301df6c0:     g6                              g7
                0               0               0               608d4040
0x301df6d0:     o0                              o1
                0               effffdd8        0               73
0x301df6e0:     o2                              o3
                0               301df7d4        0               0
0x301df6f0:     o4                              o5
                0               3               0               301df7f7
0x301df700:     o6                              o7
                0               301df720        0               1005f028
301df720$c
?(?) + 0
prf_internal(0x60c8e366,0x25,0x10428258,0x3,0x20,0x0)
prf(0x60c8e348,0x301df960,0x0,0x3,0x301dfa14,0x601d9ec0) + 1c
printf(0x60c8e348,0x600be148,0xeffffdd8,0xeffffdce,0x0,0x0) + 24
xfs_mount(0x600be148,0x60c81b20,0x609cbcf8,0x600c3da0,0x60588008,0x60588000) + 48
mount(0x609cbcf8,0x60c8ea98,0x0,0x0,0x600be148,0x0) + 308
syscall_ap(0x609cbc90,0x301dfae0,0x1042639c,0x11cf0,0x0,0x0) + 68
0x60c8e348/s
rcsid+0xb90:    xfs_mount vfsp = 0x%x path = %s args = '%s'
0x600be148/X
config_ts_maxumdpri+0x1240:     0
0xeffffdd8/s

data address not found
0xeffffdd8/X
msgbuf$<msgbuf
msgbuf:
msgbuf:         magic           size            bufx            bufr
                8724786         1fe8            42c             0
msgbuf+0x10:    gAie = 0x31
                addr=0xeffffdd8
                pid=4257, pc=0x1005f4bc, sp=0x301df720, tstate=0x880001e06, cont
                ext=0x1d2f
                g1-g7: 60561f80, 60561f80, 78, 61, 0, 0, 608d4040
                Begin traceback... sp = 301df720
                Called from 1005f58c, fp=301df858, args=60c8e366 25 10428258 3 2
                0 0
                Called from 1005e938, fp=301df8b8, args=60c8e348 301df960 0 3 30
                1dfa14 601d9ec0
                Called from 60c89f20, fp=301df918, args=60c8e348 600be148 effffd
                d8 effffdce 0 0
                Called from 1007f75c, fp=301df9a0, args=600be148 60c81b20 609cbc
                f8 600c3da0 60588008 60588000
                Called from 100563f0, fp=301dfa18, args=609cbcf8 60c8ea98 0 0 60
                0be148 0
                Called from 1002f084, fp=301dfa80, args=609cbc90 301dfae0 104263
                9c 11cf0 0 0
                Called from 1109c, fp=effffc08, args=effffdce effffdd8 4 11cf0 0
                 0
                End traceback...
                panic[cpu0]/thread=0x608d4040: trap
                syncing file systems...xfs_sync
                 2 done
                 2839 static and sysmap kernel pages
                   29 dynamic kernel data pages
                  143 kernel-pageable pages
                    0 segkmap kernel pages
                    0 segvn kernel pages
                  183 current user process pages
                 3194 total pages (3194 chunks)

                dumping to vp 601d24cc, offset

xfsdeb/X
xfsdeb:
xfsdeb:         3f





More information about the Arla-drinkers mailing list