From: Andrew Morton <andrewm@uow.edu.au>
To: Henry <henry@borg.metroweb.co.za>
Cc: linux-kernel@vger.kernel.org
Subject: Re: OOPS (kswapd) in 2.4.5 and 2.4.6
Date: Fri, 06 Jul 2001 18:35:01 +1000 [thread overview]
Message-ID: <3B457835.F06E49CF@uow.edu.au> (raw)
In-Reply-To: <01070516412506.06182@borg>
Henry wrote:
>
> ...
> Dual-cpu pentium 233 (intel) with 128MB RAM and more than double that swap.
>
> ...
> Unable to handle kernel NULL pointer dereference at virtual address 00000008
> c01b4227
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[<c01b4227>]
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010207
> eax: 00000001 ebx: 00000000 ecx: 000000c0 edx: c12c49c0
> esi: c12d3f4c edi: 00000001 ebp: c0d0f2a0 esp: c12d3ee0
> ds: 0018 es: 0018 ss: 0018
> Process kswapd (pid: 3, stackpage=c12d3000)
> Stack: 00000000 c12d3f4c c12d3f4c c01330cb 00000001 00000000 001c4300 c1203048
> 00000000 00000028 c0129752 00000001 c1203048 00000305 c12d3f48 00001000
> 001c4300 c1203048 00000000 00000028 c12d3f48 00000000 00001000 00001c43
> Call Trace: [<c01330cb>] [<c0129752>] [<c0106cec>] [<c012981f>] [<c012a4e8>] [<c
> 0128b1d>] [<c01293f5>]
> [<c0129486>] [<c01054cc>]
> Code: 0f b7 43 08 66 c1 e8 09 0f b7 f0 8b 43 18 a8 04 75 19 68 a7
>
> >>EIP; c01b4227 <submit_bh+b/74> <=====
> Trace; c01330cb <brw_page+8f/a0>
> Trace; c0129752 <rw_swap_page_base+152/1b0>
> Trace; c0106cec <ret_from_intr+0/7>
> Trace; c012981f <rw_swap_page+6f/b8>
> Trace; c012a4e8 <swap_writepage+78/80>
> Trace; c0128b1d <page_launder+285/874>
> Trace; c01293f5 <do_try_to_free_pages+1d/58>
> Trace; c0129486 <kswapd+56/e8>
> Trace; c01054cc <kernel_thread+28/38>
There does appear to be an SMP race in brw_page() which can cause
this - end_buffer_io_async() unlocks the page, try_to_free_buffers()
zaps the buffer_head ring and brw_page() gets a null pointer. But
gee, it's unlikely unless you have super-fast disks and/or something
which has a super-slow interrupt routine.
Could you please provide a description of your hardware lineup?
And could you please test 2.4.6 with this patch?
--- linux-2.4.6/fs/buffer.c Wed Jul 4 18:21:31 2001
+++ lk-ext3/fs/buffer.c Fri Jul 6 18:25:00 2001
@@ -2181,8 +2181,9 @@ int brw_page(int rw, struct page *page,
/* Stage 2: start the IO */
do {
+ struct buffer_head *next = bh->b_this_page;
submit_bh(rw, bh);
- bh = bh->b_this_page;
+ bh = next;
} while (bh != head);
return 0;
}
-
next prev parent reply other threads:[~2001-07-06 8:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-07-05 14:03 OOPS (kswapd) in 2.4.5 and 2.4.6 Henry
2001-07-05 16:53 ` Wayne Whitney
2001-07-05 17:09 ` Henry
2001-07-06 5:59 ` Henry
2001-07-06 8:35 ` Andrew Morton [this message]
2001-07-06 10:31 ` Henry
2001-07-07 6:03 ` Henry
2001-07-07 8:07 ` Andrew Morton
2001-07-07 9:33 ` Henry
2001-07-07 9:54 ` Andrew Morton
2001-07-08 11:08 ` Henry
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3B457835.F06E49CF@uow.edu.au \
--to=andrewm@uow.edu.au \
--cc=henry@borg.metroweb.co.za \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox