Disk priority dependend on nice level...

From: Pavel Machek (pavel@ucw.cz)
Date: Wed Aug 06 2003 - 18:28:10 EST


Hi!

I ported `subj` to 2.6.0-test2. I do not yet have idea if it works,
but it compiles ;-).
                                                                Pavel

--- clean/drivers/block/deadline-iosched.c 2003-07-27 22:31:10.000000000 +0200
+++ linux/drivers/block/deadline-iosched.c 2003-08-07 01:26:47.000000000 +0200
@@ -17,6 +17,7 @@
 #include <linux/compiler.h>
 #include <linux/hash.h>
 #include <linux/rbtree.h>
+#include <linux/sched.h>
 
 /*
  * See Documentation/deadline-iosched.txt
@@ -106,6 +107,19 @@
 #define RQ_DATA(rq) ((struct deadline_rq *) (rq)->elevator_private)
 
 /*
+ * scale_deadline
+ */
+static int scale_deadline(int default_deadline)
+{
+ int prio = current->static_prio - MAX_RT_PRIO;
+ /* make priorities higher than nice -10 equal to nice -10 */
+ if (prio < 10)
+ prio = 10;
+ /* scale the deadline according to priority */
+ return default_deadline * prio/20;
+}
+
+/*
  * the back merge hash support functions
  */
 static inline void __deadline_del_drq_hash(struct deadline_rq *drq)
@@ -303,7 +317,7 @@
         /*
          * set expire time (only used for reads) and add to fifo list
          */
- drq->expires = jiffies + dd->fifo_expire[data_dir];
+ drq->expires = jiffies + scale_deadline(dd->fifo_expire[data_dir]);
         list_add_tail(&drq->fifo, &dd->fifo_list[data_dir]);
 }
 
 

-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:35 EST