It turns out that this is a toolchain bug. Get a newer toolchain -- I'm using the one from H.J., which is on oss.sgi.com in the redhat 7.1 mini-port. Matt -- Matthew D. Dharm Senior Software Designer Momentum Computer Inc. 1815 Aston Ave. Suite 107 (760) 431-8663 X-115 Carlsbad, CA 92008-7310 Momentum Works For You www.momenco.com > -----Original Message----- > From: owner-linux-mips@oss.sgi.com > [mailto:owner-linux-mips@oss.sgi.com]On Behalf Of Kunihiko IMAI > Sent: Wednesday, February 06, 2002 6:07 AM > To: Linux-MIPS > Subject: Re: One bug fixed, another found? > > > Hi, > > I also got the Oops in same place. > > My environment is: > > o board: Pb1000 ( Au1000 eval. board ) > o kernel: SGI version of 2.4.17 > o root fs: nfs root > o userland: RedHat 7.1 got from SGI ftp site. > > When rebuilding rpm package on the MIPS board, I also got error in > same place. > > Today I compiled kernel with __wake_up_common not inline > function, and > got same result. And also made kgdb version. I found that the line > > p = curr->task; > > made the memory violation. When trap occurs, gdb says > > curr = 0xfffffffc > > So here is the place of memory violation. > > At Thu, 31 Jan 2002 18:09:29 -0800, > Matthew Dharm wrote: > > > Unable to handle kernel paging request at virtual address > fffffffc, > > epc == 8010b > > 1ec, ra == 8010b19c > > $0 : 00000000 b0045400 00000000 00000000 00000017 > 802d51cc 92bdc000 > > 93e7d120 > > $8 : 92bdc000 b0045401 00000000 00000000 00000000 > 00000000 00000088 > > 00000000 > > $16: 00000000 b0045400 00000001 b0045401 802de998 > 802dad88 00000001 > > 92ce1160 > > $24: 00000000 2acce4e0 92bdc000 > 92bddd68 92bddd68 > > 8010b19c > > epc : 8010b1ec Not tainted > > Using defaults from ksymoops -t elf32-tradbigmips -a mips:3000 > > Status: b0045402 > > Cause : 80008008 > > Process bladeenc (pid: 660, stackpage=92bdc000) > > Stack: 92bddd68 92bddd68 92bddd68 92bddd68 802df378 > 00000001 00000000 > > 93ff8bf0 > > 802df1fc 802df36c 000001d2 92bc4060 8012c588 > 8012c528 00001000 > > 92bc4060 > > 00000000 92bc4060 81018fc0 92ce1160 00000005 > 92bc4120 00001a55 > > 93ff8bf0 > > 92ce1160 0000001f 00001000 8012c180 81018fc0 > 92bc4120 00001a54 > > 93ff8bec > > 80122aa0 80122af8 93f036c0 00000000 80170988 > 80170980 00000005 > > 00001a50 > > 92ce1160 ... > > Call Trace: [<8012c588>] [<8012c528>] [<8012c180>] [<80122aa0>] > > [<80122af8>] [<8 > > 0170988>] > > [<80170980>] [<801233ec>] [<8012372c>] [<8012377c>] [<80126198>] > > [<80123d80>] > > [<80123c78>] [<801680dc>] [<8010703c>] [<8013290c>] [<80113158>] > > [<80106508>] > > [<80106508>] > > Code: 12400004 00000000 8e100000 <5614ffcc> 8e05fffc 40016000 > > 32730001 3421 > > 0001 38210001 > > > > >>RA; 8010b19c <__wake_up+ec/198> > > >>PC; 8010b1ec <__wake_up+13c/198> <===== > > Trace; 8012c588 <__alloc_pages+d0/21c> > > Trace; 8012c528 <__alloc_pages+70/21c> > > Trace; 8012c180 <_alloc_pages+20/2c> > > Trace; 80122aa0 <page_cache_read+a0/11c> > > Trace; 80122af8 <page_cache_read+f8/11c> > > Trace; 80170988 <nfs_updatepage+218/314> > > Trace; 80170980 <nfs_updatepage+210/314> > > Trace; 801233ec <generic_file_readahead+174/1ec> > > Trace; 8012372c <do_generic_file_read+24c/51c> > > Trace; 8012377c <do_generic_file_read+29c/51c> > > Trace; 80126198 <generic_file_write+558/828> > > Trace; 80123d80 <generic_file_read+94/1a0> > > Trace; 80123c78 <file_read_actor+0/74> > > Trace; 801680dc <nfs_file_read+cc/ec> > > Trace; 8010703c <handle_IRQ_event+80/f4> > > Trace; 8013290c <sys_read+d8/130> > > Trace; 80113158 <sys_time+18/5c> > > Trace; 80106508 <stack_done+1c/38> > > Trace; 80106508 <stack_done+1c/38> > > Code; 8010b1e0 <__wake_up+130/198> > > 00000000 <_PC>: > > Code; 8010b1e0 <__wake_up+130/198> > > 0: 12400004 beqz s2,14 <_PC+0x14> 8010b1f4 > > <__wake_up+144/198> > > Code; 8010b1e4 <__wake_up+134/198> > > 4: 00000000 nop > > Code; 8010b1e8 <__wake_up+138/198> > > 8: 8e100000 lw s0,0(s0) > > Code; 8010b1ec <__wake_up+13c/198> <===== > > c: 5614ffcc 0x5614ffcc <===== > > This is MIPS2 code. If you use objdump to disassemble, add > -m mips:4600 option to get correct mnemonic. > > And the cause register says exception occurred in delay slot, so: > > > Code; 8010b1f0 <__wake_up+140/198> > > 10: 8e05fffc lw a1,-4(s0) > > The memory violation occurs here. > > Registers dump says s0 = 00000000, memory access to > 0xfffffffc occurs > here. > > > Code; 8010b1f4 <__wake_up+144/198> > > 14: 40016000 mfc0 at,$12 > > Code; 8010b1f8 <__wake_up+148/198> > > 18: 32730001 andi s3,s3,0x1 > > Code; 8010b1fc <__wake_up+14c/198> > > 1c: 34210001 ori at,at,0x1 > > Code; 8010b200 <__wake_up+150/198> > > 20: 38210001 xori at,at,0x1 > > Thanks. > _._. __._ _ . ... _ .___ ._. _____ _... ._ _._ _.._. > .____ _ . ... _ > > > Kunihiko IMAI >