|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
|||||||||||||||||||||||||||||||||||||||||||||||
2006年11月11日(土) [n年日記] Last Update: "2006/12/12 23:32:17"#1 [4.99.3] sysinst 中にStatus: Running Command: progress -zf /mnt2//macppc/binary/sets/comp.tgz tar --chroot -xhep - --- 89% |************************* | 95454 KB 1.57 MB/s 00:07 ETA Stopped in pid 75.1 (tar) at 0x38f608: lwz 0,32(31) db> bt at 0x2e35e4 at 0x3a29ec at 0x3932b0 at 0x392b88 at 0x39c91c at 0x3ed9a0 at 0x3f15c4 db> show registers r0 0xd8000000 r1 0xe53cdc70 r2 0 r3 0x3d0cdd8 r4 0xe53cde38 r5 0xe53cde4c r6 0 r7 0x1 r8 0x5ed4f70 r9 0x30 r10 0xe01cb000 r11 0x800000 r12 0x20004084 r13 0 r14 0x200 r15 0 r16 0 r17 0 r18 0 r19 0xe53cdd68 r20 0 r21 0x20 r22 0 r23 0 r24 0x3d0cdd8 r25 0xe53cde4c r26 0xe53cde38 r27 0xe53cde38 r28 0xe53cde4c r29 0x18 r30 0x3d0cdd8 r31 0x38000000 iar 0x38f608 msr 0x9032 lr 0x2e35e8 ctr 0x2e7824 cr 0x20044084 xer 0x1 0x38f608: lwz 0,32(31) db>See man ddb 違う disk を付けたら、無事完了して、pkg_add 中 @ pkg_add 中に同じ問題:trap type 300 at 38f554 Stopped in pid 3873.1 (tar) at netbsd:cache_lookup+0x8c: lwz 0,32(31) db> tlp0: receive ring overrun bt at ufs_lookup+110 at VOP_LOOKUP+34 at lookup+2f4 at namei+10c at rename_files+114 at syscall_plain+14c at setfault+c54 db> show register r0 0xb4d80000 r1 0xe53c7c70 r2 0 r3 0x59832b8 r4 0xe53c7e84 r5 0xe53c7e98 r6 0 r7 0x1 r8 0x5ed3d00 r9 0x30 r10 0xe01d1000 r11 0x600000 fragttl_histo+0xb4 r12 0x20000084 r13 0 r14 0x200 r15 0 r16 0 r17 0 r18 0 r19 0xe53c7d68 r20 0 r21 0 r22 0x8 r23 0 r24 0x59832b8 r25 0xe53c7e98 r26 0xe53c7e84 r27 0xe53c7e84 r28 0xe53c7e98 r29 0x1c r30 0x59832b8 r31 0x21f80000 iar 0x38f554 cache_lookup+0x8c msr 0x9032 lr 0x2e35e8 ufs_lookup+0x114 ctr 0x2e7824 ufs_access cr 0x20040084 xer 0x1 netbsd:cache_lookup+0x8c: lwz 0,32(31) db> 2006年11月12日(日) [n年日記] Last Update: "2006/12/12 23:32:24"#1 [4.99.3] trap type 200 at 38f91c
かなり頻繁に起きる
trap type 200 at 38f91c Stopped in pid 724.1 (cvs) at netbsd:cache_lookup_raw+0x8c: cmpw 7,30,0 db> tlp0: receive ring overrun bt at nfs_lookup+f0 at VOP_LOOKUP+34 at lookup+2f4 at namei+10c at vn_open+174 at sys_open+e0 at syscall_plain+14c at setfault+c54 db> show registers r0 0xffffffff r1 0xe5550ba0 r2 0 r3 0x47cec88 r4 0xe5550e88 r5 0xe5550e9c r6 0 r7 0 r8 0x2f r9 0x30 r10 0xe0185000 r11 0x600000 fragttl_histo+0x8c r12 0x22002024 r13 0 r14 0x18a0000 r15 0x18a0000 r16 0x1880000 r17 0x18aec00 r18 0x18ce080 r19 0xe5550cd8 r20 0 r21 0x20 r22 0 r23 0 r24 0x1 r25 0xe5550e88 r26 0x84044 r27 0xe5550e88 r28 0xe5550e9c r29 0x3 r30 0x47cec88 r31 0x89f00000 iar 0x38f91c cache_lookup_raw+0x8c msr 0x49030 lr 0x28b520 nfs_lookup+0xf4 ctr 0x28b42c nfs_lookup cr 0x22022028 xer 0x6 netbsd:cache_lookup_raw+0x8c: cmpw 7,30,0 db> 2006年11月13日(月) [n年日記] Last Update: "2006/12/12 23:32:31"#1 [4.99.3] trap type 300 at 38f918
10/20 の続き
trap type 300 at 38f918 Stopped in pid 446.1 (cvs) at netbsd:cache_lookup_raw+0x88: lwz 0,32(31) db> bt at nfs_lookup+f0 at VOP_LOOKUP+34 at lookup+2f4 at namei+10c at vn_open+174 at sys_open+e0 at syscall_plain+14c at setfault+c54 db> tlp0: receive ring overrun show registers r0 0x5a10e003 r1 0xe55dfba0 r2 0 r3 0x344ec88 r4 0xe55dfe88 r5 0xe55dfe9c r6 0 r7 0 r8 0x2f r9 0x30 r10 0xe0185000 r11 0x600000 fragttl_histo+0x8c r12 0x22002024 r13 0 r14 0x18a0000 r15 0x18a0000 r16 0x1880000 r17 0x18aec00 r18 0x18a8140 r19 0xe55dfcd8 r20 0 r21 0x20 r22 0 r23 0 r24 0x1 r25 0xe55dfe88 r26 0x84044 r27 0xe55dfe88 r28 0xe55dfe9c r29 0x3 r30 0x344ec88 r31 0x34a80000 iar 0x38f918 cache_lookup_raw+0x88 msr 0x9032 lr 0x28b520 nfs_lookup+0xf4 ctr 0x28b42c nfs_lookup cr 0x22022024 xer 0x6 netbsd:cache_lookup_raw+0x88: lwz 0,32(31) db> lwz 0,32(31) Load Word and Zero rD,d(rA) .... r31 + 32 を r0 に読む r31 0x34a80000となっているので 「0x34a80020 を読む」かな。確かに大きすぎる。880M .. > bc ibase = 16 34A80020 883425312 ↓ 883,425,312 M k @ ...obj/L2-1M-PB2-SHM)> objdump -S netbsd:青: 参照 白: 変更(代入) 赤: 問題 0038f88c <cache_lookup_raw>: 38f88c: 7c 08 02 a6 mflr r0 38f890: 94 21 ff d0 stwu r1,-48(r1) 38f894: 3d 20 00 60 lis r9,96 38f898: 93 61 00 1c stw r27,28(r1) 38f89c: 7c 9b 23 78 mr r27,r4 38f8a0: 93 81 00 20 stw r28,32(r1) 38f8a4: 7c bc 2b 78 mr r28,r5 38f8a8: 93 c1 00 28 stw r30,40(r1) 38f8ac: 7c 7e 1b 78 mr r30,r3 38f8b0: 93 a1 00 24 stw r29,36(r1) 38f8b4: 93 e1 00 2c stw r31,44(r1) 38f8b8: 90 01 00 34 stw r0,52(r1) 38f8bc: 81 29 e0 24 lwz r9,-8156(r9) 38f8c0: 2f 89 00 00 cmpwi cr7,r9,0 38f8c4: 41 9e 01 60 beq- cr7,38fa24 <cache_lookup_raw+0x198> 38f8c8: 83 a5 00 18 lwz r29,24(r5) 38f8cc: 2f 9d 00 1f cmpwi cr7,r29,31 38f8d0: 41 9d 01 30 bgt- cr7,38fa00 <cache_lookup_raw+0x174> ----- 38f8d4: 81 45 00 1c lwz r10,28(r5) 38f8d8: 3d 60 00 60 lis r11,96 38f8dc: 80 0b eb f0 lwz r0,-5136(r11) 38f8e0: 54 69 e8 fe rlwinm r9,r3,29,3,31 38f8e4: 7d 29 52 78 xor r9,r9,r10 38f8e8: 3d 60 00 60 lis r11,96 38f8ec: 7d 29 00 38 and r9,r9,r0 38f8f0: 81 4b eb f4 lwz r10,-5132(r11) 38f8f4: 55 29 10 3a rlwinm r9,r9,2,0,29 38f8f8: 7f e9 50 2e lwzx r31,r9,r10 38f8fc: 2f 9f 00 00 cmpwi cr7,r31,0 38f900: 40 be 00 14 bne+ cr7,38f914 <cache_lookup_raw+0x88> 38f904: 48 00 00 b8 b 38f9bc <cache_lookup_raw+0x130> 38f908: 83 ff 00 00 lwz r31,0(r31) 38f90c: 2f 9f 00 00 cmpwi cr7,r31,0 38f910: 41 9e 00 ac beq- cr7,38f9bc <cache_lookup_raw+0x130> 38f914: 80 1f 00 20 lwz r0,32(r31) ----- 38f918: 7f 9e 00 00 cmpw cr7,r30,r0 38f91c: 40 9e ff ec bne+ cr7,38f908 <cache_lookup_raw+0x7c> 38f920: 88 1f 00 34 lbz r0,52(r31) 38f924: 7f 9d 00 00 cmpw cr7,r29,r0 38f928: 40 9e ff e0 bne+ cr7,38f908 <cache_lookup_raw+0x7c> 38f92c: 80 9c 00 14 lwz r4,20(r28) 38f930: 38 7f 00 35 addi r3,r31,53 38f934: 7f a5 eb 78 mr r5,r29 38f938: 48 15 ac 31 bl 4ea568 <memcmp> 38f93c: 2c 03 00 00 cmpwi r3,0 38f940: 40 82 ff c8 bne+ 38f908 <cache_lookup_raw+0x7c> 38f944: 81 1f 00 08 lwz r8,8(r31) 38f948: 2f 88 00 00 cmpwi cr7,r8,0 38f94c: 41 9e 00 38 beq- cr7,38f984 <cache_lookup_raw+0xf8> 38f950: 80 1f 00 0c lwz r0,12(r31) 38f954: 3d 60 00 60 lis r11,96 38f958: 39 6b ec 04 addi r11,r11,-51160038fc04 <cache_enter>: の中に次の部分がある。これも cache_lookup_entry の inline (らしい) .. 38fc90: 4b ff f7 01 bl 38f390 <cache_remove> ----- 38fc94: 83 7c 00 1c lwz r27,28(r28) 38fc98: 3f 00 00 60 lis r24,96 38fc9c: 57 d9 e8 fe rlwinm r25,r30,29,3,31 38fca0: 80 18 eb f0 lwz r0,-5136(r24) 38fca4: 7f 29 da 78 xor r9,r25,r27 38fca8: 3e e0 00 60 lis r23,96 38fcac: 7d 29 00 38 and r9,r9,r0 38fcb0: 81 77 eb f4 lwz r11,-5132(r23) 38fcb4: 55 29 10 3a rlwinm r9,r9,2,0,29 38fcb8: 7f e9 58 2e lwzx r31,r9,r11 38fcbc: 2f 9f 00 00 cmpwi cr7,r31,0 38fcc0: 40 be 00 14 bne+ cr7,38fcd4 <cache_enter+0xd0> 38fcc4: 48 00 00 54 b 38fd18 <cache_enter+0x114> 38fcc8: 83 ff 00 00 lwz r31,0(r31) 38fccc: 2f 9f 00 00 cmpwi cr7,r31,0 38fcd0: 41 9e 00 48 beq- cr7,38fd18 <cache_enter+0x114> 38fcd4: 80 1f 00 20 lwz r0,32(r31) ----- 38fcd8: 7f 9e 00 00 cmpw cr7,r30,r0 38fcdc: 40 9e ff ec bne+ cr7,38fcc8 <cache_enter+0xc4> 38fce0: 88 bf 00 34 lbz r5,52(r31) 38fce4: 80 1c 00 18 lwz r0,24(r28) 38fce8: 7f 85 00 00 cmpw cr7,r5,r0 38fcec: 40 9e ff dc bne+ cr7,38fcc8 <cache_enter+0xc4> 38fcf0: 80 9c 00 14 lwz r4,20(r28) 38fcf4: 38 7f 00 35 addi r3,r31,53 38fcf8: 48 15 a8 71 bl 4ea568 <memcmp> 38fcfc: 2f 83 00 00 cmpwi cr7,r3,0つまり r31 を変更しているのは static inline struct namecache * cache_lookup_entry(const struct vnode *dvp, const struct componentname *cnp)の中。ここだけ最適化を外して作って見よう。 @ 一部だけ cc -O1:
123 13:32 ./build.sh -T /export/20061008/checkout/src/tooldir.NetBSD-3.99.21-powerpc kernel=L2-1M-PB2-SHM 124 13:53 mv sys/arch/macppc/compile/obj/L2-1M-PB2-SHM/vfs_cache.o sys/arch/macppc/compile/obj/L2-1M-PB2-SHM/vfs_cache.o-keep2 125 13:54 cd sys/arch/macppc/compile/obj/L2-1M-PB2-SHM 126 13:54 vi Makefile 134 13:56 rm vfs_cache.o 135 13:56 env TOOLDIR=/export/20061008/checkout/src/tooldir.NetBSD-3.99.21-powerpc makeこれで見かけ上問題を回避出来たような気がする。 何故そう思うかと言って cvs update をすると必ず落ちていたのが、落ちなくなった。 ちなみに -O2 を単に消してしまうと mfmsr 等のシンボルが未定義となってしまう。 ld -N -Ttext 100000 -e __start -S -o netbsd ${SYSTEM_OBJ} vers.o autoconf.o: In function `cpu_configure': autoconf.c:(.text+0x194): undefined reference to `mfmsr' autoconf.c:(.text+0x1a4): undefined reference to `mtmsr' machdep.o: In function `sysctl_machdep_setup': machdep.c:(.text+0x11f0): undefined reference to `mfpvr' *** Error code 1 @ -O1 の時の objdump -d netbsd (cache_look_raw):0038f8e0 <cache_lookup_raw>: 38f8e0: 94 21 ff d0 stwu r1,-48(r1) 38f8e4: 7c 08 02 a6 mflr r0 38f8e8: 93 41 00 18 stw r26,24(r1) 38f8ec: 93 61 00 1c stw r27,28(r1) 38f8f0: 93 81 00 20 stw r28,32(r1) 38f8f4: 93 a1 00 24 stw r29,36(r1) 38f8f8: 93 c1 00 28 stw r30,40(r1) 38f8fc: 93 e1 00 2c stw r31,44(r1) 38f900: 90 01 00 34 stw r0,52(r1) 38f904: 7c 9a 23 78 mr r26,r4 38f908: 7c bc 2b 78 mr r28,r5 38f90c: 3d 20 00 60 lis r9,96 38f910: 81 29 de 54 lwz r9,-8620(r9) 38f914: 2f 89 00 00 cmpwi cr7,r9,0 38f918: 40 be 00 1c bne+ cr7,38f934 <cache_lookup_raw+0x54> 38f91c: 80 05 00 04 lwz r0,4(r5) 38f920: 54 00 04 a0 rlwinm r0,r0,0,18,16 38f924: 90 05 00 04 stw r0,4(r5) 38f928: 91 24 00 00 stw r9,0(r4) 38f92c: 38 60 ff ff li r3,-1 38f930: 48 00 01 a8 b 38fad8 <cache_lookup_raw+0x1f8> 38f934: 83 a5 00 18 lwz r29,24(r5) 38f938: 2f 9d 00 1f cmpwi cr7,r29,31 38f93c: 40 bd 00 28 ble+ cr7,38f964 <cache_lookup_raw+0x84> ----- 38f940: 3d 20 00 63 lis r9,99 38f944: 39 29 e1 a0 addi r9,r9,-7776 38f948: 81 69 00 14 lwz r11,20(r9) 38f94c: 39 6b 00 01 addi r11,r11,1 38f950: 91 69 00 14 stw r11,20(r9) 38f954: 80 05 00 04 lwz r0,4(r5) 38f958: 54 00 04 a0 rlwinm r0,r0,0,18,16 38f95c: 90 05 00 04 stw r0,4(r5) 38f960: 48 00 01 6c b 38facc <cache_lookup_raw+0x1ec> 38f964: 7c 7e 1b 78 mr r30,r3 38f968: 7c bb 2b 78 mr r27,r5 38f96c: 54 69 e8 fe rlwinm r9,r3,29,3,31 38f970: 80 05 00 1c lwz r0,28(r5) 38f974: 7d 29 02 78 xor r9,r9,r0 38f978: 3d 60 00 60 lis r11,96 38f97c: 80 0b ea 20 lwz r0,-5600(r11) 38f980: 7d 29 00 38 and r9,r9,r0 38f984: 3d 60 00 60 lis r11,96 38f988: 81 6b ea 24 lwz r11,-5596(r11) 38f98c: 55 29 10 3a rlwinm r9,r9,2,0,29 38f990: 7f e9 58 2e lwzx r31,r9,r11 38f994: 2f 9f 00 00 cmpwi cr7,r31,0 38f998: 41 9e 00 40 beq- cr7,38f9d8 <cache_lookup_raw+0xf8> 38f99c: 80 1f 00 20 lwz r0,32(r31) ----- 38f9a0: 7f 9e 00 00 cmpw cr7,r30,r0 38f9a4: 40 be 00 28 bne+ cr7,38f9cc <cache_lookup_raw+0xec> 38f9a8: 88 1f 00 34 lbz r0,52(r31) 38f9ac: 7f 9d 00 00 cmpw cr7,r29,r0 38f9b0: 40 be 00 1c bne+ cr7,38f9cc <cache_lookup_raw+0xec> 38f9b4: 38 7f 00 35 addi r3,r31,53 38f9b8: 80 9b 00 14 lwz r4,20(r27) 38f9bc: 7f a5 eb 78 mr r5,r29 38f9c0: 48 15 a9 e1 bl 4ea3a0 <memcmp> @ -O1 の時の objdump -d netbsd (cache_lookup):0038f4d8 <cache_lookup>: 38f4d8: 94 21 ff d0 stwu r1,-48(r1) 38f4dc: 7c 08 02 a6 mflr r0 38f4e0: 93 21 00 14 stw r25,20(r1) 38f4e4: 93 41 00 18 stw r26,24(r1) 38f4e8: 93 61 00 1c stw r27,28(r1) 38f4ec: 93 81 00 20 stw r28,32(r1) 38f4f0: 93 a1 00 24 stw r29,36(r1) 38f4f4: 93 c1 00 28 stw r30,40(r1) 38f4f8: 93 e1 00 2c stw r31,44(r1) 38f4fc: 90 01 00 34 stw r0,52(r1) 38f500: 7c 7b 1b 78 mr r27,r3 38f504: 7c 99 23 78 mr r25,r4 38f508: 7c bc 2b 78 mr r28,r5 38f50c: 3d 20 00 60 lis r9,96 38f510: 81 29 de c4 lwz r9,-8508(r9) 38f514: 2f 89 00 00 cmpwi cr7,r9,0 38f518: 40 be 00 1c bne+ cr7,38f534 <cache_lookup+0x5c> 38f51c: 80 05 00 04 lwz r0,4(r5) 38f520: 54 00 04 a0 rlwinm r0,r0,0,18,16 38f524: 90 05 00 04 stw r0,4(r5) 38f528: 91 24 00 00 stw r9,0(r4) 38f52c: 3b c0 ff ff li r30,-1 38f530: 48 00 03 80 b 38f8b0 <cache_lookup+0x3d8> 38f534: 83 a5 00 18 lwz r29,24(r5) 38f538: 2f 9d 00 1f cmpwi cr7,r29,31 38f53c: 40 bd 00 28 ble+ cr7,38f564 <cache_lookup+0x8c> ----- 38f540: 3d 20 00 63 lis r9,99 38f544: 39 29 e2 10 addi r9,r9,-7664 38f548: 81 69 00 14 lwz r11,20(r9) 38f54c: 39 6b 00 01 addi r11,r11,1 38f550: 91 69 00 14 stw r11,20(r9) 38f554: 80 05 00 04 lwz r0,4(r5) 38f558: 54 00 04 a0 rlwinm r0,r0,0,18,16 38f55c: 90 05 00 04 stw r0,4(r5) 38f560: 48 00 03 24 b 38f884 <cache_lookup+0x3ac> 38f564: 7c 7e 1b 78 mr r30,r3 38f568: 7c ba 2b 78 mr r26,r5 38f56c: 54 69 e8 fe rlwinm r9,r3,29,3,31 38f570: 80 05 00 1c lwz r0,28(r5) 38f574: 7d 29 02 78 xor r9,r9,r0 38f578: 3d 60 00 60 lis r11,96 38f57c: 80 0b ea 90 lwz r0,-5488(r11) 38f580: 7d 29 00 38 and r9,r9,r0 38f584: 3d 60 00 60 lis r11,96 38f588: 81 6b ea 94 lwz r11,-5484(r11) 38f58c: 55 29 10 3a rlwinm r9,r9,2,0,29 38f590: 7f e9 58 2e lwzx r31,r9,r11 38f594: 2f 9f 00 00 cmpwi cr7,r31,0 38f598: 41 9e 00 40 beq- cr7,38f5d8 <cache_lookup+0x100> 38f59c: 80 1f 00 20 lwz r0,32(r31) ---- 38f5a0: 7f 9e 00 00 cmpw cr7,r30,r0 38f5a4: 40 be 00 28 bne+ cr7,38f5cc <cache_lookup+0xf4> 38f5a8: 88 1f 00 34 lbz r0,52(r31) 38f5ac: 7f 9d 00 00 cmpw cr7,r29,r0 38f5b0: 40 be 00 1c bne+ cr7,38f5cc <cache_lookup+0xf4> 38f5b4: 38 7f 00 35 addi r3,r31,53 38f5b8: 80 9a 00 14 lwz r4,20(r26) 38f5bc: 7f a5 eb 78 mr r5,r29 38f5c0: 48 15 ae 49 bl 4ea408 <memcmp> 38f5c4: 2f 83 00 00 cmpwi cr7,r3,0 38f5c8: 41 9e 00 28 beq- cr7,38f5f0 <cache_lookup+0x118> 38f5cc: 83 ff 00 00 lwz r31,0(r31) 38f5d0: 2f 9f 00 00 cmpwi cr7,r31,0 38f5d4: 40 9e ff c8 bne+ cr7,38f59c <cache_lookup+0xc4> 38f5d8: 3d 60 00 63 lis r11,99 38f5dc: 39 6b e2 10 addi r11,r11,-7664(cache_lookup_raw と cache_lookup を比べていた) .. #2 [4.99.3] 別のところで落ちましたtlp0: transmit underrun; new threshold: 160/1024 bytes panic: kernel diagnostic assertion "(startoff & PAGE_MASK) == 0 && (endoff & PAGE_MASK) == 0" failed: file "/export/20061008/checkout/src/sys/miscfs/genfs/genfs_vnops.c", line 1081 Stopped in pid 6.1 (pagedaemon) at netbsd:cpu_Debugger+0x14: addi 1 ,1,16 db> bt at panic+1cc at __assert+2c at genfs_putpages+1e8 at VOP_PUTPAGES+40 at uvn_put+c at uvmpd_scan_queue+158 at uvmpd_scan+4c at uvm_pageout+168 at cpu_switchto+60 db>ここも -O1 ですかね .. で作り直したら、元の問題 trap type 300 at 38f99c Stopped in pid 663.1 (cvs) at netbsd:cache_lookup_raw+0xbc: lwz 0,32(31) db> tlp0: receive ring overrun bt at nfs_lookup+f0 at VOP_LOOKUP+34 at lookup+2f4 at namei+10c at vn_open+174 at sys_open+e0 at syscall_plain+14c at setfault+c54 db>作った方法は合っていると思う ttyr4:root@mini 14:42:14/061113(...obj/L2-1M-PB2-SHM)# ls -l netbsd genfs_vnops.o vfs_cache.o -rw-r--r-- 1 root wheel 23536 Nov 13 14:42 genfs_vnops.o -rwxr-xr-x 1 root wheel 5839756 Nov 13 14:42 netbsd* -rw-r--r-- 1 root wheel 9640 Nov 13 13:56 vfs_cache.o ttyr4:root@mini DING!/061113(...obj/L2-1M-PB2-SHM)#どうも、いつもここで落ちる ? cvs update: Updating databases/zope-mysql/pkg cvs update: Updating devel @ show register:db> show register r0 0xf8e0099a r1 0xe548fba0 r2 0 r3 0x169c888 r4 0xe548fe88 r5 0xe548fe9c r6 0 r7 0 r8 0 r9 0x30 r10 0xc044 r11 0xe0185000 r12 0x22002084 r13 0 r14 0x18a0000 r15 0x18a0000 r16 0x1880000 r17 0x18b7000 r18 0x18b11e0 r19 0xe548fcd8 r20 0 r21 0x20 r22 0 r23 0 r24 0 r25 0xe548fe88 r26 0xe548fe88 r27 0xe548fe9c r28 0xe548fe9c r29 0xf r30 0x169c888 r31 0xd8000000 iar 0x38f99c cache_lookup_raw+0xbc msr 0x9032 lr 0x28b520 nfs_lookup+0xf4 ctr 0x28b42c nfs_lookup cr 0x22042088 xer 0x9 netbsd:cache_lookup_raw+0xbc: lwz 0,32(31) db> #3 [4.99.3] patch for sys/sys/queue.h
as a result, followin patch fix the problem I've been tracing for these month.
Index: sys/sys/queue.h =================================================================== RCS file: /export/20061008/Repository/src/sys/sys/queue.h,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 queue.h --- sys/sys/queue.h 8 Oct 2006 17:09:38 -0000 1.1.1.1 +++ sys/sys/queue.h 13 Nov 2006 08:11:39 -0000 @@ -161,7 +161,7 @@ #define LIST_FOREACH(var, head, field) \ for ((var) = ((head)->lh_first); \ - (var); \ + (var != NULL); \ (var) = ((var)->field.le_next)) /*... no ... still .. there .. cvs update: Updating graphics/gphoto/files cvs update: Updating graphics/gphoto/patches login: Nov 13 17:01:54 livorno getty[559]: /dev/ttyE0: Device not configured tlp0: transmit underrun; new threshold: 96/256 bytes trap type 300 at 38dcbc Stopped in pid 73.1 (cvs) at netbsd:cache_lookup+0x8c: lwz 0,32(31) db> @ Now queue.h patch + -O1 for vfs_cache.c:U print/libgnomecups/src/dist/smbfs/lib/smb/rq.c U print/libgnomecups/src/dist/smbfs/lib/smb/subr.c cvs update: Updating print/libgnomecups/src/dist/smbfs/mount_smbfs trap type 300 at 3a6170 Stopped in pid 562.1 (cvs) at netbsd:cache_lookup_entry+0x68: lwz 9,32(9) db> tlp0: receive ring overrun bt at cache_lookup+a8 at ufs_lookup+110 at VOP_LOOKUP+34 at lookup+2f4 at namei+10c at sys___stat30+50 at syscall_plain+14c at setfault+c54 db> @ cache_lookup_entry:003a6108 <cache_lookup_entry>: 3a6108: 94 21 ff d0 stwu r1,-48(r1) 3a610c: 7c 08 02 a6 mflr r0 3a6110: 93 e1 00 2c stw r31,44(r1) 3a6114: 90 01 00 34 stw r0,52(r1) 3a6118: 7c 3f 0b 78 mr r31,r1 3a611c: 90 7f 00 18 stw r3,24(r31) 3a6120: 90 9f 00 1c stw r4,28(r31) 3a6124: 81 3f 00 1c lwz r9,28(r31) 3a6128: 81 29 00 1c lwz r9,28(r9) 3a612c: 80 1f 00 18 lwz r0,24(r31) 3a6130: 54 00 e8 fe rlwinm r0,r0,29,3,31 3a6134: 7d 2b 02 78 xor r11,r9,r0 3a6138: 3d 20 00 61 lis r9,97 3a613c: 80 09 61 e0 lwz r0,25056(r9) 3a6140: 7d 60 00 38 and r0,r11,r0 3a6144: 54 00 10 3a rlwinm r0,r0,2,0,29 3a6148: 7c 0b 03 78 mr r11,r0 3a614c: 3d 20 00 61 lis r9,97 3a6150: 80 09 61 e4 lwz r0,25060(r9) 3a6154: 7c 0b 02 14 add r0,r11,r0 3a6158: 90 1f 00 0c stw r0,12(r31) 3a615c: 81 3f 00 0c lwz r9,12(r31) 3a6160: 80 09 00 00 lwz r0,0(r9) // ncp = ncpp 3a6164: 90 1f 00 08 stw r0,8(r31) 3a6168: 48 00 00 7c b 3a61e4 <cache_lookup_entry+0xdc> (loop) // LIST_FOREACH 3a616c: 81 3f 00 08 lwz r9,8(r31) // 3a6170: 81 29 00 20 lwz r9,32(r9) // traps here ここで落ちる 3a6174: 80 1f 00 18 lwz r0,24(r31) // 3a6178: 7f 89 00 00 cmpw cr7,r9,r0 // 3a617c: 40 9e 00 5c bne- cr7,3a61d8 <cache_lookup_entry+0xd0> 3a6180: 81 3f 00 08 lwz r9,8(r31) // if (ncp-> .. 3a6184: 88 09 00 34 lbz r0,52(r9) 3a6188: 54 00 06 3e clrlwi r0,r0,24 3a618c: 7c 0b 03 78 mr r11,r0 3a6190: 81 3f 00 1c lwz r9,28(r31) 3a6194: 80 09 00 18 lwz r0,24(r9) 3a6198: 7f 8b 00 00 cmpw cr7,r11,r0 3a619c: 40 9e 00 3c bne- cr7,3a61d8 <cache_lookup_entry+0xd0> 3a61a0: 81 3f 00 08 lwz r9,8(r31) // ncp->nc_name 3a61a4: 39 69 00 35 addi r11,r9,53 3a61a8: 81 3f 00 1c lwz r9,28(r31) // cnp->cn_nameptr 3a61ac: 81 49 00 14 lwz r10,20(r9) 3a61b0: 81 3f 00 08 lwz r9,8(r31) //(uint)ncp->nc_nlen 3a61b4: 88 09 00 34 lbz r0,52(r9) 3a61b8: 54 00 06 3e clrlwi r0,r0,24 3a61bc: 7d 63 5b 78 mr r3,r11 // ncp->nc_name 3a61c0: 7d 44 53 78 mr r4,r10 // cnp->cn_nameptr 3a61c4: 7c 05 03 78 mr r5,r0 // ncp->nc_nlen 3a61c8: 48 15 af 05 bl 5010cc <memcmp> 3a61cc: 7c 60 1b 78 mr r0,r3 3a61d0: 2f 80 00 00 cmpwi cr7,r0,0 3a61d4: 41 9e 00 1c beq- cr7,3a61f0 <cache_lookup_entry+0xe8> // break 3a61d8: 81 3f 00 08 lwz r9,8(r31) 3a61dc: 80 09 00 00 lwz r0,0(r9) 3a61e0: 90 1f 00 08 stw r0,8(r31) 3a61e4: 80 1f 00 08 lwz r0,8(r31) 3a61e8: 2f 80 00 00 cmpwi cr7,r0,0 // (var) ncp == 0 ? 3a61ec: 40 9e ff 80 bne+ cr7,3a616c <cache_lookup_entry+0x64> // end of LIST_FOREACH 3a61f0: 80 1f 00 08 lwz r0,8(r31) 3a61f4: 7c 03 03 78 mr r3,r0 3a61f8: 81 61 00 00 lwz r11,0(r1) 3a61fc: 80 0b 00 04 lwz r0,4(r11) 3a6200: 7c 08 03 a6 mtlr r0 3a6204: 83 eb ff fc lwz r31,-4(r11) 3a6208: 7d 61 5b 78 mr r1,r11 3a620c: 4e 80 00 20 blrWas inline ignored at this compile ? (Probably with -O0) 2006年11月15日(水) [n年日記] Last Update: "2006/12/12 23:32:41"#1 [4.99.3] gcc-3.4.6login: Nov 15 06:50:14 livorno getty[588]: /dev/ttyE0: Device not configured tlp0: transmit underrun; new threshold: 96/256 bytes trap type 200 at 3a5b38 Stopped in pid 627.1 (cvs) at netbsd:cache_lookup+0xc4: cmpw 7,0,30 db> tlp0: receive ring overrun reboot syncing disks... 21 14 9 done unmounting file systems...panic: lockmgr: draining against myselfsingle user で network が動いていない時でも gcc-3.4.4/gcc/config/alpha/alpha.h gcc-3.4.4/gcc/config/alpha/alpha.md gcc-3.4.4/gcc/configtrap type 300 at 3a5b34 Stopped in pid 22.1 (tar) at/alpha/crtfa netbsd:cache_lookup+0xc0: lwz 0,32(31) db> stbmatth .c gcat ufs_lookup+110 c-3.4.4/at VOP_LOOKUP+34 gcc/coat lookup+2f4 nfig/aat namei+10c lpha/eat vn_open+90 lf.h at sys_open+e0 at syscall_plain+14c at setfault+c54 db>(上の表示を整理すると) gcc-3.4.4/gcc/config/alpha/alpha.h gcc-3.4.4/gcc/config/alpha/alpha.md gcc-3.4.4/gcc/config/alpha/crtfastmath.c gcc-3.4.4/gcc/config/alpha/elf.h trap type 300 at 3a5b34 Stopped in pid 22.1 (tar) at netbsd:cache_lookup+0xc0: lwz 0,32(31) db>また back trace は db> bt at ufs_lookup+110 at VOP_LOOKUP+34 at lookup+2f4 at namei+10c at vn_open+90 at sys_open+e0 at syscall_plain+14c at setfault+c54register: db> show registers r0 0x59d80000 r1 0xe537abf0 r2 0 r3 0x39aae70 r4 0xe537ae88 r5 0xe537ae9c r6 0 r7 0x1 r8 0x4ee8f70 r9 0x30 r10 0xc00c r11 0xe0184000 r12 0x20004084 r13 0 r14 0x200 r15 0 r16 0 r17 0 r18 0 r19 0xe537acd8 r20 0 r21 0x20 r22 0x8 r23 0x200 r24 0x39aae70 r25 0xe537ae9c r26 0xe537ae88 r27 0x39aae70 r28 0xe537ae9c r29 0xe537ae9c r30 0x39aae70 r31 0x6a980000 iar 0x3a5b34 cache_lookup+0xc0 msr 0x9032 lr 0x2f9b8c ufs_lookup+0x114 ctr 0x2fddc8 ufs_access cr 0x20044084 xer 0x1 netbsd:cache_lookup+0xc0: lwz 0,32(31) db> #2 [4.99.3] 整理してみる
@ 3.99.15 (20060101) では問題なし:
何と kernel だけ新しくしても問題ない .... (場合もある) ...
(いま手元で使っている機械も、3.99.21 だけれど、問題ない ..)
2006年11月16日(木) [n年日記] Last Update: "2006/12/12 23:32:58"#1 [4.99.3] gcc-3.4.6 の方の objdump -d00379394 <cache_lookup>: 379394: 7c 08 02 a6 mflr r0 379398: 7d 80 00 26 mfcr r12 37939c: 94 21 ff e0 stwu r1,-32(r1) 3793a0: 3d 20 00 5e lis r9,94 3793a4: 93 61 00 0c stw r27,12(r1) 3793a8: 7c 9b 23 78 mr r27,r4 3793ac: 93 81 00 10 stw r28,16(r1) 3793b0: 7c bc 2b 78 mr r28,r5 3793b4: 93 c1 00 18 stw r30,24(r1) 3793b8: 7c 7e 1b 78 mr r30,r3 3793bc: 93 a1 00 14 stw r29,20(r1) 3793c0: 93 e1 00 1c stw r31,28(r1) 3793c4: 90 01 00 24 stw r0,36(r1) 3793c8: 91 81 00 08 stw r12,8(r1) 3793cc: 81 29 da 74 lwz r9,-9612(r9) 3793d0: 2f 89 00 00 cmpwi cr7,r9,0 3793d4: 41 9e 01 60 beq- cr7,379534 <cache_lookup+0x1a0> 3793d8: 83 a5 00 18 lwz r29,24(r5) 3793dc: 2f 9d 00 1f cmpwi cr7,r29,31 3793e0: 41 9d 01 6c bgt- cr7,37954c <cache_lookup+0x1b8> ----- 3793e4: 3d 60 00 5e lis r11,94 3793e8: 81 25 00 1c lwz r9,28(r5) 3793ec: 81 4b e6 40 lwz r10,-6592(r11) 3793f0: 54 60 e8 fe rlwinm r0,r3,29,3,31 3793f4: 7d 29 02 78 xor r9,r9,r0 3793f8: 3d 60 00 5e lis r11,94 3793fc: 7d 29 50 38 and r9,r9,r10 379400: 81 4b e6 44 lwz r10,-6588(r11) 379404: 55 29 10 3a rlwinm r9,r9,2,0,29 379408: 7f e9 50 2e lwzx r31,r9,r10 37940c: 2e 1f 00 00 cmpwi cr4,r31,0 379410: 41 92 00 1c beq- cr4,37942c <cache_lookup+0x98> 379414: 80 1f 00 20 lwz r0,32(r31) 379418: 7f 80 f0 00 cmpw cr7,r0,r30 37941c: 41 9e 00 5c beq- cr7,379478 <cache_lookup+0xe4> // 379420: 83 ff 00 00 lwz r31,0(r31) 379424: 2e 1f 00 00 cmpwi cr4,r31,0 379428: 40 92 ff ec bne+ cr4,379414 <cache_lookup+0x80> 37942c: 3d 60 00 61 lis r11,97 379430: 39 6b dd c0 addi r11,r11,-8768 379434: 81 2b 00 10 lwz r9,16(r11) 379438: 39 29 00 01 addi r9,r9,1 37943c: 91 2b 00 10 stw r9,16(r11) 379440: 38 00 00 00 li r0,0 379444: 38 60 ff ff li r3,-1 379448: 90 1b 00 00 stw r0,0(r27) 37944c: 80 01 00 24 lwz r0,36(r1) 379450: 81 81 00 08 lwz r12,8(r1) 379454: 83 61 00 0c lwz r27,12(r1) 379458: 7c 08 03 a6 mtlr r0 37945c: 83 81 00 10 lwz r28,16(r1) 379460: 7d 80 81 20 mtcrf 8,r12 379464: 83 a1 00 14 lwz r29,20(r1) 379468: 83 c1 00 18 lwz r30,24(r1) 37946c: 83 e1 00 1c lwz r31,28(r1) 379470: 38 21 00 20 addi r1,r1,32 379474: 4e 80 00 20 blr 379478: 88 1f 00 34 lbz r0,52(r31) 37947c: 38 7f 00 35 addi r3,r31,53 379480: 7f 80 e8 00 cmpw cr7,r0,r29 379484: 7c 05 03 78 mr r5,r0 379488: 40 9e ff 98 bne+ cr7,379420 <cache_lookup+0x8c> 37948c: 80 9c 00 14 lwz r4,20(r28) 379490: 48 15 1b d1 bl 4cb060 <memcmp> 379494: 2f 83 00 00 cmpwi cr7,r3,0 379498: 40 9e ff 88 bne+ cr7,379420 <cache_lookup+0x8c> 37949c: 41 b2 ff 90 beq- cr4,37942c <cache_lookup+0x98> // 3794a0: 81 7c 00 04 lwz r11,4(r28) 3794a4: 71 60 40 00 andi. r0,r11,16384 3794a8: 41 82 00 c8 beq- 379570 <cache_lookup+0x1dc> 3794ac: 83 bf 00 2c lwz r29,44(r31) 3794b0: 2f 9d 00 00 cmpwi cr7,r29,0 3794b4: 40 9e 00 e4 bne- cr7,379598 <cache_lookup+0x204> 3794b8: 80 1c 00 00 lwz r0,0(r28) |
最近の日記 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||