Messages in this thread | | | From | Con Kolivas <> | Subject | Re: [PATCH] sched: Consolidated and improved smpnice patch | Date | Mon, 20 Feb 2006 21:02:11 +1100 |
| |
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@bigpond.com.au> Signed-off-by: Con Kolivas <kernel@kolivas.org>
Cheers, Con [unhandled content-type:application/pgp-signature] | |