mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 2.4.20-rc4] 2.4.19 / 2.4.20 Pauses/stopps with high disk I/O
@ 2002-11-26 22:58 Marc-Christian Petersen
  0 siblings, 0 replies; only message in thread
From: Marc-Christian Petersen @ 2002-11-26 22:58 UTC (permalink / raw)
  To: linux-kernel; +Cc: Con Kolivas, Andrea Arcangeli, Jens Axboe

[-- 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 */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-11-26 22:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-26 22:58 [PATCH 2.4.20-rc4] 2.4.19 / 2.4.20 Pauses/stopps with high disk I/O Marc-Christian Petersen

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®