Re: [PATCH] livelock in elevator scheduling

From: Andrea Arcangeli (andrea@suse.de)
Date: Tue Nov 21 2000 - 10:12:17 EST


On Tue, Nov 21, 2000 at 05:28:40PM +0900, kumon@flab.fujitsu.co.jp wrote:
> @@ -47,6 +47,11 @@
> break;
> tmp->elevator_sequence--;
> }
> + if (entry == head) {
> + tmp = blkdev_entry_to_request(entry);
> + if (IN_ORDER(req, tmp))
> + entry = real_head->prev;
> + }
> list_add(&req->queue, entry);
> }

This patch is buggy. head with scsi doesn't point to a request so it
doesn't make sense to compare it.

> To implement a complete elevator scheduling, preparing an alternate

Complete elevator scheduling is _just_ implemented, but it's enterely disabled.
You should always enable it before running a 2.4.x kernel. To do that use
elvtune or apply this patch:

--- 2.4.0-test11-pre6/include/linux/elevator.h.~1~ Wed Jul 19 06:43:10 2000
+++ 2.4.0-test11-pre6/include/linux/elevator.h Tue Nov 21 15:57:51 2000
@@ -100,8 +100,8 @@
 ((elevator_t) { \
         0, /* not used */ \
                                                                 \
- 1000000, /* read passovers */ \
- 2000000, /* write passovers */ \
+ 500, /* read passovers */ \
+ 1000, /* write passovers */ \
         0, /* max_bomb_segments */ \
                                                                 \
         0, /* not used */ \

The "DoS" attack is the bug that is been fixed by implementing the new elevator
with proper scheduling.

Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:21 EST