From: Marc-Christian Petersen <m.c.p@wolk-project.de>
To: linux-kernel@vger.kernel.org
Cc: Con Kolivas <conman@kolivas.net>,
Andrea Arcangeli <andrea@suse.de>, Jens Axboe <axboe@suse.de>
Subject: [PATCH 2.4.20-rc4] 2.4.19 / 2.4.20 Pauses/stopps with high disk I/O
Date: Tue, 26 Nov 2002 23:58:02 +0100 [thread overview]
Message-ID: <200211262343.02093.m.c.p@wolk-project.de> (raw)
[-- Attachment #1: Type: text/plain, Size: 953 bytes --]
Hi Con, Andrea, Jens,
Con and me were testing your, Andrea, lowlatency elevator hack the last days.
It's much impressive that I/O pauses/stopps are almost gone with the hack,
even though the throughput is decreased (22mb/s to 12mb/s for my mashine).
Con did a 3 line change to drivers/block/ll_rw_blk.c and
include/linux/elevator.h and those pauses/stopps are _totally_ gone. Even
throughput increased from 12mb/s, with the lowlat elevator from Andrea, to
14mb/s with that 3 liner. Patch attached + Config option for 2.4.20-rc4.
Exchanging the files mentioned above with the 2.4.18 ones has either no effect
to throughput (22mb/s) and also has no pauses/stopps.
We think the approach with the lowlatency elevator's is fine, but there must
have changed something very seriously in the mentioned files that this occur
with >= 2.4.19.
This is just a "we want to inform you about it" mail :)
Have fun!
ciao, Marc
[-- Attachment #2: 2.4.20-rc4-elevator-lowlatency.patch --]
[-- Type: text/x-diff, Size: 3217 bytes --]
# Patch from: Con Kolivas (private Mail) / me
diff -ruN linux-old/Documentation/Configure.help linux-wolk/Documentation/Configure.help
--- linux-old/Documentation/Configure.help Mon Feb 25 20:37:51 2002
+++ linux-wolk/Documentation/Configure.help Sat Apr 27 23:52:48 2002
@@ -867,6 +867,18 @@
If unsure, say N.
+Low Latency Elevator
+CONFIG_BLK_DEV_ELEVATOR_LOWLAT
+ If you are building your kernel for desktop usage it is highly
+ recommended to say Y here. With this option set, you can have the
+ highest disk i/o you ever dreamed of and still have interactive
+ behaviour of your kernel without stops/pauses or kinda that.
+ For sure, this decreases throughput, for me from 22mb/s to 14mb/s
+ but this is unrelevant for desktop usage.
+
+ If unsure, or if you're building a kernel for serverusage,
+ say N, otherwise say Y.
+
ISA-PNP EIDE support
CONFIG_BLK_DEV_ISAPNP
If you have an ISA EIDE card that is PnP (Plug and Play) and
diff -urN linux-old/drivers/block/Config-elevator.in linux-wolk/drivers/block/Config-elevator.in
--- linux-old/drivers/block/Config-elevator.in Thu Jan 1 01:00:00 1970
+++ linux-wolk/drivers/block/Config-elevator.in Mon Sep 17 13:46:19 2001
@@ -0,0 +1,10 @@
+#
+# Elevator configuration
+#
+mainmenu_option next_comment
+comment 'Elevator'
+
+bool 'Low Latency Elevator' CONFIG_BLK_DEV_ELEVATOR_LOWLAT
+
+endmenu
+
diff -urN linux-old/arch/i386/config.in linux-wolk/arch/i386/config.in
--- linux-old/arch/i386/config.in Thu Jan 1 01:00:00 1970
+++ linux-wolk/arch/i386/config.in Mon Sep 17 13:46:19 2001
@@ -326,6 +326,8 @@
source drivers/block/Config.in
+source drivers/block/Config-elevator.in
+
source drivers/md/Config.in
if [ "$CONFIG_NET" = "y" ]; then
diff -urN linux-2.4.19/arch/i386/config.in linux-2.4.19-ck14/arch/i386/config.in
--- linux-2.4.19/drivers/block/ll_rw_blk.c 2002-08-03 13:14:45.000000000 +1000
+++ linux-2.4.19-ck14/drivers/block/ll_rw_blk.c 2002-11-26 21:55:18.000000000 +1100
@@ -432,9 +433,13 @@
si_meminfo(&si);
megs = si.totalram >> (20 - PAGE_SHIFT);
+#ifndef CONFIG_BLK_DEV_ELEVATOR_LOWLAT
nr_requests = 128;
if (megs < 32)
nr_requests /= 2;
+#else
+ nr_requests = 4;
+#endif
blk_grow_request_list(q, nr_requests);
init_waitqueue_head(&q->wait_for_requests[0]);
diff -urN linux-2.4.19/include/linux/elevator.h linux-2.4.19-ck14/include/linux/elevator.h
--- linux-2.4.19/include/linux/elevator.h 2001-02-16 11:58:34.000000000 +1100
+++ linux-2.4.19-ck14/include/linux/elevator.h 2002-11-26 22:45:01.000000000 +1100
@@ -91,6 +91,7 @@
elevator_noop_merge_req, /* elevator_merge_req_fn */ \
})
+#ifndef CONFIG_BLK_DEV_ELEVATOR_LOWLAT
#define ELEVATOR_LINUS \
((elevator_t) { \
2048, /* read passovers */ \
@@ -100,4 +101,17 @@
elevator_linus_merge_req, /* elevator_merge_req_fn */ \
})
-#endif
+#else /* CONFIG_BLK_DEV_ELEVATOR_LOWLAT */
+
+#define ELEVATOR_LINUS \
+((elevator_t) { \
+ 0, /* read passovers */ \
+ 0, /* write passovers */ \
+ \
+ elevator_linus_merge, /* elevator_merge_fn */ \
+ elevator_linus_merge_req, /* elevator_merge_req_fn */ \
+ })
+
+#endif /* CONFIG_BLK_DEV_ELEVATOR_LOWLAT */
+
+#endif /* _LINUX_ELEVATOR_H */
reply other threads:[~2002-11-26 22:52 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=200211262343.02093.m.c.p@wolk-project.de \
--to=m.c.p@wolk-project.de \
--cc=andrea@suse.de \
--cc=axboe@suse.de \
--cc=conman@kolivas.net \
--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
all inboxes | Powered by JetHome®