Subject: Those disk-related panics
To: None <port-mac68k@netbsd.org>
From: None <Anders.Hjalmarsson@economics.gu.se>
List: port-mac68k
Date: 02/19/1999 16:26:59
I am running NetBSD-current on a Mac IIsi with a single 40MB HD,
and NFS mount everyting including root.
But I can provoke panics which I guess are related to those described
some time ago by people using two disks.

If I run 'disklabel -r sd0' (there is no disklabel but that should not
make it panic) I get:

# disklabel -r sd0
a: HFS_PART 'MacOS' at 96 size 80000
b: Other (APPLE_FREE) 'Extra' at 80096 size 1984
panic: pool_get: nfsnodepl: page empty
Stopped in disklabel at _Debugger+0x6:  unlk    a6
db> trace
_Debugger(1c,2,610b88,60cfd8,610adc) + 6
_panic(1efe1,57129,eb568,1c,2a6103c) + 62
__pool_get(eb568,2,5720a,94,2a6103c) + 140
_nfs_nget(3cc200,2a6103c,1c,610b88) + f0
_nfs_lookup(610c5c) + a84
_lookup(610e84) + 21c
_namei(610e84) + 2e2
_vn_open(610e84,202,180) + 40
_coredump(5fc4e0) + ce
_sigexit(5fc4e0,b,6780,6000,5fe158) + 2c
_postsig(b) + 90
_trap(8,402f209,6780) + 64e
	faultstkadj() + 0
db> show reg
d0              0x2704  _InitEgretJTVec+0x6f4
d1                 0x4
d2            0x610aac  _end+0x51c9dc
d3             0x1efe1  _pool_destroy+0x197
d4               0x100
d5             0x5720a  _nfs_hash+0x28
d6                0x94
d7              0x8000  _db_force_whitespace+0x80
a0               0x21e  _KbdType
a1             0x1fafa  _pool_drain+0x10c
a2             0x201e2  _printf
a3                   0
a4             0xeb568  _nfs_node_pool
a5             0x148e4  _lockmgr
a6            0x610a88  _end+0x51c9b8
sp            0x610a88  _end+0x51c9b8
pc             0x8fd9a  _Debugger+0x6
sr              0x2000  _ADBState+0x1220
_Debugger+0x6:  unlk    a6
db> print nfs_node_pool
   eb568
db> call pool_chk(0xeb568, 0)
pool(0xeb568:nfsnodepl): page inconsistency: page 0x0; at page head addr 0x60cfd8 (p 0x60c000)
0x1
db> print proc0paddr
   ca060
db> print *proc0paddr
  11c000
db> print tmpstk
   ca040
db> 

Note that sp=0x610a88, is that reasonable ?
Unfortunately I don't know m68k assembly language, but looking at locore.s,
it seems that sp should be somewhere below tmpstk or a bit above
 *proc0paddr.

Ideas ?