Re: [PATCH] sched: Consolidated and improved smpnice patch

From: Con Kolivas
Date: Mon Feb 20 2006 - 05:00:55 EST


On Monday 20 February 2006 16:02, Peter Williams wrote:
[snip description]

Hi peter, I've had a good look and have just a couple of comments:

---
#endif
int prio, static_prio;
+#ifdef CONFIG_SMP
+ int load_weight; /* for load balancing purposes */
+#endif
---

Can this be moved up to be part of the other ifdef CONFIG_SMP? Not highly
significant since it's in a .h file but looks a tiny bit nicer.

---
+/*
+ * Priority weight for load balancing ranges from 1/20 (nice==19) to 459/20
(RT
+ * priority of 100).
+ */
+#define NICE_TO_LOAD_PRIO(nice) \
+ ((nice >= 0) ? (20 - (nice)) : (20 + (nice) * (nice)))
+#define LOAD_WEIGHT(lp) \
+ (((lp) * SCHED_LOAD_SCALE) / NICE_TO_LOAD_PRIO(0))
+#define NICE_TO_LOAD_WEIGHT(nice) LOAD_WEIGHT(NICE_TO_LOAD_PRIO(nice))
+#define PRIO_TO_LOAD_WEIGHT(prio)
NICE_TO_LOAD_WEIGHT(PRIO_TO_NICE(prio))
+#define RTPRIO_TO_LOAD_WEIGHT(rp) \
+ LOAD_WEIGHT(NICE_TO_LOAD_PRIO(-20) + (rp))
---

The weighting seems not related to anything in particular apart from saying
that -nice values are more heavily weighted. Since you only do this when
setting the priority of tasks can you link it to the scale of (SCHED_NORMAL)
tasks' timeslice instead even though that will take a fraction more
calculation? RTPRIO_TO_LOAD_WEIGHT is fine since there isn't any obvious cpu
proportion relationship to rt_prio level.

Otherwise, good work, thanks!

> Signed-off-by: Peter Williams <pwil3058@xxxxxxxxxxxxxx>
Signed-off-by: Con Kolivas <kernel@xxxxxxxxxxx>

Cheers,
Con

Attachment: pgp00000.pgp
Description: PGP signature