|
ghc IA64 Linux unaligned accesses: msg#00032lang.haskell.glasgow.bugs
Hi guys, I thought the unaligned accesses I had with GHC on IA64 had magically gone away when I compiled with a more recent GHC and gcc, but it turns out they were still happening on another machine. When I tried to compile a debugging RTS on the first machine to debug on the second with, I found the newly compiled GHC was again giving unaligned accesses on the first machine. This is GHC 6.2.1, gcc version 3.3.4 (Debian). I've stuck a load of debugging info below; if there's anything else you need please ask. Thanks Ian $ ../ghc6-6.2.1/ghc/compiler/stage2/ghc-inplace -O Foo.hs -o foo +RTS -D{s,i,c,w,G,g,b,S,t,p,r,P,l} 2> out ghc-6.2.1(28878): unaligned access to 0x400000000201c80f, ip=0x40000000009dafd1 $ out is at http://merulo.debian.org/~igloo/out or http://merulo.debian.org/~igloo/out.gz ----------8<--------------------8<---------- $ prctl --unaligned=signal gdb /home/igloo/debug_rts/ghc6-6.2.1/ghc/compiler/stage2/ghc-6.2.1 [...] (gdb) run -B/home/igloo/debug_rts/ghc6-6.2.1 -O Foo.hs -o foo Starting program: /home/igloo/debug_rts/ghc6-6.2.1/ghc/compiler/stage2/ghc-6.2.1 -B/home/igloo/debug_rts/ghc6-6.2.1 -O Foo.hs -o foo stg_fun_gc_gen(ARG_GEN)stg_gc_fun_ret(ARG_GEN) [previous line repeated lots] Program received signal SIGBUS, Bus error. 0x40000000009dafd1 in s3RF_1_alt () (gdb) bt #0 0x40000000009dafd1 in s3RF_1_alt () #1 0x40000000009dab10 in s2ON_entry () #2 0x0000000000000000 in ?? () Previous frame identical to this frame (corrupt stack?) (gdb) disassemble Dump of assembler code for function s3RF_1_alt: 0x40000000009daf30 <s3RF_1_alt+0>: [MMI] mov r63=r1;; 0x40000000009daf31 <s3RF_1_alt+1>: adds r59=16,r59 0x40000000009daf32 <s3RF_1_alt+2>: nop.i 0x0;; 0x40000000009daf40 <s3RF_1_alt+16>: [MFB] cmp.ltu p7,p6=r60,r59 0x40000000009daf41 <s3RF_1_alt+17>: nop.f 0x0 0x40000000009daf42 <s3RF_1_alt+18>: (p06) br.cond.dptk.few 0x40000000009dafb0 <s3RF_1_alt+128> 0x40000000009daf50 <s3RF_1_alt+32>: [MMI] addl r15=7704,r1;; 0x40000000009daf51 <s3RF_1_alt+33>: ld8 r14=[r15] 0x40000000009daf52 <s3RF_1_alt+34>: nop.i 0x0;; 0x40000000009daf60 <s3RF_1_alt+48>: [MMI] adds r14=16,r14;; 0x40000000009daf61 <s3RF_1_alt+49>: adds r14=176,r14 0x40000000009daf62 <s3RF_1_alt+50>: mov r15=2;; 0x40000000009daf70 <s3RF_1_alt+64>: [MFI] st8 [r14]=r15 0x40000000009daf71 <s3RF_1_alt+65>: nop.f 0x0 0x40000000009daf72 <s3RF_1_alt+66>: addl r16=7704,r1;; 0x40000000009daf80 <s3RF_1_alt+80>: [MMI] ld8 r14=[r16];; 0x40000000009daf81 <s3RF_1_alt+81>: ld8 r14=[r14] 0x40000000009daf82 <s3RF_1_alt+82>: nop.i 0x0;; 0x40000000009daf90 <s3RF_1_alt+96>: [MMI] ld8 r15=[r14],8;; 0x40000000009daf91 <s3RF_1_alt+97>: nop.m 0x0 0x40000000009daf92 <s3RF_1_alt+98>: mov b6=r15 0x40000000009dafa0 <s3RF_1_alt+112>: [MFB] ld8 r1=[r14] 0x40000000009dafa1 <s3RF_1_alt+113>: nop.f 0x0 0x40000000009dafa2 <s3RF_1_alt+114>: br.few b6;; 0x40000000009dafb0 <s3RF_1_alt+128>: [MFI] adds r15=-8,r59 0x40000000009dafb1 <s3RF_1_alt+129>: nop.f 0x0 0x40000000009dafb2 <s3RF_1_alt+130>: addl r16=10992,r1;; 0x40000000009dafc0 <s3RF_1_alt+144>: [MMI] ld8 r14=[r16];; 0x40000000009dafc1 <s3RF_1_alt+145>: st8 [r15]=r14 0x40000000009dafc2 <s3RF_1_alt+146>: addl r14=283768,r1;; 0x40000000009dafd0 <s3RF_1_alt+160>: [MMI] ld8 r14=[r14];; 0x40000000009dafd1 <s3RF_1_alt+161>: ldfs f6=[r14] 0x40000000009dafd2 <s3RF_1_alt+162>: adds r14=16,r12;; 0x40000000009dafe0 <s3RF_1_alt+176>: [MMB] stfs [r14]=f6 0x40000000009dafe1 <s3RF_1_alt+177>: ldfs f6=[r14] 0x40000000009dafe2 <s3RF_1_alt+178>: nop.b 0x0;; 0x40000000009daff0 <s3RF_1_alt+192>: [MII] stfs [r59]=f6 0x40000000009daff1 <s3RF_1_alt+193>: adds r48=-8,r59 0x40000000009daff2 <s3RF_1_alt+194>: adds r56=8,r56 0x40000000009db000 <s3RF_1_alt+208>: [MMI] addl r16=4976,r1;; 0x40000000009db001 <s3RF_1_alt+209>: ld8 r14=[r16] 0x40000000009db002 <s3RF_1_alt+210>: nop.i 0x0;; 0x40000000009db010 <s3RF_1_alt+224>: [MMI] ld8 r14=[r14];; 0x40000000009db011 <s3RF_1_alt+225>: ld8 r15=[r14],8 0x40000000009db012 <s3RF_1_alt+226>: nop.i 0x0;; 0x40000000009db020 <s3RF_1_alt+240>: [MFI] nop.m 0x0 0x40000000009db021 <s3RF_1_alt+241>: nop.f 0x0 0x40000000009db022 <s3RF_1_alt+242>: mov b6=r15 0x40000000009db030 <s3RF_1_alt+256>: [MFB] ld8 r1=[r14] 0x40000000009db031 <s3RF_1_alt+257>: nop.f 0x0 0x40000000009db032 <s3RF_1_alt+258>: br.few b6;; End of assembler dump. (gdb) info registers r0 0x0 0 r1 0x60000000000a8c60 6917529027641773152 r2 0x0 0 r3 0x0 0 r4 0x0 0 r5 0x0 0 r6 0x0 0 r7 0x0 0 r8 0x18 24 r9 0x20000000005c4498 2305843009219740824 r10 0x0 0 r11 0x60000000000abc58 6917529027641785432 r12 0x60000fffffffb180 6917546619827106176 r13 0x200000000002f500 2305843009213887744 r14 0x400000000201c80f 4611686018461059087 r15 0x20000000006d41e0 2305843009220854240 r16 0x60000000000ab750 6917529027641784144 r17 0x60000000000a87d8 6917529027641771992 r18 0x20000000006d40f0 2305843009220854000 r19 0x2000000000a2e178 2305843009224368504 r20 0x20000000005c61d0 2305843009219748304 r21 0x2000000000458480 2305843009218249856 r22 0x0 0 r23 0x60000fff7fffc110 6917546617679626512 r24 0x0 0 r25 0x0 0 r26 0xc000000000000512 -4611686018427386606 r27 0xf 15 r28 0x2000000000500e00 2305843009218940416 r29 0x1213084a6010 19872952770576 r30 0x0 0 r31 0x150281 1376897 b0 0x40000000009dab10 4611686018437720848 b1 0x0 0 b2 0x0 0 b3 0x0 0 b4 0x0 0 b5 0x0 0 b6 0x40000000009daf30 4611686018437721904 b7 0x0 0 vfp 0x0 0 vrap 0x0 0 pr 0x160241 1442369 ip 0x40000000009dafd0 4611686018437722064 psr 0x20000000010 2199023255568 cfm 0x1028 4136 kr0 0x0 0 kr1 0x0 0 kr2 0x0 0 kr3 0x0 0 kr4 0x0 0 kr5 0x0 0 kr6 0x0 0 kr7 0x0 0 rsc 0xf 15 bsp 0x60000fff7fffc2a0 6917546617679626912 bspstore 0x60000fff7fffc110 6917546617679626512 rnat 0x0 0 fcr 0x0 0 eflag 0x0 0 csd 0x0 0 ssd 0x0 0 cflg 0x0 0 fsr 0x0 0 fir 0x0 0 fdr 0x0 0 ccv 0x0 0 unat 0x0 0 fpsr 0x9804c8a70433f 2674341018878783 itc 0x0 0 pfs 0xc000000000001028 -4611686018427383768 [lots of registers holding 0] bof 0x60000fff7fffc158 6917546617679626584 r32 0x20000000006d40a0 2305843009220853920 r33 0x2 2 r34 0x600000000036f500 6917529027644683520 r35 0x806 2054 r36 0x2 2 r37 0x1 1 r38 0x600000000016dfa8 6917529027642580904 r39 0x60000000000a7570 6917529027641767280 r40 0x5c6 1478 r41 0x142ae4 1321700 r42 0x600000000036f528 6917529027644683560 r43 0x600000000016dfa8 6917529027642580904 r44 0x60000000000a7570 6917529027641767280 r45 0x600000000036f56c 6917529027644683628 r46 0x6000000000157468 6917529027642487912 r47 0x8009 32777 r48 0x600000000007c8a8 6917529027641591976 r49 0x6000000000085728 6917529027641628456 r50 0x6000000000085728 6917529027641628456 r51 0x6000000000085728 6917529027641628456 r52 0x20000000006d39c0 2305843009220852160 r53 0x20000000006cf258 2305843009220833880 r54 0x20000000006d2b98 2305843009220848536 r55 0x20000000006d2bb0 2305843009220848560 r56 0x2000000000b43c60 2305843009225505888 r57 0x2 2 r58 0x2000000000b04108 2305843009225244936 r59 0x20000000006d41e8 2305843009220854248 r60 0x20000000006d4ff8 2305843009220857848 r61 0xc00000000000048d -4611686018427386739 r62 0x4000000001fd6100 4611686018460770560 r63 0x60000000000a8c60 6917529027641773152 r64 0x6000000000022d00 6917529027641224448 r65 0x1 1 r66 0x18 24 r67 0x20000000005c61a0 2305843009219748256 r68 0x18 24 r69 0x8000 32768 r70 0x18 24 r71 0x4000000001ff5ea0 4611686018460901024 [a bundle more registers holding 0 except p{0,6,9,17,18,20} holding 1] (gdb) x/x 0x60000000000ee0d8 0x60000000000ee0d8 <__JCR_LIST__+283776>: 0x0201c80f (gdb) x/x 0x400000000201c80f 0x400000000201c80f <_fini+59375>: 0xc0000000 (gdb) ----------8<--------------------8<----------
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | RE: "charToUtf8 1883885648" panic on sparc, Simon Marlow |
|---|---|
| Next by Date: | 6.2.1 vs 6.0.1, Arjan van IJzendoorn |
| Previous by Thread: | RE: "charToUtf8 1883885648" panic on sparc, Simon Marlow |
| Next by Thread: | RE: ghc IA64 Linux unaligned accesses, Simon Marlow |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |