lkml.org 
[lkml]   [1997]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Getting nutt...
Philippe Strauss wrote:
>
> Ahem, still for this oops-o-matic kernel that I have..

One possible cause for your oopses would be two async IOs started on the
same page. This should never happen, but if it did you would expect
exactly the synptoms you report.

Could you try applying the attached patch to your oops-o-matic (TM)
kernel and see if you can make an oops? If it triggers the tested
conditions, a fix will be easy; otherwise I can rule out these cases.

Regards,
Bill--- linux-2.0.31/fs/buffer.c.old Wed Aug 6 10:18:22 1997
+++ linux-2.0.31/fs/buffer.c Thu Aug 7 08:24:49 1997
@@ -1274,7 +1281,13 @@
unsigned long block;
int *p, nr[PAGE_SIZE/512];
int i;
+ static int oopsed = 0;

+ if (test_bit(PG_locked, &page->flags)) {
+ printk("generic_readpage: page already locked!\n");
+ if (!oopsed++)
+ *(int *) 0x12345678 = 0;
+ }
page->count++;
set_bit(PG_locked, &page->flags);
set_bit(PG_free_after, &page->flags);
--- linux-2.0.31/mm/page_alloc.c.old Wed Aug 6 10:18:25 1997
+++ linux-2.0.31/mm/page_alloc.c Thu Aug 7 08:24:32 1997
@@ -126,6 +126,13 @@
{
if (!PageReserved(page) && atomic_dec_and_test(&page->count)) {
unsigned long map_nr = page->map_nr;
+ static int oopsed = 0;
+
+ if (test_bit(PG_locked, &page->flags)) {
+ printk("__free_page: page still locked!\n");
+ if (!oopsed++)
+ *(int *) 0x12345678 = 0;
+ }
delete_from_swap_cache(map_nr);
free_pages_ok(map_nr, 0);
}
\
 
 \ /
  Last update: 2005-03-22 13:40    [W:0.344 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site