kswapd oops

Bradley Baetz (bbaetz@uuscss.cs.usyd.edu.au)
Wed, 27 May 1998 16:02:03 +1000


I recently noticed an option for speed enhancements for my ide chipset,
and was looking at the different timings in transferring 10000k to
/dev/null. I did this once, but then did a killall anacron to stop the
updatedb cron job for affecting the results:

May 26 18:09:34 onion kernel: free_one_pmd: bad directory entry 00000200

ps showed that the anacron process was killed. While another dd was
happening, I changed vcs to log in, but the login prompt appeared to
freeze after I'd entered my name but before the password prompt
returned. Changing back to VC1, I saw:

Unable to handle kernel paging request at virtual address 00001000
current->tss.cr3 = 00101000,
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c0126cca>]
EFLAGS: 00010206
eax: 00001000 ebx: 000011fe ecx: 00000302 edx: 00001000
esi: 00001000 edi: 00001000 ebp: 000011fe esp: c0095e14
ds: 0018 es: 0018 ss: 0018
Process kswapd (pid: 3, process nr: 3, stackpage=c0095000)
Stack: 00000302 c06a0302 c0126d0f 00000302 000011fe 00001000 00000302
c06a9180
c0095ecc 00000000 c01283d9 00000302 000011fe 00001000 00000302 00000001
00000302 00000000 000011fe c022ba20 c0095eb4 c06a9180 00000302 00000400
Call Trace: [<c0126d0f>] [<c01283d9>] [<c0100302>] [<c010aae5>]
[<c01228a7>] [<c0122536>] [<c0121bdb>]
[<c0121dd5>] [<c0121ec1>] [<c0121fff>] [<c01221cd>] [<c0106000>]
[<c01080e2>] [<c01220b0>] [<c0107fe4>]
Code: 8b 12 39 58 04 75 f3 39 70 08 75 ee 66 39 48 0c 75 e8 89 c2

Decoded:
Using `/boot/System.map' to map addresses to symbols.
>>EIP: c0126cca <find_buffer+2a/50>
Trace: c0126d0f <get_hash_table+1f/70>
Trace: c01283d9 <brw_page+149/390>
Trace: c0100302 <gdt+de/ddc>
Trace: c010aae5 <do_IRQ+25/40>
Trace: c01228a7 <ll_rw_page+a7/c0>
Trace: c0122536 <rw_swap_page+246/3e0>
Trace: c0121bdb <swap_out_vma+31b/480>
Trace: c0121dd5 <swap_out_process+95/c0>
Trace: c0121ec1 <swap_out+c1/110>
Trace: c0121fff <try_to_free_page+ef/130>
Trace: c01221cd <kswapd+11d/170>
Trace: c0106000 <this_must_match_init_task>
Trace: c01080e2 <init+42/1b0>
Trace: c01221cd <kswapd+11d/170>
Trace: c0107fe4 <this_must_match_init_task+1fe4/2000>
Code: c0126cca <find_buffer+2a/50>
Code: c0126cca <find_buffer+2a/50> 8b 12 movl (%edx),%edx
Code: c0126ccc <find_buffer+2c/50> 39 58 04 cmpl
%ebx,0x4(%eax)
Code: c0126ccf <find_buffer+2f/50> 75 f3 jne fffffffa
<_EIP+0xfffffffa>
Code: c0126cd1 <find_buffer+31/50> 39 70 08 cmpl
%esi,0x8(%eax)
Code: c0126cda <find_buffer+3a/50> 75 ee jne fffffffa
<_EIP+0xfffffffa>
Code: c0126cdc <find_buffer+3c/50> 66 39 48 0c cmpw %cx,0xc(%eax)
Code: c0126ce0 <find_buffer+40/50> 75 e8 jne fffffffa
<_EIP+0xfffffffa>
Code: c0126ce2 <find_buffer+42/50> 89 c2 movl %eax,%edx

Pressing enter gave: "Aiee, killing interrupt handler", and
ctrl-alt-delete rebooted the machine to the BIOS memory check, without
going through init. fsck on reboot showed no major problems, only one
deleted inode with zero dtime.

This all happeneing on a machine which had just been turned on, and so
had less than 5 minutes uptime when I rebooted. I've now disabled the
ali14xx chipset stuff in case that caused it, but I've had it on for
about the last week with no problems, and I can'e seem to get this to
repeat. I'm running a UP 16Mb machine with kernel 1.1.103 compiled with
gcc 2.7.2.3 if that helps.

Thanks,

Bradley

PS Please send any responses direct to me, as I only get the digest.
Thanks.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu