Messages in this thread | | | Date | Mon, 26 Nov 2007 10:30:44 +0530 | From | Srivatsa Vaddagiri <> | Subject | [PATCH 0/4] sched: group scheduler related patches (V3) |
| |
Here's V3 of the group scheduler related patches, which is mainly addressing improved fairness of cpu bandwidth allocation for task groups.
Patch 1/4 -> coding style cleanup Patch 2/4 -> Minor group scheduling related bug fixes
Patch 3/4 (v1) -> Modifies how cpu load is calculated, such that there is zero impact on !CONFIG_FAIR_GROUP_SCHED Patch 3/4 (v2) -> Modifies how cpu load is calculated, such that there is a small impact on code size (but should have NO impact on functionality or runtime behavior) for !CONFIG_FAIR_GROUP_SCHED case. The resulting code however is much neater since it avoids some #ifdefs. I prefer v2.
Patch 4/4 -> Updates load balance logic to provide improved fairness for task groups.
To have zero impact on !CONFIG_FAIR_GROUP_SCHED case, please apply the following patches:
- Patch 1/4 - Patch 2/4 - Patch 3/4 (v1) - Patch 4/4
I personally prefer v2 of Patch 3/4. Even though it has a minor impact on code size for !CONFIG_FAIR_GROUP_SCHED case, the overall code is much neater IMHO.
Impact on sched.o size: =======================
!CONFIG_FAIR_GROUP_SCHED:
text data bss dec hex filename 36829 2766 48 39643 9adb sched.o-before-nofgs 36829 2766 48 39643 9adb sched.o-after-v1-nofgs (v1 of Patch 3/4) 36843 2766 48 39657 9ae9 sched.o-after-v2-nofgs (v2 of Patch 3/4)
CONFIG_FAIR_GROUP_SCHED:
text data bss dec hex filename 39019 3346 336 42701 a6cd sched.o-before-fgs 40303 3482 308 44093 ac3d sched.o-after-v1-fgs (v1 of Patch 3/4) 40303 3482 308 44093 ac3d sched.o-after-v2-fgs (v2 of Patch 3/4)
Changes since V2 of this patchset [1]
- Split the patches better and make them pass under checkpatch.pl script - Fixed compile issues under different config options and also a suspend failure (as posted by Ingo at [2]) - Make load_balance_monitor thread run as real-time task, so that its execution is not limited by shares allocated to default task group (init_task_group). - Reduced minimum shares that can be allocated to a group to 1 (from 100). Would be usefull if someone wants a task group to get very low bandiwdth or get bandwidth only when other groups are idle. - Removed check for tg->last_total_load check in rebalance_shares() (which was incorrect in V2)
Changes since V1 of this patchset [3]:
- Introduced a task_group_mutex to serialize add/removal of task groups (as pointed by Dipankar)
Please apply if there are no major concerns.
References:
1. http://marc.info/?l=linux-kernel&m=119549585223262 2. http://lkml.org/lkml/2007/11/19/127 3. http://marc.info/?l=linux-kernel&m=119547452517055
-- Regards, vatsa - 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/
| |