2.[45] fixes for design locking bug in wait_on_page/wait_on_buffer/get_request_wait
Hi Andrea,
Quoted 6 lines
just to make a quick test, can you try an hack like this combined with a setting of elvtune -r 128 -w 256 on top of 2.4.20rc1?
drivers/block/ll_rw_blk.c Sat Nov 16 19:44:20 2002 static void blk_init_free_list(request_q · line 438
Quoted 8 lines
drivers/block/ll_rw_blk.c Sat Nov 16 19:44:20 2002 renamed from drivers/block/ll_rw_blk.c.~1~ Sat Nov 2 19:45:33 2002 +1
-1@@ -432,7 +432,7 @@ static void blk_init_free_list(request_q si_meminfo(&si); megs = si.totalram >> (20 - PAGE_SHIFT); - nr_requests = 128; + nr_requests = 16; if (megs < 32) nr_requests /= 2; blk_grow_request_list(q, nr_requests);
hehe, Andrea, it seem's we both think of the same ... :-) ... I am just recompiling the kernel ... hang on.
ciao, Marc
On Saturday 16 November 2002 19:58, Marc-Christian Petersen wrote:
Hi Andrea,
Quoted 7 lines
Quoted 7 lines
just to make a quick test, can you try an hack like this combined with a setting of elvtune -r 128 -w 256 on top of 2.4.20rc1?
drivers/block/ll_rw_blk.c Sat Nov 16 19:44:20 2002 renamed from drivers/block/ll_rw_blk.c.~1~ Sat Nov 2 19:45:33 2002 +0
-0@@ -432,7 +432,7 @@ static void blk_init_free_list(request_q
Quoted 10 lines
drivers/block/ll_rw_blk.c Sat Nov 16 19:44:20 2002 static void blk_init_free_list(request_q · line 438
Quoted 7 lines
drivers/block/ll_rw_blk.c Sat Nov 16 19:44:20 2002 renamed from drivers/block/ll_rw_blk.c.~1~ Sat Nov 2 19:45:33 2002 +1
-1si_meminfo(&si); megs = si.totalram >> (20 - PAGE_SHIFT); - nr_requests = 128; + nr_requests = 16; if (megs < 32) nr_requests /= 2; blk_grow_request_list(q, nr_requests);hehe, Andrea, it seem's we both think of the same ... :-) ... I am just recompiling the kernel ... hang on.
Andrea, this makes a difference! The pausings are much less than before, but still occur. Situation below.
Another thing I've noticed, while doing the "cp -a xyz abc" in a loop the available memory decreases alot (silly caching of files)
Before copying:
---------------
MemTotal: 515992 kB MemFree: 440876 kB Buffers: 3808 kB Cached: 24128 kB
While copying:
--------------
root@codeman:[/usr/src] # ./bla.sh
+ cd /usr/src
+ rm -rf linux-2.4.19-blaold linux-2.4.19-blanew
+ COUNT=0
+ echo 0
0
+ cp -a linux-2.4.19-vanilla linux-2.4.19-blaold
+ cp -a linux-2.4.19-vanilla linux-2.4.19-blanew
not yet finished the above and memory is this:
MemTotal: 515992 kB MemFree: 3348 kB Buffers: 12244 kB Cached: 451608 kB
swap (500mb) turned off. Pausings are almost none. (without your patch / elvtune) even there were massive pauses.
If swap is turned on, swapusage grows alot and then, if SWAP is used, we have pauses (even more less than without your patch).
To free the used/cached memory I use umount /usr/src.
I think your proposal is good. Anything else I should test/change? Any further informations/test I can/should run?
Thnx alot!
ciao, Marc
On Saturday 16 November 2002 22:55, Marc-Christian Petersen wrote:
Hi Andrea,
Quoted 2 lines
Andrea, this makes a difference! The pausings are much less than before, but still occur. Situation below.
So, after some time in trying to exchange 2.4.20-rc2 files with the following files from 2.4.18 (and compile successfully)
drivers/block/ll_rw_blk.cdrivers/block/elevator.cinclude/linux/elevator.h
those "pauses/stopps" are _GONE_!
I've also tested all this situations with totally different mashines. No changes, all behaves the same.
I am really afraid that no one else (seems so) noticed this but me! I cannot believe that?! :-(
It is a really serious "bug" I cannot live with. Doing that high disk i/o and even pings are ignored for the amount of time the stop occurs, is an absolutely inacceptable situation! *imho*
What do you think? :-)
ciao, Marc
Quoted 2 lines
Andrea, this makes a difference! The pausings are much less than before, but still occur. Situation below.
MP> So, after some time in trying to exchange 2.4.20-rc2 files with the following
MP> files from 2.4.18 (and compile successfully)
MP> drivers/block/ll_rw_blk.c
MP> drivers/block/elevator.c
MP> include/linux/elevator.h
MP> those "pauses/stopps" are _GONE_!
What is really strange, is that while I run the following in the boodscripts:
echo "90 500 0 0 600000 600000 95 20 0" > /proc/sys/vm/bdflush elvtune /dev/hda1 -r 2048 -w 131072
I never experience those stalls at all!
And that was surely I was expecting (clean buffers at 90% and do that synchronouse at 95% gives little room for the first to complete before new buffers get dirty. also that elevator-fiddling should force large bursts (why am I doing this anyway? I wanted to configure the kernel et al so that as minimal as possible disk-reads/writes occur))