[PATCH] kernel: a few readability changes for nice values

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Mike Steiner <mike65536@xxxxxxxxx>
Replaced raw nice values with constants and added macro to wrap
range check with a descriptive name.
Signed-off-by: Mike Steiner <mike65536@xxxxxxxxx>
---
FYI, this is my first kernel patch. I ran checkpatch.pl on it and fixed the
errors, except for 2 concerning spaces around "<" and ">" because it would
make the code less readable.
diff -up linux-2.6.27.1/kernel/sched.c new/kernel/sched.c
--- linux-2.6.27.1/kernel/sched.c	2008-10-15 16:02:53.000000000 -0700
+++ new/kernel/sched.c	2008-10-16 20:37:27.000000000 -0700
@@ -24,6 +24,7 @@
  *  2007-07-01  Group scheduling enhancements by Srivatsa Vaddagiri
  *  2007-11-29  RT balancing improvements by Steven Rostedt, Gregory Haskins,
  *              Thomas Gleixner, Mike Kravetz
+ *  2008-10-16  A few readability changes for nice values by Mike Steiner
  */

 #include <linux/mm.h>
@@ -77,13 +78,21 @@

 #include "sched_cpupri.h"

+#define MIN_NICE (-20)
+#define MAX_NICE  (19)
+
+/*
+ * If n is outside of range [a...z], use closest value in range.
+ */
+#define CONSTRAIN_TO_RANGE(a, n, z) ((n)<(a) ? (a) : ((n)>(z) ? (z) : (n)))
+
 /*
  * Convert user-nice values [ -20 ... 0 ... 19 ]
  * to static priority [ MAX_RT_PRIO..MAX_PRIO-1 ],
  * and back.
  */
-#define NICE_TO_PRIO(nice)	(MAX_RT_PRIO + (nice) + 20)
-#define PRIO_TO_NICE(prio)	((prio) - MAX_RT_PRIO - 20)
+#define NICE_TO_PRIO(nice)	((nice) - MIN_NICE + MAX_RT_PRIO)
+#define PRIO_TO_NICE(prio)	((prio) - MAX_RT_PRIO + MIN_NICE)
 #define TASK_NICE(p)		PRIO_TO_NICE((p)->static_prio)

 /*
@@ -4877,7 +4886,7 @@ void set_user_nice(struct task_struct *p
 	unsigned long flags;
 	struct rq *rq;

-	if (TASK_NICE(p) == nice || nice < -20 || nice > 19)
+	if (TASK_NICE(p) == nice || nice < MIN_NICE || nice > MAX_NICE)
 		return;
 	/*
 	 * We have to be careful, if called from sys_setpriority(),
@@ -4951,16 +4960,11 @@ asmlinkage long sys_nice(int increment)
 	 * We don't have to worry. Conceptually one call occurs first
 	 * and we have a single winner.
 	 */
-	if (increment < -40)
-		increment = -40;
-	if (increment > 40)
-		increment = 40;
+	increment = CONSTRAIN_TO_RANGE(-40, increment, 40);

 	nice = PRIO_TO_NICE(current->static_prio) + increment;
-	if (nice < -20)
-		nice = -20;
-	if (nice > 19)
-		nice = 19;
+
+	nice = CONSTRAIN_TO_RANGE(MIN_NICE, nice, MAX_NICE);

 	if (increment < 0 && !can_nice(current, nice))
 		return -EPERM;
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux