lkml.org 
[lkml]   [1996]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subjectmd problems
Hi all, 

Note this probably doesn't fix the 'saw bad status errors', but this will
stop md hanginging.

I think i've found whats been crashing md all this time.
This happens when the request list gets full of md requests
waiting to get processed by the remap() system, md then
has to generate more requests for the queued ones to complete,
to do this it has to wait for a request to become free,
of course they won't as they are all ones waiting to be
processed by itself.

This also seems to agree with my experiences that the most
likely thing to crash my is an operation like 'rm -fR linux'
which result in many dirty page buffers from all over the
disc suddenly being written out of the buffer cache.

The patch to get around this makes ll_rw_blk.c only
fill half of the request structures with unprocessed md requests
thus leaving plenty of room for the system to generate
the ones needed to actually transfer the disc info.

The most requests which can be generated from a single md request
is equal to the number of stripes (since contiguous requests to
a stripe drive also are concatted into one request if possible)

Try this patch against 1.3.79 and see.

[I'm going home for two weeks now, i'll be off-line :-( so good luck.]



--- ll_rw_blk-clean.c Thu Mar 28 17:50:32 1996
+++ ll_rw_blk.c Thu Mar 28 17:53:18 1996
@@ -316,7 +316,7 @@
return;
}
kstat.pgpgin++;
- max_req = NR_REQUEST; /* reads take precedence */
+ max_req = (major == MD_MAJOR) ? NR_REQUEST/2 : NR_REQUEST; /* reads take precedence */
break;
case WRITEA:
rw_ahead = 1;
@@ -332,7 +332,7 @@
* requests are only for reads.
*/
kstat.pgpgout++;
- max_req = (NR_REQUEST * 2) / 3;
+ max_req = (major == MD_MAJOR) ? NR_REQUEST/3 : (NR_REQUEST * 2) / 3;
break;
default:
printk("make_request: bad block dev cmd, must be R/W/RA/WA\n");

Thanks.

.. . . . . . . . . . . . . . ..
:: : : Jon Burgess 01223-461907 : : ::
:: : jjb1003@cam.ac.uk : : ::
:: : : : : : : : : : : : : : ::






\
 
 \ /
  Last update: 2005-03-22 13:36    [W:0.091 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site