From owner-freebsd-alpha Thu Mar 29 13: 0:18 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from srv1.cosmo-project.de (srv1.cosmo-project.de [213.83.6.106]) by hub.freebsd.org (Postfix) with ESMTP id ACE6937B71A for ; Thu, 29 Mar 2001 13:00:10 -0800 (PST) (envelope-from ticso@mail.cicely.de) Received: from mail.cicely.de (cicely20 [10.1.1.22]) by srv1.cosmo-project.de (8.11.0/8.11.0) with ESMTP id f2TL07K01929; Thu, 29 Mar 2001 23:00:07 +0200 (CEST) Received: (from ticso@localhost) by mail.cicely.de (8.11.0/8.11.0) id f2TL0N029995; Thu, 29 Mar 2001 23:00:23 +0200 (CEST) Date: Thu, 29 Mar 2001 23:00:23 +0200 From: Bernd Walter To: Andrew Gallatin Cc: Bernd Walter , freebsd-alpha@FreeBSD.ORG Subject: Re: -current boot panic Message-ID: <20010329230022.B29139@cicely20.cicely.de> References: <20010329221942.A29139@cicely20.cicely.de> <15043.39496.927622.874793@grasshopper.cs.duke.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <15043.39496.927622.874793@grasshopper.cs.duke.edu>; from gallatin@cs.duke.edu on Thu, Mar 29, 2001 at 03:25:44PM -0500 Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Thu, Mar 29, 2001 at 03:25:44PM -0500, Andrew Gallatin wrote: > > Bernd Walter writes: > > > > trap entry = 0x2 (memory management fault) > > a0 = 0x28 > > a1 = 0x1 > > a2 = 0x1 > > pc = 0xfffffc00003f53d0 > > ra = 0xfffffc00003f53cc > > curproc = 0xfffffc0000687080 > > pid = 0, comm = > > > > Stopped at 0xfffffc00003f53d0: stq s4,0x28(s2) <0x28> > > How about running gdb on the kernel (with symbols) and mapping > 0xfffffc00003f53d0 to a function & line number? Mmm - yes - sounds logical. I don't know how to do with gdb here is the relevant objdump -S output: /* * The WITNESS-enabled diagnostic code. */ static void witness_initialize(void *dummy __unused) { struct lock_object *lock; struct witness_order_list_entry *order; struct witness *w, *w1; int i; /* * We have to release Giant before initializing its witness * structure so that WITNESS doesn't get confused. */ mtx_unlock(&Giant); fffffc00003f51e4: 40 00 28 a4 ldq t0,64(t7) fffffc00003f51e8: 09 00 20 f4 bne t0,fffffc00003f5210 fffffc00003f51ec: 80 15 1d a6 ldq a0,5504(gp) fffffc00003f51f0: 78 15 3d a6 ldq a1,5496(gp) fffffc00003f51f4: 70 15 5d a6 ldq a2,5488(gp) fffffc00003f51f8: 1c 01 7f 22 lda a3,284(zero) fffffc00003f51fc: f0 ac 7d a7 ldq t12,-21264(gp) fffffc00003f5200: c7 4a 5b 6b jsr ra,(t12),fffffc00003f7d20 fffffc00003f5204: 23 00 ba 27 ldah gp,35(ra) fffffc00003f5208: c4 e6 bd 23 lda gp,-6460(gp) fffffc00003f520c: 00 00 e0 2f unop fffffc00003f5210: 20 c5 3d a5 ldq s0,-15072(gp) fffffc00003f5214: 70 15 5d a5 ldq s1,5488(gp) fffffc00003f5218: 10 04 e9 47 mov s0,a0 fffffc00003f521c: 01 00 3f 22 lda a1,1(zero) fffffc00003f5220: 12 04 ea 47 mov s1,a2 fffffc00003f5224: 1c 01 7f 22 lda a3,284(zero) fffffc00003f5228: b0 a9 7d a7 ldq t12,-22096(gp) fffffc00003f522c: 74 60 5b 6b jsr ra,(t12),fffffc00003ed400 fffffc00003f5230: 23 00 ba 27 ldah gp,35(ra) fffffc00003f5234: 98 e6 bd 23 lda gp,-6504(gp) fffffc00003f5238: 10 04 e9 47 mov s0,a0 fffffc00003f523c: 11 04 ff 47 clr a1 fffffc00003f5240: 50 c0 7d a7 ldq t12,-16304(gp) fffffc00003f5244: 36 60 5b 6b jsr ra,(t12),fffffc00003ed320 fffffc00003f5248: 23 00 ba 27 ldah gp,35(ra) fffffc00003f524c: 80 e6 bd 23 lda gp,-6528(gp) fffffc00003f5250: 10 04 e9 47 mov s0,a0 fffffc00003f5254: 11 04 ff 47 clr a1 fffffc00003f5258: 12 04 ea 47 mov s1,a2 fffffc00003f525c: 1c 01 7f 22 lda a3,284(zero) fffffc00003f5260: b8 a1 7d a7 ldq t12,-24136(gp) fffffc00003f5264: 3e 46 5b 6b jsr ra,(t12),fffffc00003f6b60 fffffc00003f5268: 23 00 ba 27 ldah gp,35(ra) fffffc00003f526c: 60 e6 bd 23 lda gp,-6560(gp) } static __inline int atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) { fffffc00003f5270: 40 00 28 a4 ldq t0,64(t7) fffffc00003f5274: 04 00 5f 20 lda t1,4(zero) fffffc00003f5278: 30 00 69 ac ldq_l t2,48(s0) fffffc00003f527c: a3 05 61 40 cmpeq t2,t0,t2 fffffc00003f5280: 03 00 60 e4 beq t2,fffffc00003f5290 fffffc00003f5284: 03 04 e2 47 mov t1,t2 fffffc00003f5288: 30 00 69 bc stq_c t2,48(s0) fffffc00003f528c: f9 30 67 e4 beq t2,fffffc00005c1674 fffffc00003f5290: 01 04 e3 47 mov t2,t0 * XXX dfr: NetBSD originally had mb instead of wmb for * alpha_wmb(). I'm not sure why so I'm leaving it alone. I * think it should be safe to use wmb though. */ __asm__ __volatile__ ("mb"); fffffc00003f5294: 00 40 00 60 mb atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) { return (atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, (u_long)src)); fffffc00003f5298: 01 00 3f 40 addl t0,zero,t0 fffffc00003f529c: 08 00 20 f4 bne t0,fffffc00003f52c0 fffffc00003f52a0: 10 04 e9 47 mov s0,a0 fffffc00003f52a4: 11 04 ff 47 clr a1 fffffc00003f52a8: 12 04 ea 47 mov s1,a2 fffffc00003f52ac: 1c 01 7f 22 lda a3,284(zero) fffffc00003f52b0: 80 b6 7d a7 ldq t12,-18816(gp) fffffc00003f52b4: 1a 5f 5b 6b jsr ra,(t12),fffffc00003fcf20 fffffc00003f52b8: 23 00 ba 27 ldah gp,35(ra) fffffc00003f52bc: 10 e6 bd 23 lda gp,-6640(gp) mtx_assert(&Giant, MA_NOTOWNED); fffffc00003f52c0: 20 c5 1d a6 ldq a0,-15072(gp) fffffc00003f52c4: 02 00 3f 22 lda a1,2(zero) fffffc00003f52c8: 70 15 5d a6 ldq a2,5488(gp) fffffc00003f52cc: 1d 01 7f 22 lda a3,285(zero) fffffc00003f52d0: b0 a9 7d a7 ldq t12,-22096(gp) fffffc00003f52d4: 4a 60 5b 6b jsr ra,(t12),fffffc00003ed400 fffffc00003f52d8: 23 00 ba 27 ldah gp,35(ra) fffffc00003f52dc: f0 e5 bd 23 lda gp,-6672(gp) STAILQ_INSERT_HEAD(&all_locks, &all_mtx.mtx_object, lo_list); fffffc00003f52e0: 48 13 5d a4 ldq t1,4936(gp) fffffc00003f52e4: 60 a7 7d a4 ldq t2,-22688(gp) fffffc00003f52e8: 00 00 23 a4 ldq t0,0(t2) fffffc00003f52ec: 20 00 22 b4 stq t0,32(t1) fffffc00003f52f0: 03 00 20 f4 bne t0,fffffc00003f5300 fffffc00003f52f4: 01 14 44 40 addq t1,0x20,t0 fffffc00003f52f8: 08 00 23 b4 stq t0,8(t2) fffffc00003f52fc: 00 00 e0 2f unop fffffc00003f5300: 60 a7 5d a4 ldq t1,-22688(gp) fffffc00003f5304: 48 13 3d a4 ldq t0,4936(gp) fffffc00003f5308: 00 00 22 b4 stq t0,0(t1) mtx_init(&w_mtx, "witness lock", MTX_SPIN | MTX_QUIET | MTX_NOWITNESS); fffffc00003f530c: 70 13 1d a6 ldq a0,4976(gp) fffffc00003f5310: 68 15 3d a6 ldq a1,5480(gp) fffffc00003f5314: 0b 00 5f 22 lda a2,11(zero) fffffc00003f5318: 10 97 7d a7 ldq t12,-26864(gp) fffffc00003f531c: 80 60 5b 6b jsr ra,(t12),fffffc00003ed520 fffffc00003f5320: 23 00 ba 27 ldah gp,35(ra) fffffc00003f5324: a8 e5 bd 23 lda gp,-6744(gp) for (i = 0; i < WITNESS_COUNT; i++) fffffc00003f5328: 09 04 ff 47 clr s0 fffffc00003f532c: 68 13 5d a5 ldq s1,4968(gp) witness_free(&w_data[i]); fffffc00003f5330: 30 d7 20 49 sll s0,0x6,a0 fffffc00003f5334: 10 04 0a 42 addq a0,s1,a0 fffffc00003f5338: 9b 0a 40 d3 bsr ra,fffffc00003f7da8 fffffc00003f533c: 09 30 20 41 addl s0,0x1,s0 fffffc00003f5340: a1 fd 38 41 cmple s0,0xc7,t0 fffffc00003f5344: fa ff 3f f4 bne t0,fffffc00003f5330 for (i = 0; i < WITNESS_CHILDCOUNT; i++) fffffc00003f5348: 09 04 ff 47 clr s0 fffffc00003f534c: 60 13 7d a5 ldq s2,4960(gp) fffffc00003f5350: 1f 03 5f 21 lda s1,799(zero) fffffc00003f5354: 00 00 e0 2f unop fffffc00003f5358: 1f 04 ff 47 nop fffffc00003f535c: 00 00 e0 2f unop witness_child_free(&w_childdata[i]); fffffc00003f5360: 30 d7 20 49 sll s0,0x6,a0 fffffc00003f5364: 10 04 0b 42 addq a0,s2,a0 fffffc00003f5368: f7 0a 40 d3 bsr ra,fffffc00003f7f48 fffffc00003f536c: 09 30 20 41 addl s0,0x1,s0 fffffc00003f5370: a1 0d 2a 41 cmple s0,s1,t0 fffffc00003f5374: fa ff 3f f4 bne t0,fffffc00003f5360 for (i = 0; i < LOCK_CHILDCOUNT; i++) fffffc00003f5378: 09 04 ff 47 clr s0 fffffc00003f537c: 58 13 7d a5 ldq s2,4952(gp) fffffc00003f5380: 01 08 5f 21 lda s1,2049(zero) fffffc00003f5384: 00 00 e0 2f unop fffffc00003f5388: 1f 04 ff 47 nop fffffc00003f538c: 00 00 e0 2f unop witness_lock_list_free(&w_locklistdata[i]); fffffc00003f5390: 30 d7 20 49 sll s0,0x6,a0 fffffc00003f5394: 10 04 0b 42 addq a0,s2,a0 fffffc00003f5398: bb 0b 40 d3 bsr ra,fffffc00003f8288 fffffc00003f539c: 09 30 20 41 addl s0,0x1,s0 fffffc00003f53a0: a1 0d 2a 41 cmple s0,s1,t0 fffffc00003f53a4: fa ff 3f f4 bne t0,fffffc00003f5390 /* First add in all the specified order lists. */ for (order = order_lists; order->w_name != NULL; order++) { fffffc00003f53a8: 40 13 5d a5 ldq s1,4928(gp) fffffc00003f53ac: 00 00 2a a4 ldq t0,0(s1) fffffc00003f53b0: 1e 00 20 e4 beq t0,fffffc00003f542c fffffc00003f53b4: 60 15 bd a5 ldq s4,5472(gp) fffffc00003f53b8: 1f 04 ff 47 nop fffffc00003f53bc: 00 00 e0 2f unop w = enroll(order->w_name, order->w_class); fffffc00003f53c0: 00 00 0a a6 ldq a0,0(s1) fffffc00003f53c4: 08 00 2a a6 ldq a1,8(s1) fffffc00003f53c8: df 06 40 d3 bsr ra,fffffc00003f6f48 fffffc00003f53cc: 0b 04 e0 47 mov v0,s2 w->w_file = "order list"; fffffc00003f53d0: 28 00 ab b5 stq s4,40(s2) for (order++; order->w_name != NULL; order++) { fffffc00003f53d4: 0a 14 42 41 addq s1,0x10,s1 fffffc00003f53d8: 00 00 2a a4 ldq t0,0(s1) fffffc00003f53dc: 10 00 20 e4 beq t0,fffffc00003f5420 fffffc00003f53e0: 60 15 9d a5 ldq s3,5472(gp) fffffc00003f53e4: 00 00 e0 2f unop fffffc00003f53e8: 1f 04 ff 47 nop fffffc00003f53ec: 00 00 e0 2f unop -- B.Walter COSMO-Project http://www.cosmo-project.de ticso@cicely.de Usergroup info@cosmo-project.de To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message